(57)【要約】【課題】  一元管理外のソフトウェアに関しても、実行環境の開発機器側でその開発経緯を明らかにし、改竄を検知することでトレーサビリティを確保する。【解決手段】  操作部１が、ソフトウェアとハッシュ値が含まれた操作履歴管理ファイルとを入力し、操作履歴管理ファイルからハッシュ値を抽出し、ソフトウェアからハッシュ値を算出し、これらハッシュ値を比較し、不一致の際は改竄があるとしてソフトウェアを破棄し、一致の際は改竄がないとしてソフトウェアの変更操作を行い、操作時刻、操作部ＩＤ等を示す操作履歴コア情報を生成し、操作後のソフトウェア、操作履歴管理ファイル、操作履歴コア情報を管理部２に送信し、管理部２は、操作後のソフトウェアのハッシュ値及び版情報を生成し、ハッシュ値、版情報、操作履歴コア情報を操作履歴管理ファイルに追加して操作履歴管理ファイルを更新し、操作後のソフトウェアと更新後の操作履歴管理ファイルを記録する。【選択図】        図１
2005339228.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの変更操作の管理を行うソフトウェア管理システムであって、
ソフトウェアの変更操作を行うとともに、変更操作後のソフトウェアと、当該変更操作までに行われたソフトウェアの変更操作の履歴を示す操作履歴管理ファイルと、当該変更操作の属性を示す操作属性情報とを出力する操作部と、
前記操作部から変更操作後のソフトウェアと操作履歴管理ファイルと操作属性情報とを入力し、変更操作後のソフトウェアから改竄検知のための改竄検知用情報を生成するとともに、入力した操作履歴管理ファイルと操作属性情報とに基づき、前記操作部における変更操作を反映させて操作履歴管理ファイルを更新するための更新情報を生成し、生成した更新情報に改竄検知用情報を付加し、改竄検知用情報が付加された更新情報を操作履歴管理ファイルに加えて操作履歴管理ファイルを更新し、更新された操作履歴管理ファイルと変更操作後のソフトウェアとを対応づけて記録する管理部とを有することを特徴とするソフトウェア管理システム。
【請求項２】
前記管理部は、
更新された操作履歴管理ファイルと変更操作後のソフトウェアとをアーカイブ化して記録することを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項３】
前記操作部は、
変更操作の対象となる変更操作対象ソフトウェアと、変更操作対象ソフトウェアの改竄検知のための改竄検知用情報が含まれた変更操作対象ソフトウェアの操作履歴管理ファイルとを対応づけて入力し、
変更操作対象ソフトウェアから、変更操作対象ソフトウェアの改竄検知のための情報を算出改竄検知用情報として算出し、
変更操作対象のソフトウェアの操作履歴管理ファイルから改竄検知用情報を抽出し、
算出した算出改竄検知用情報と抽出した改竄検知用情報とを比較し、
比較の結果、両者が一致する場合に、変更操作対象ソフトウェアの変更操作を行うことを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項４】
前記操作部は、
変更操作対象ソフトウェアと、変更操作対象ソフトウェアの操作履歴管理ファイルとがアーカイブ化されたアーカイブ情報を入力することを特徴とする請求項３に記載のソフトウェア管理システム。
【請求項５】
前記管理部は、
前記操作部から入力した操作履歴管理ファイル及び操作属性情報から変更操作後のソフトウェアの版情報を生成し、
生成した版情報と、管理部のＩＤを示す管理部ＩＤ情報と、操作属性情報とに基づき更新情報を生成することを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項６】
前記操作部は、
変更操作前のソフトウェアの版情報を少なくとも含む操作履歴管理ファイルを保有し、
操作部のＩＤを示す操作部ＩＤ情報を少なくとも含む操作属性情報を生成し、
変更操作後のソフトウェアとともに、変更操作前のソフトウェアの版情報を少なくとも含む操作履歴管理ファイルと、操作部ＩＤ情報を少なくとも含む操作属性情報とを前記管理部に出力し、
前記管理部は、
前記操作部から入力した操作履歴管理ファイルから、前記操作部における変更操作前のソフトウェアの版情報を抽出し、
前記操作部から入力した操作属性情報から、前記操作部の操作部ＩＤ情報を抽出し、
抽出した変更操作前のソフトウェアの版情報と、抽出した前記操作部の操作部ＩＤ情報とに基づいて、変更操作後のソフトウェアの版情報を生成することを特徴とする請求項５に記載のソフトウェア管理システム。
【請求項７】
前記操作部は、
変更操作を行った時刻を示す操作時刻情報と、変更操作を行ったユーザのＩＤを示すユーザＩＤ情報と、変更操作の内容を示す操作内容情報を含む操作属性情報を生成することを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項８】
前記ソフトウェア管理装置は、更に、
ユーザ認証のためのユーザ認証情報を記憶し、記憶しているユーザ認証情報を用いて前記操作部のユーザのユーザ認証を行うユーザ認証部を有し、
前記操作部は、
ソフトウェアの変更操作に先立ち、ユーザからの入力情報を用いて、ユーザ認証のための情報を算出ユーザ認証情報として算出し、算出した算出ユーザ認証情報を前記ユーザ認証部に出力し、
前記ユーザ認証部は、
前記操作部から算出ユーザ認証情報を入力し、入力した算出ユーザ認証情報と記憶しているユーザ認証情報とを用いてユーザ認証を行い、認証結果を前記操作部に出力し、
前記操作部は、
前記ユーザ認証部から認証結果を入力し、前記ユーザ認証部によりユーザが認証された場合に、ソフトウェアの変更操作を行うことを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項９】
ソフトウェアの変更操作を行う操作装置と通信を行い、ソフトウェアの変更操作の管理を行う管理装置であって、
前記操作装置から、変更操作後のソフトウェアと、前記操作装置における変更操作までに行われたソフトウェアの変更操作の履歴を示す操作履歴管理ファイルと、前記操作装置における変更操作の属性を示す操作属性情報とを入力する入力部と、
前記入力部により入力された変更操作後のソフトウェアから改竄検知のための改竄検知用情報を生成する改竄検知用情報生成部と、
前記入力部により入力された操作履歴管理ファイルと操作属性情報とに基づき、前記操作装置における変更操作を反映させて操作履歴管理ファイルを更新するための更新情報を生成する更新情報生成部と、
前記更新情報生成部により生成された更新情報に改竄検知用情報を付加し、改竄検知用情報が付加された更新情報を操作履歴管理ファイルに加えて操作履歴管理ファイルを更新する操作履歴管理ファイル更新部と、
前記操作履歴管理ファイル更新部により更新された操作履歴管理ファイルと変更操作後のソフトウェアとを対応づけて記録する記録部とを有することを特徴とする管理装置。
【請求項１０】
前記記録部は、
更新された操作履歴管理ファイルと変更操作後のソフトウェアとをアーカイブ化して記録することを特徴とする請求項９に記載の管理装置。
【請求項１１】
前記管理装置は、更に、
前記入力部により入力された操作履歴管理ファイル及び操作属性情報から変更操作後のソフトウェアの版情報を生成する版情報生成部を有し、
前記更新情報生成部は、
前記版情報生成部により生成された版情報と、管理装置のＩＤを示す管理装置ＩＤ情報と、操作属性情報とに基づき更新情報を生成することを特徴とする請求項９に記載の管理装置。
【請求項１２】
前記入力部は、
変更操作後のソフトウェアとともに、前記操作装置における変更操作前のソフトウェアの版情報を少なくとも含む操作履歴管理ファイルと、操作装置のＩＤを示す操作装置ＩＤ情報を少なくとも含む操作属性情報とを前記操作装置から入力し、
前記版情報生成部は、
前記入力部により入力された操作履歴管理ファイルから、前記操作装置における変更操作前のソフトウェアの版情報を抽出し、前記入力部により入力された操作属性情報から、前記操作装置の操作装置ＩＤ情報を抽出し、抽出した変更操作前のソフトウェアの版情報と、抽出した前記操作装置の操作装置ＩＤ情報とに基づいて、変更操作後のソフトウェアの版情報を生成することを特徴とする請求項１１に記載の管理装置。
【請求項１３】
ソフトウェアの変更操作を行う操作装置であって、
変更操作の対象となる変更操作対象ソフトウェアと、変更操作対象ソフトウェアの改竄検知のための改竄検知用情報が含まれた変更操作対象ソフトウェアの操作履歴管理ファイルとを対応づけて入力するソフトウェア入力部と、
前記入力部により入力された変更操作対象ソフトウェアから、変更操作対象ソフトウェアの改竄検知のための情報を算出改竄検知用情報として算出する改竄検知用情報算出部と、
前記入力部により入力された操作履歴管理ファイルから改竄検知用情報を抽出する改竄検知用情報抽出部と、
前記改竄検知用算出部により算出された算出改竄検知用情報と、前記改竄検知用情報抽出部により抽出された改竄検知用情報とを比較する改竄検知部と、
前記改竄検知部による比較の結果、両者が一致する場合に、変更操作対象ソフトウェアの変更操作を行う変更操作部とを有することを特徴とする操作装置。
【請求項１４】
前記入力部は、
変更操作対象ソフトウェアと、変更操作対象ソフトウェアの操作履歴管理ファイルとがアーカイブ化されたアーカイブ情報を入力することを特徴とする請求項１３に記載の操作装置。
【請求項１５】
前記操作装置は、
操作装置のユーザのユーザ認証を行うユーザ認証装置と通信可能であり、
前記操作装置は、更に、
前記変更操作部によるソフトウェアの変更操作に先立ち、ユーザからの入力情報を用いて、ユーザ認証のための情報を算出ユーザ認証情報として算出するユーザ認証情報算出部と、
前記ユーザ認証情報算出部により算出された算出ユーザ認証情報を前記ユーザ認証装置に出力する出力部と、
算出ユーザ認証情報の出力に対する応答として、ユーザ認証の認証結果を前記ユーザ認証装置から入力する認証結果入力部とを有し、
前記変更操作部は、
前記ユーザ認証装置によりユーザが認証された場合に、ソフトウェアの変更操作を行うことを特徴とする請求項１３に記載の操作装置。
【請求項１６】
ソフトウェアの変更操作の管理を行うソフトウェア管理方法であって、
ソフトウェアの変更操作を行う操作装置から、変更操作後のソフトウェアと、前記操作装置における変更操作までに行われたソフトウェアの変更操作の履歴を示す操作履歴管理ファイルと、前記操作装置における変更操作の属性を示す操作属性情報とを入力する入力ステップと、
前記入力ステップにより入力された変更操作後のソフトウェアから改竄検知のための改竄検知用情報を生成する改竄検知用情報生成ステップと、
前記入力ステップにより入力された操作履歴管理ファイルと操作属性情報とに基づき、前記操作装置における変更操作を反映させて操作履歴管理ファイルを更新するための更新情報を生成する更新情報生成ステップと、
前記更新情報生成ステップにより生成された更新情報に改竄検知用情報を付加し、改竄検知用情報が付加された更新情報を操作履歴管理ファイルに加えて操作履歴管理ファイルを更新する操作履歴管理ファイル更新ステップと、
前記操作履歴管理ファイル更新ステップにより更新された操作履歴管理ファイルと変更操作後のソフトウェアとを対応づけて記録する記録ステップとを有することを特徴とするソフトウェア管理方法。
【請求項１７】
ソフトウェアの変更操作を行うソフトウェア操作方法であって、
変更操作の対象となる変更操作対象ソフトウェアと、変更操作対象ソフトウェアの改竄検知のための改竄検知用情報が含まれた変更操作対象ソフトウェアの操作履歴管理ファイルとを対応づけて入力する入力ステップと、
前記入力ステップにより入力された変更操作対象ソフトウェアから、変更操作対象ソフトウェアの改竄検知のための情報を算出改竄検知用情報として算出する改竄検知用情報算出ステップと、
前記入力ステップにより入力された操作履歴管理ファイルから改竄検知用情報を抽出する改竄検知用情報抽出ステップと、
前記改竄検知用算出ステップにより算出された算出改竄検知用情報と、前記改竄検知用情報抽出ステップにより抽出された改竄検知用情報とを比較する改竄検知ステップと、
前記改竄検知ステップによる比較の結果、両者が一致する場合に、変更操作対象ソフトウェアの変更操作を行う変更操作ステップとを有することを特徴とするソフトウェア操作方法。
【請求項１８】
ソフトウェアの変更操作の管理をコンピュータに実行させるプログラムであって、
ソフトウェアの変更操作を行う操作装置から、変更操作後のソフトウェアと、前記操作装置における変更操作までに行われたソフトウェアの変更操作の履歴を示す操作履歴管理ファイルと、前記操作装置における変更操作の属性を示す操作属性情報とを入力する入力処理と、
前記入力処理により入力された変更操作後のソフトウェアから改竄検知のための改竄検知用情報を生成する改竄検知用情報生成処理と、
前記入力処理により入力された操作履歴管理ファイルと操作属性情報とに基づき、前記操作装置における変更操作を反映させて操作履歴管理ファイルを更新するための更新情報を生成する更新情報生成処理と、
前記更新情報生成処理により生成された更新情報に改竄検知用情報を付加し、改竄検知用情報が付加された更新情報を操作履歴管理ファイルに加えて操作履歴管理ファイルを更新する操作履歴管理ファイル更新処理と、
前記操作履歴管理ファイル更新処理により更新された操作履歴管理ファイルと変更操作後のソフトウェアとを対応づけて記録する記録処理とをコンピュータに実行させることを特徴とするプログラム。
【請求項１９】
ソフトウェアの変更操作をコンピュータに実行させるプログラムであって、
変更操作の対象となる変更操作対象ソフトウェアと、変更操作対象ソフトウェアの改竄検知のための改竄検知用情報が含まれた変更操作対象ソフトウェアの操作履歴管理ファイルとを対応づけて入力する入力処理と、
前記入力処理により入力された変更操作対象ソフトウェアから、変更操作対象ソフトウェアの改竄検知のための情報を算出改竄検知用情報として算出する改竄検知用情報算出処理と、
前記入力処理により入力された操作履歴管理ファイルから改竄検知用情報を抽出する改竄検知用情報抽出処理と、
前記改竄検知用算出処理により算出された算出改竄検知用情報と、前記改竄検知用情報抽出処理により抽出された改竄検知用情報とを比較する改竄検知処理と、
前記改竄検知処理による比較の結果、両者が一致する場合に、変更操作対象ソフトウェアの変更操作を行う変更操作処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの履歴管理技術に関する。
【背景技術】
【０００２】
従来のソフトウェア配布サービス方法は、複数のマシンをネットワークに接続し、これらのマシン間でソフトウェアを配布するエージェントとソフトウェアの配布を受けるクライアントを指定してソフトウェアの配布を行うソフトウェア配布サービス方式において、上記エージェントは、（ａ）最新版のソフトウェアと、新しい版と直前の版との差分情報を登録する版管理ファイル、（ｂ）上記版管理ファイルの差分情報に基づいて、新版を作成するための配布情報を生成し、配布情報を上記クライアントに配布する配布ファイル作成装置を有し、上記クライアントは、配布された配布情報を用いて新版を生成する新版生成装置を有することにより、配布したソフトウェアに障害があった場合、配布管理者は、直ちに適当な版を用意し再配布することができる。さらに、配布ファイル作成装置が、版管理ファイルの差分情報に基づいて新版を作成するための配布情報を生成するので、ある版を取り出す場合、使用するのは最新版と、その取り出す版までの差分だけである。よって、取り出す必要のない古い版の差分を版管理ファイルから消去することができ、改版が進んでも版管理ファイルの大きさを一定に保つことができる。これに伴い、常に最新ｎ版だけ版管理ファイルに登録するというような管理も可能となり、経済的効率的にディスク等の資源を使用していた。
【０００３】
また、上記配布管理マシンは、クライアントに対してソフトウェアの改竄チェックを依頼し、その結果を収集する改竄チェック装置を有する。上記クライアントは、上記改竄チェックの依頼に基づいて、ソフトウェアの改竄をチェックし、チェックした情報が入ったファイルを作成する改竄チェックファイル作成装置と、この改竄チェックファイルを上記配布管理マシンに送付する改竄チェック制御装置を有することにより、ユーザの勝手な改竄を簡単にチェックすることができ、環境の統一を保つことができる。また、ユーザが誤ってソフトウェアを消去してしまった場合、ユーザが配布管理者にそれを知らせなくても、改竄チェックにより管理者はそれを知ることができ、再配布等の適切な処置を即座に行うことができていた（例えば、特許文献１）。
【０００４】
また、従来の版管理システムは、情報システムを構成するプログラムの導出元である仕様データの複数の版を管理する版管理システムにおいて、複数の異なるタイプのデータの復号である仕様データの複数の版を管理・保管するリポジトリと、ワークスペースから前記リポジトリに仕様データを格納するときに仕様データの圧縮を行い、逆に前記リポジトリから前記ワークスペースに仕様データを取り出すときに圧縮された仕様データの解凍を行う圧縮解凍手段と、仕様データを前記リポジトリに格納するときあるいは逆に前記リポジトリから取り出すときに版間の差分を仕様データに保持されるデータのタイプ別に管理する構成差分管理手段と、単一なデータ構造を持つテキストデータにおける差分を管理するテキスト差分管理手段とを有することにより、複数の異なるタイプのデータの複合からなる仕様データを版毎に全体の仕様データの複写を持つことなく、版のルート、あるいは任意の版を表すベースとなる版からの差分により保持できるという効果がある。また、差分はデータタイプ毎により管理するので、タイプの異なるデータを比較して差分を作ることがなく、変更部分を正確に捉えることができるとともにスペース効率が向上した版管理をおこなう方法も提案されている（例えば、特許文献２）。
【０００５】
また、従来のソフトウェアモジュールのリリース管理システムおよびリリース管理方式は、ソフトウェアモジュールの更新履歴を格納した更新履歴格納手段と、リリース対象のソフトウェアモジュールを特定するデータを入力する入力手段と、該入力手段から入力された前記特定用データに対応する更新履歴データを前記更新履歴格納手段から取得する更新履歴データ取得方式と、該更新履歴データ取得が取得した更新履歴データに、少なくとも日付、ソフトウェアモジュール名称を付加した実行結果データを出力する実行結果データ出力手段とを備えることによって、例えば端末機を介してリリース対象のソフトウェアモジュールの更新履歴を直接、取得する方法も提案されている（例えば、特許文献３）。
【０００６】
また、従来のソフトウェア変更履歴管理システムは、ソースコードの変更差分と版数を管理するソフトウェア変更履歴管理システムであって、ソースコードの履歴情報として変更差分に１対１に対応する物理的な版数である物理版数と変更内容に対応する論理的な版数である論理版数の２つの版数を管理する管理手段を備えることによって、この管理手段は、変更差分の内容に誤りがあり、正しい変更差分を再登録する為に前記誤った変更差分を取り消す場合、取り消した変更差分を履歴管理し、且つ前記誤った変更差分の取り消し後の正しい変更差分の再登録時には版数を変化させない方法も提案されている（例えば、特許文献４）。
【０００７】
また、従来のドキュメント及びプログラムの管理方法では、ドキュメントまたはプログラムを構成するファイルを定義する第一のデータベースと、ドキュメントまたはプログラムが変更されたとき、構成するファイル毎に変更情報を管理する第二のデータベースを用いて、ドキュメント単位またはプログラム単位で変更履歴を管理するようにしたものである。また、ドキュメントまたはプログラムを構成するファイルを定義する第一のデータベースと、ドキュメントまたはプログラムが変更されたとき、構成するファイル毎に変更情報を管理する第二のデータベースを用いて、ドキュメント単位またはプログラム単位で変更内容及び変更理由を含む変更情報を管理するようにし、また、第一のデータベースによって定義されたファイル相互間の関連を定義した第三のデータベースを用いて、ドキュメントまたはプログラムの変更によって関連するドキュメントまたはプログラムが変更されたことを管理するようにし、さらに、第一のデータベースによって定義されたファイル相互間の関連を定義した第三のデータベースを用いて、ドキュメントまたはプログラムの変更によって関連するドキュメントまたはプログラムが変更された範囲を管理することにより、ドキュメント単位またはプログラム単位で、変更履歴や変更情報を把握することができ、また、ドキュメントまたはプログラムの変更によって、関連するドキュメントまたはプログラムが変更されたことを把握することができる、ドキュメント及びプログラムの管理方法も提案されている（例えば、特許文献５）。
【特許文献１】特開平７−４４３９２号公報
【特許文献２】特開平７−４４４３２号公報
【特許文献３】特開２０００−１４８４５３号公報
【特許文献４】特開２０００−２４２４７４号公報
【特許文献５】特開２０００−２９８５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のソフトウェアの配布サービス、版管理システム、ソフトウェアモジュールのリリース管理システムおよびリリース管理方法、ソフトウェアの変更履歴管理システム、ドキュメント及びプログラムの管理方法、等では、いずれもソフトウェアを管理サーバ等により一元管理することを前提としており、ソフトウェアの主リビジョンだけでなく、主リビジョンから分岐した派生リビジョンに関しても同一の管理サーバにより履歴管理をおこなっていた。このため、ソフトウェアを開発する機器（以下、開発機器）は、管理サーバから直接にソフトウェアを取得し、変更等の操作を行った場合には、操作を加えられた後のソフトウェアを管理サーバに格納していた（特許文献１、特許文献２、特許文献３、特許文献４、特許文献５）。
【０００９】
また、従来のソフトウェア配布方式では、ソフトウェアの改竄チェック方法として、管理マシンがクライアントに対してソフトウェアの改竄チェックを依頼し、クライアントは前記依頼への返答としてソフトウェアの名・サイズ・日付・版等の情報を管理マシンに通知し、管理マシン側で改竄のチェックを行っていた（特許文献１）。
【００１０】
例えばクロス開発環境では、管理サーバからソフトウェアを獲得せずに、他の開発機器から実行する機器（以下、実機）にあらかじめダウンロードされていたソフトウェアを、実行環境の開発機器でアップロードして前記実行環境に最適となるように変更が加えられることが頻繁にある。
【００１１】
このようなソフトウェア開発環境では、実行環境の開発機器が接続するネットワークと、管理サーバが接続するネットワークとが、ファイアウォール等により分断されているために接続できない等の理由により、実行環境の開発機器でおこなった変更の履歴が管理サーバに残せない場合がある。
【００１２】
また、実行環境に特化されるために他の実行環境で動作するソフトウェアにとっては無意味な変更が加えられた場合の変更履歴に関しては、管理データの増大を招くために管理サーバに残されない場合がある。
【００１３】
従来の、管理サーバがソフトウェアを一元管理する方法では、上記のような理由により管理サーバの管理外で変更が加えられた場合、実行環境で問題なく動作しているソフトウェアであっても、開発経緯が不明となり、その信頼性を保障できないという問題があった。
【００１４】
また、実機を介して複製されることにより管理サーバによる一元管理から離れたソフトウェアに関しては、従来の改竄チェック方法では改竄検知ができないという問題があった。
【００１５】
本発明は、上記のような問題点を解決することを主な目的とし、ソフトウェアに変更履歴情報および改竄検知用情報を常に付随させることにより、管理サーバ等による一元管理から外れたソフトウェアに関しても、実行環境の開発機器側でその開発経緯を明らかにし、さらに、改竄を検知することでトレーサビリティを確保することを主な目的とする。
【課題を解決するための手段】
【００１６】
本発明に係るソフトウェア管理システムは、
ソフトウェアの変更操作の管理を行うソフトウェア管理システムであって、
ソフトウェアの変更操作を行うとともに、変更操作後のソフトウェアと、当該変更操作までに行われたソフトウェアの変更操作の履歴を示す操作履歴管理ファイルと、当該変更操作の属性を示す操作属性情報とを出力する操作部と、
前記操作部から変更操作後のソフトウェアと操作履歴管理ファイルと操作属性情報とを入力し、変更操作後のソフトウェアから改竄検知のための改竄検知用情報を生成するとともに、入力した操作履歴管理ファイルと操作属性情報とに基づき、前記操作部における変更操作を反映させて操作履歴管理ファイルを更新するための更新情報を生成し、生成した更新情報に改竄検知用情報を付加し、改竄検知用情報が付加された更新情報を操作履歴管理ファイルに加えて操作履歴管理ファイルを更新し、更新された操作履歴管理ファイルと変更操作後のソフトウェアとを対応づけて記録する管理部とを有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ソフトウェアに操作履歴管理ファイルおよび改竄検知用情報を常に付随させることにより、一元管理から外れたソフトウェアに関しても、実行環境の開発機器側でその開発経緯を明らかにし、さらに、改竄を検知することでトレーサビリティを確保することが可能となる。
【発明を実施するための最良の形態】
【００１８】
実施の形態１．
図１はこの発明のソフトウェア履歴管理システム（ソフトウェア管理システム）の構成例を示す構成図である。
【００１９】
図１において、１は操作部、２は管理部である。後述するように、操作部１及び管理部２を別装置とする場合には、操作部１は操作装置の例に相当し、管理部２は管理装置の例に相当する。
【００２０】
先ず、操作部１の構成要素について説明する。１１は、プロジェクト・アーカイブを入力するプロジェクト・アーカイブ入力部（ソフトウェア入力部）であり、１２は、プロジェクト・アーカイブ入力部１１からのプロジェクト・アーカイブを、プロジェクトと操作履歴管理ファイルとに戻すプロジェクト逆アーカイブ化部である。１３は、プロジェクト逆アーカイブ化部１２からの操作履歴管理ファイルから、記録されたプロジェクトのハッシュ値（改竄検知用情報）を抽出するハッシュ値抽出部（改竄検知用情報抽出部）であり、１４は、プロジェクト逆アーカイブ化部１２からのプロジェクトを仮プロジェクト・アーカイブ化する操作部側仮プロジェクト・アーカイブ化部である。１５は、操作部側仮プロジェクト・アーカイブ化部１４からの仮プロジェクト・アーカイブから、ハッシュ関数を用いて操作前のプロジェクトのハッシュ値（改竄検知用情報）を生成する操作部側ハッシュ値生成部（改竄検知用情報算出部）であり、１６は、操作部側ハッシュ値生成部１５からの操作前のプロジェクトのハッシュ値と、ハッシュ値抽出部１３からの操作履歴管理ファイルに記録されたプロジェクトのハッシュ値とを比較し、プロジェクトが改竄されているかどうかを検知する改竄検知部である。１７は、プロジェクトへの操作や、プロジェクトに操作を加える操作者のユーザＩＤを入力する操作部側操作入力部であり、１８は、プロジェクト逆アーカイブ化部１２からのプロジェクトを、操作部側操作入力部１７からのプロジェクトへの操作情報に基づきプロジェクトに対する変更操作を行うプロジェクト操作部（変更操作部）である。２０は、プロジェクト操作部１８からのプロジェクトへの操作時刻を計測する操作時刻計測部であり、２１は、プロジェクト操作部１８からのプロジェクトへの操作内容を抽出する操作内容抽出部である。２２は、操作部側操作入力部１７からのユーザＩＤを記憶するユーザＩＤ記憶部であり、２３は、操作部ＩＤを記憶する操作部ＩＤ記憶部である。２４は、操作時刻計測部２０からの操作時刻と、操作内容抽出部２１からの操作内容と、ユーザＩＤ記憶部２２からのユーザＩＤと、操作部ＩＤ記憶部２３からの操作部ＩＤとから、操作履歴コア情報（操作属性情報）を生成する操作履歴コア情報生成部であり、２５は、プロジェクト操作部１８からの操作後のプロジェクトと、操作履歴コア情報生成部２４からの操作履歴コア情報と、プロジェクト逆アーカイブ化部１２からの操作履歴管理ファイルとを、管理部２に送信する操作部側対管理部Ｉ／Ｆ部である。２６は、プロジェクト逆アーカイブ化部１２からの操作履歴管理ファイルから操作履歴情報を抽出して表示する操作履歴情報表示部であり、３１は、管理部２が動作する機器のＩＰアドレス情報と、管理部２の待ち受けポート番号とを記憶する対管理部接続情報記憶部である。
【００２１】
次に、管理部２の構成要素について説明する。５１は、操作部１が備える操作部側対管理部Ｉ／Ｆ部２５からの、操作後のプロジェクトと、操作履歴コア情報と、操作履歴管理ファイルとを受信する管理部側対操作部Ｉ／Ｆ部（入力部）であり、５４は、管理部側対操作部Ｉ／Ｆ部５１からの操作後のプロジェクトを仮プロジェクト・アーカイブ化する管理部側仮プロジェクト・アーカイブ化部である。５５は、管理部側仮プロジェクト・アーカイブ化部５４からの仮プロジェクト・アーカイブから、ハッシュ関数を用いてハッシュ値（改竄検知用情報）を生成する管理部側ハッシュ値生成部（改竄検知用情報生成部）であり、５６は、管理部側対操作部Ｉ／Ｆ部５１からの操作履歴コア情報から操作部ＩＤを抽出する操作部ＩＤ抽出部である。５７は、管理部側対操作部Ｉ／Ｆ部５１からの操作履歴管理ファイルから、操作前の版情報を抽出する版情報抽出部であり、５８は、管理部ＩＤを記憶する管理部ＩＤ記憶部である。５９は、版情報抽出部５７からの版情報と、操作部ＩＤ抽出部５６からの操作部ＩＤとから操作後の版情報を生成する版情報生成部であり、６０は、管理部側対操作部Ｉ／Ｆ部５１からの操作履歴コア情報と、管理部ＩＤ記憶部５８からの管理部ＩＤと、版情報生成部５９からの操作後の版情報と、管理部側ハッシュ値生成部５５からのハッシュ値とから、操作履歴情報を生成する操作履歴情報生成部（更新情報生成部）である。６１は、管理部側対操作部Ｉ／Ｆ部５１からの操作履歴コア情報に含まれる操作内容が新規作成であれば、プロジェクト毎にプロジェクトＩＤを生成するプロジェクトＩＤ生成部であり、６２は、操作履歴管理ファイルを生成し、プロジェクトＩＤ生成部６１からのプロジェクトＩＤと、管理部ＩＤ記憶部５８からの管理部ＩＤを記録する操作履歴管理ファイル生成部である。６３は、操作履歴情報生成部６０からの操作履歴情報を、管理部側対操作部Ｉ／Ｆ部５１からの操作履歴管理ファイル、または、操作履歴管理ファイル生成部６２からの操作履歴管理ファイルに追記して記録する操作履歴情報記録部（操作履歴管理ファイル更新部）であり、６４は、操作履歴情報記録部６３からの操作履歴管理ファイルと、管理部側対操作部Ｉ／Ｆ部５１からのプロジェクトを１ファイル化してプロジェクト・アーカイブを生成するプロジェクト・アーカイブ化部である。６５は、プロジェクト・アーカイブ化部６４からのプロジェクト・アーカイブを保管するプロジェクト・アーカイブ保管部（記録部）であり、７０は、プロジェクト・アーカイブ保管部６５に対し、出力するプロジェクト・アーカイブを指定する管理部側操作入力部である。６６は、管理部側操作入力部７０により指定されたプロジェクト・アーカイブ保管部６５からのプロジェクト・アーカイブを出力するプロジェクト・アーカイブ出力部である。
【００２２】
図２は、プロジェクトのファイル構成を示す図であり、１０１は、ソフトウェアのソースコードが記述されたソースコード・ファイル群、１０２は、ソフトウェアの動作に影響を与える各種パラメータとその値が記述されたパラメータ値ファイル群、１０３は、ソフトウェアに埋め込まれた画像データやドキュメントなどのリソースが記述されたリソース・ファイル群であり、１０４は、ソースコード・ファイル群１０１、パラメータ値ファイル群１０２、リソース・ファイル群１０３とからなる、１つのソフトウェアを構成する全ファイルからなるプロジェクトである。図２に示すプロジェクトは、変更操作対象ソフトウェアの例に相当する。
【００２３】
図３は、仮プロジェクト・アーカイブの生成例を示す図であり、１１１は、仮プロジェクト・アーカイブを示している。
【００２４】
図４は、操作後ハッシュ値の生成例を示す図であり、１１２は、操作後ハッシュ値である。
【００２５】
図５は、管理部ＩＤ情報の例を示す図であり、１２１は、管理部ＩＤ情報、１２２は、管理部ＩＤコア情報、１２３は、ＩＰアドレス情報である。
【００２６】
図６は、版情報の例を示す図であり、１３１は、版情報である。
【００２７】
図７は、版情報の生成の例を示す図である。
【００２８】
図８は、操作履歴管理ファイルの例を示した図であり、１４１は、操作履歴管理ファイルを、１４２は、版情報、操作時刻情報（以降、「操作時刻」とも言う）、操作部ＩＤ情報（以降、「操作部ＩＤ」とも言う）、ユーザＩＤ情報（以降、「ユーザＩＤ」とも言う）、操作内容情報（以降、「操作内容」とも言う）、ハッシュ値情報（以降、「ハッシュ値」とも言う）、管理部ＩＤ情報（以降、「管理部ＩＤ」とも言う）とからなる操作履歴情報を、１４３は、操作時刻、操作部ＩＤ、ユーザＩＤ、操作内容とからなる操作履歴コア情報を示している。操作履歴コア情報は、操作部１における変更操作の属性を示す情報であり、操作属性情報の例に相当する。
【００２９】
図９は、プロジェクト・アーカイブの生成、および、分解例を示す図であり、１５１は、操作履歴管理ファイル、１６１は、プロジェクト・アーカイブを示している。
【００３０】
図１０は、操作部１の動作例を概説するフローチャートである。
【００３１】
図１１は、管理部２の動作例を概説するフローチャートである。
【００３２】
図１２は、本実施の形態に係るソフトウェア履歴管理システムにおける、操作部と管理部の接続構成を示した図である。
【００３３】
図１３は、本実施の形態の改竄検知機能を示すフローチャートである。
【００３４】
図１４は、本実施の形態に係る版情報生成機能を示すフローチャートである。
【００３５】
図１５は、本実施の形態に係る操作部ＩＤ情報生成機能を示すフローチャートである。
【００３６】
図１６は、本実施の形態に係る管理部ＩＤ情報生成機能を示すフローチャートである。
【００３７】
図１７は、本実施の形態に係る操作履歴管理ファイルの生成を示すフローチャートである。
【００３８】
次に、図１０を参照して操作部１の動作例を概説する。まず、ステップＳ１００１において、プロジェクト・アーカイブ入力部１１がプロジェクト・アーカイブを入力する（入力ステップ）。プロジェクト・アーカイブは、図９に示したようにプロジェクト１０４と操作履歴管理ファイル１５１とをアーカイブ化処理によって１ファイル化したものである。プロジェクト１０４は、変更操作対象ソフトウェアに相当する。また、図８に示したように操作履歴管理ファイル１５１には、ハッシュ値（改竄検知用情報）が含まれている。次に、プロジェクト逆アーカイブ化部１２が入力されたプロジェクト・アーカイブに逆アーカイブ処理を行った後、ステップＳ１００２において、ハッシュ値抽出部１３が操作履歴管理ファイル１５１からハッシュ値（改竄検知用情報）を抽出する（改竄検知用情報抽出ステップ）。また、ステップＳ１００３において、操作部側ハッシュ値生成部１５がハッシュ関数を用いてプロジェクトからハッシュ値（改竄検知用情報）を算出する（改竄検知用情報算出ステップ）。なお、Ｓ１００３で算出されたハッシュ値は算出改竄検知用情報に相当する。次に、ステップＳ１００４において、改竄検知部１６が、Ｓ１００２で抽出されたハッシュ値とＳ１００３で算出されたハッシュ値とを比較してプロジェクトに対する改竄の有無を検知する（改竄検知ステップ）。二つのハッシュ値が同じであれば（Ｓ１００５でＹｅｓ）、ステップＳ１００６において、操作部側操作入力部１７からの入力内容に従って、プロジェクト操作部１８がプロジェクトに対する変更操作を行う（変更操作ステップ）。次に、ステップＳ１００７において、操作履歴コア情報生成部２４が、操作時刻、操作部ＩＤ、ユーザＩＤ、操作内容といった変更操作の属性を示す操作履歴コア情報（操作属性情報）を生成する。次に、ステップＳ１００８において、操作部側対管理部Ｉ／Ｆ部２５が操作後のプロジェクト、操作履歴コア情報、操作履歴管理ファイルを管理部へ送信する。一方、ステップＳ１００５において二つのハッシュ値が同じでない場合は、プロジェクトに対する改竄がなされていると考えられるため、ステップＳ１００９において、プロジェクト・アーカイブを破棄して処理を終了する。
【００３９】
次に、図１１を参照して管理部２の動作例を概説する。先ず、ステップＳ１１０１において、管理部側対操作部Ｉ／Ｆ部５１が、操作後のプロジェクト、操作履歴コア情報、操作履歴管理ファイルを操作部１から受信する（入力ステップ）。次に、ステップＳ１１０２において、管理部側ハッシュ値生成部５５が、受信した操作後のプロジェクトからハッシュ値（改竄検知用情報）を生成する（改竄検知用情報生成ステップ）。次に、ステップＳ１１０３において、版情報抽出部５７が、操作履歴管理ファイルに含まれた操作前の版情報を抽出する。次に、ステップＳ１１０４において、操作部ＩＤ抽出部５６が、操作履歴コア情報に含まれた操作部ＩＤを抽出する。次に、ステップＳ１１０５において、操作前の版情報と操作部ＩＤとから、操作後のソフトウェアの版情報を生成する。操作後の版情報の生成手法は後述する。次に、ステップＳ１１０６において、操作履歴情報生成部６０が更新情報を生成する（更新情報生成ステップ）。更新情報は、操作部における変更操作を反映させて操作履歴管理ファイルを更新するための情報であり、版情報と、操作時刻情報と、操作部ＩＤ情報と、ユーザＩＤ情報と、操作内容情報と、ハッシュ値情報と、管理部ＩＤ情報とからなる。次に、ステップＳ１１０７において、操作履歴情報生成部６０は、更新情報にハッシュ値を付加して操作履歴情報とする（操作履歴管理ファイル更新ステップ）。次に、ステップＳ１１０８において、操作履歴情報記録部６３が、ステップＳ１１０７で生成された操作履歴情報を操作履歴管理ファイルに追加して操作履歴管理ファイルを更新する（操作履歴管理ファイル更新ステップ）。次に、ステップＳ１１０９において、プロジェクト・アーカイブ化部６４が、操作後のプロジェクトと更新後の操作履歴管理ファイルのアーカイブ化処理を行い、プロジェクト・アーカイブを生成する。次に、ステップＳ１１１０において、プロジェクト・アーカイブ保管部６５がプロジェクト・アーカイブを記録する（記録ステップ）。
【００４０】
次に図１〜図８を用いて本実施の形態に係るソフトウェア履歴管理システムの動作を詳述する。まず、操作部１の備えるプロジェクト・アーカイブ入力部１１より、プロジェクト・アーカイブを入力する。プロジェクト・アーカイブは、図９に示すようにプロジェクト１０４と操作履歴管理ファイル１５１とをアーカイブ化処理によって１ファイル化したものである。また、プロジェクトは、図２に示すようにソースコード・ファイル群１０１、パラメータ値ファイル群１０２、リソース・ファイル群１０３とからなる、１つのソフトウェアを実現するために必要な全ファイルである。
【００４１】
プロジェクト逆アーカイブ化部１２は、プロジェクト・アーカイブ入力部１１からプロジェクト・アーカイブを入力され、逆アーカイブ化処理によりプロジェクト・アーカイブをプロジェクトと操作履歴管理ファイルに分解する。
【００４２】
ハッシュ値抽出部１３は、プロジェクト逆アーカイブ化部１２からプロジェクト・アーカイブから分離された操作履歴管理ファイルを入力され、操作履歴管理ファイル中に記述された最新の操作履歴情報からハッシュ値情報を抽出する。図８に示すように、操作履歴情報が操作履歴管理ファイル１４１に含まれ、ハッシュ値情報は、新しい順に記述された操作履歴情報１４２に含まれる。
【００４３】
操作部側仮プロジェクト・アーカイブ化部１４は、プロジェクト逆アーカイブ化部１２からプロジェクト・アーカイブから分離されたプロジェクトを入力され、仮プロジェクト・アーカイブを生成する。仮プロジェクト・アーカイブは、図３に示すようにプロジェクト１０４をアーカイブ化処理によって１ファイル化したものであり、操作履歴管理ファイルを含まない点でプロジェクト・アーカイブと異なる。
【００４４】
操作部側ハッシュ値生成部１５は、操作部側仮プロジェクト・アーカイブ化部１４から仮プロジェクト・アーカイブを入力され、操作前のプロジェクトのハッシュ値を生成する。ハッシュ値情報は、図４に示すように仮プロジェクト・アーカイブからハッシュ関数を用いて生成されるものである。ハッシュ関数には、例えばＭＤ５関数やＳＨＡ−１関数のように、ハッシュ値情報から元の入力データを生成することが不可能であり、かつ、ハッシュ値が同一となる他の入力データを生成することが極めて困難である関数を適用する。
【００４５】
改竄検知部１６は、図１３に示すように、ハッシュ値抽出部１３から操作履歴管理ファイル中のハッシュ値を、操作部側ハッシュ値生成部１５から操作前のプロジェクトのハッシュ値をそれぞれ入力され、これら２つのハッシュ値を比較して、同じ値であれば改竄されていないことを、異なる値であれば改竄されていることを検知する。改竄があった場合には、プロジェクト・アーカイブ入力部１１に入力されたプロジェクト・アーカイブは信頼性の無い物として破棄し、処理を終了する。
【００４６】
次に、操作部側操作入力部１７より、プロジェクト操作部１８に対するプロジェクトへの変更等の操作を入力し、また、ユーザＩＤ記憶部２２にユーザＩＤを入力する。ユーザＩＤは、例えばメール・アドレスのように、予め操作者ごとに与られたものであり、操作者が異なれば必ずユーザＩＤも異なるため、この情報によりどの操作者がプロジェクトを操作したのかを特定することができる。
【００４７】
プロジェクト操作部１８は、プロジェクト逆アーカイブ化部１２からプロジェクトを入力され、操作部側操作入力部１７から入力された操作に基づき前記プロジェクトに変更を加える。
【００４８】
操作時刻計測部２０は、プロジェクト操作部１８におけるプロジェクトへの操作を監視し、変更が加えられた場合にその時刻を計測する。
【００４９】
操作内容抽出部２１は、プロジェクト操作部１８におけるプロジェクトへの操作を監視し、変更が加えられた場合にはその操作内容を抽出する。
【００５０】
ユーザＩＤ記憶部２２は、操作部側操作入力部１７から操作者のユーザＩＤを入力され、前記ユーザＩＤを記憶する。
【００５１】
操作部ＩＤ記憶部２３は、操作部毎に予め与えられた操作部ＩＤを記憶する。操作部ＩＤが記憶されていない場合には、図１５に示すように、現在時刻、操作部が動作する機器のＩＰアドレス、マシン名、インストール時に指定するプロダクトＩＤ等を乱数の種に用いた乱数値を生成し、操作部ＩＤとして記憶する。
【００５２】
操作履歴コア情報生成部２４は、操作時刻計測部２０から操作時刻を、操作内容抽出部２１から操作内容を、ユーザＩＤ記憶部２２からユーザＩＤを、操作部ＩＤ記憶部２３から操作部ＩＤを、それぞれ入力され、操作履歴情報コアを生成する。操作履歴コア情報は、図８に示すように操作履歴管理ファイル１４１に記述される操作履歴情報１４２の一部であり、操作時刻情報と、操作部ＩＤ情報と、ユーザＩＤ情報と、操作内容情報とからなる。
【００５３】
対管理部接続情報記憶部３１は、予め与えられた管理部２が動作する機器のＩＰアドレスと管理部２の待ち受けポート番号とを記憶する。
【００５４】
操作部側対管理部Ｉ／Ｆ部２５は、プロジェクト操作部１８から操作後のプロジェクトを、操作履歴コア情報生成部２４から操作履歴コア情報を、プロジェクト逆アーカイブ化部１２から操作履歴管理ファイルを、対管理部接続情報記憶部３１から管理部２が動作する機器のＩＰアドレスと管理部２の待ち受けポート番号を、それぞれ入力され、ＩＰアドレスと待ち受けポート番号を基に管理部２の備える管理部側対操作部Ｉ／Ｆ部５１とコネクションを確立し、プロジェクトと操作履歴コア情報と操作履歴管理ファイルとを送信する。
【００５５】
操作履歴情報表示部２６は、プロジェクト逆アーカイブ化部１２から操作履歴管理ファイルを入力され、操作履歴情報を抽出して表示する。操作履歴情報表示部２６を用いることにより、プロジェクトに対して、いつ、誰が、どの操作機器で、どのような操作を行ったかという操作履歴情報を確認でき、ソフトウェアの開発経緯を明らかにすることができる。
【００５６】
管理部２の備える管理部側対操作部Ｉ／Ｆ部５１は、操作部１の備える操作部側対管理部Ｉ／Ｆ部２５から、操作後のプロジェクトと、操作履歴コア情報と、操作履歴管理ファイルとを受信する。
【００５７】
管理部側仮プロジェクト・アーカイブ化部５４は、管理部側対操作部Ｉ／Ｆ部５１から操作後のプロジェクトを入力され、操作後の仮プロジェクト・アーカイブを生成する。
【００５８】
管理部側ハッシュ値生成部５５は、管理部側仮プロジェクト・アーカイブ化部５４から操作後の仮プロジェクト・アーカイブを入力され、ハッシュ関数を用いてハッシュ値を生成する。
【００５９】
管理部ＩＤ記憶部５８は、管理部毎に予め与えられた管理部ＩＤ情報を記憶する。管理部ＩＤ情報は、図５に示すように、管理部ＩＤコア情報と管理部が動作する機器のＩＰアドレスを連結したものである。管理部ＩＤ情報が記憶されていない場合には、図１６に示すように、現在時刻、管理部が動作する機器のＩＰアドレス、マシン名、インストール時に指定するプロダクトＩＤ等を乱数の種に用いた乱数値を生成して管理部ＩＤコア情報１２２とする。次に、操作部が動作する機器のＩＰアドレス情報１２３を連結することで生成する。
【００６０】
版情報抽出部５７は、対操作部Ｉ／Ｆ部５１から操作履歴情報管理ファイルを入力され、操作前の版情報を抽出する。
【００６１】
操作部ＩＤ抽出部５６は、対操作部Ｉ／Ｆ部５１から操作履歴コア情報を入力され、操作部ＩＤを抽出する。
【００６２】
版情報生成部５９は、版情報抽出部５７から版情報を、操作部ＩＤ抽出部５６から操作部ＩＤを入力され操作後の版情報を生成する。版情報は、図６に示すように、操作部ＩＤと通し番号との組が連続した情報である。
【００６３】
版情報を生成するには、図１４に示すように、版情報中の最後の操作部ＩＤと、操作後の操作部ＩＤとが同じであれば版情報の末尾の通し番号を１つ増やす。異なっていれば版情報の末尾に操作後の操作部ＩＤと通し番号“１”との組を加える。これにより、図７に示すように、同じ操作部で操作を繰り返した場合には、版情報中の操作部ＩＤと通し番号との組の数は増えずに末尾の通し番号が１つ増え、異なる操作部で操作をおこなった場合には版情報中の操作部ＩＤと通し番号との組の数が１つ増え、末尾の通し番号は“１”に戻る。
【００６４】
操作履歴情報生成部６０は、管理部側対操作部Ｉ／Ｆ部５１から操作履歴コア情報を管理部側ハッシュ値生成部５５から操作後のハッシュ値を、管理部ＩＤ記憶部５８から管理部ＩＤを、版情報生成部５９から版情報を、それぞれ入力され、版情報と、操作時刻情報と、操作部ＩＤ情報と、ユーザＩＤ情報と、操作内容情報と、管理部ＩＤから更新情報を生成し、更新情報にハッシュ値を付加して操作履歴情報を生成する。操作履歴情報は、図８に示すように、操作履歴管理ファイル１４１に記述される情報であり、版情報と、操作時刻情報と、操作部ＩＤ情報と、ユーザＩＤ情報と、操作内容情報と、ハッシュ値情報と、管理部ＩＤ情報とからなる。
【００６５】
プロジェクトＩＤ生成部６１は、管理部側対操作部Ｉ／Ｆ部５１から操作履歴コア情報を入力され、図１７に示すように、前記操作履歴コア情報から操作内容を抽出し、操作内容が新規作成であればプロジェクトＩＤを生成する。
【００６６】
操作履歴管理ファイル生成部６２は、プロジェクトＩＤ生成部６１からプロジェクトＩＤを、管理部ＩＤ記憶部５８から管理部ＩＤを、それぞれ入力され、図１７に示すように、操作履歴管理ファイルを新規作成してプロジェクトＩＤと管理部ＩＤを前記操作履歴管理ファイルに記録する。プロジェクトＩＤ生成部６１からのプロジェクトＩＤの入力が無い場合は、操作履歴管理ファイル生成部６２は動作しない。
【００６７】
操作履歴情報記録部６３は、操作履歴情報生成部６０から操作履歴情報を入力され、操作履歴管理ファイル生成部６２または管理部側対操作部Ｉ／Ｆ部５１から操作履歴管理ファイルを入力され、操作履歴管理ファイルに前記操作履歴情報を記録して、操作履歴管理ファイルを更新する。
【００６８】
プロジェクト・アーカイブ化部６４は、管理部側対操作部Ｉ／Ｆ部５１からプロジェクトを、操作履歴情報記録部６３から操作履歴情報を記録後の操作履歴管理ファイルを、それぞれ入力され、プロジェクト・アーカイブを生成する。プロジェクト・アーカイブは、図９に示すように、プロジェクト１０４と操作履歴管理ファイル１５１をアーカイブ化処理によって１ファイル化したものである。
【００６９】
プロジェクト・アーカイブ保管部６５は、プロジェクト・アーカイブ化部６４からプロジェクト・アーカイブを入力され、前記プロジェクト・アーカイブを保管する。
【００７０】
次に、管理部側操作入力部７０より、プロジェクト・アーカイブ保管部６５に対して、出力するプロジェクト・アーカイブのプロジェクトＩＤと版情報を指定する。
【００７１】
プロジェクト・アーカイブ出力部８０は、プロジェクト・アーカイブ保管部６５から、管理部側操作入力部７０によって指定されたプロジェクト・アーカイブを入力され、前記プロジェクト・アーカイブを出力する。
【００７２】
なお、実施の形態１では、対管理部接続情報記憶部３１が記憶するＩＰアドレスを基に、操作部１が備える操作部側対管理部Ｉ／Ｆ部２５と管理部２が備える管理部側対操作部Ｉ／Ｆ部５１とがデータの送受信を行うため、操作部１と管理部２とが同一機器内で動作している必要は無い。これにより、図１２に示すように、（ａ）それぞれの機器において、操作部と管理部が同一機器内でデータの送受信をおこなう接続構成が可能である。この場合、管理部のＩＰアドレスは１２７．０．０．１となる。また、（ｂ）操作部が他の機器で動作する管理部とデータの送受信をおこなう接続構成も可能である。この場合、管理部は同一機器内で動作する操作部とも、他の機器で動作する操作部ともデータの送受信をおこなうことになる。更に、（ｃ）管理部が動作する機器があり、他の機器で動作する操作部が前記管理部とデータの送受信をおこなう接続構成も可能である。
【００７３】
以上のように、操作部１の備えるプロジェクト・アーカイブ入力部１１に入力されたプロジェクト・アーカイブに含まれる操作履歴管理ファイルに記録されたプロジェクトのハッシュ値と、プロジェクトから生成した仮プロジェクト・アーカイブから操作部側ハッシュ値生成部１５により生成したハッシュ値とを改竄検知部１６で比較するようにしているので、プロジェクトが改竄されているか否かを検出することができる。更に、前記操作履歴管理ファイルに含まれる操作履歴情報を操作履歴情報表示部２６にて表示することで、いつ、誰が、どの操作部で、どういう操作をしたかを操作者が知ることができる。これらにより、ソフトウェアのトレーサビリティを確保することが可能になる。また、操作部１と管理部２が独立して動作し、これらの間において複数の接続構成を可能にするため、プロジェクト・アーカイブの分散管理と集中管理が共に可能になる。
【００７４】
実施の形態２．
以上の実施の形態１では、操作部側操作入力部より入力されたユーザＩＤを操作履歴情報の一部としたものであるが、次に、入力されたユーザＩＤが操作者のものであるかどうか疑わしい場合に前記ユーザＩＤの認証をおこなう実施の形態を示す。
【００７５】
図１８は、このような場合のソフトウェア履歴管理システムの構成例を示す構成図である。
【００７６】
図１８において、３０１は、ユーザ認証部である。後述するように、ユーザ認証部３０１を、操作部１と別装置にする場合には、ユーザ認証部３０１は、ユーザ認証装置に相当する。
【００７７】
また、本実施の形態では、操作部１は、更に３０２から３０４の要素を備える。３０２は、操作部側操作入力部からユーザＩＤとパスワードとを入力され、パスワードを操作部側ハッシュ値生成部１５に入力してその出力としてパスワード・ハッシュ値を獲得し、ユーザＩＤとパスワード・ハッシュ値が整合するかどうかをユーザ認証部３０１に問合せるユーザＩＤ問合せ部である。３０３は、ユーザ認証部３０１が動作する機器のＩＰアドレス情報と、ユーザ認証部３０１の待ち受けポート番号とを記憶する対ユーザ操作部接続情報記憶部である。３０４は、ユーザＩＤ問合せ部３０２からユーザＩＤとパスワード・ハッシュ値を入力され、対ユーザ認証部接続情報記憶部３０３から入力されるＩＰアドレスとポート番号に基づきユーザ認証部３０１とコネクションを確立してユーザＩＤとパスワード・ハッシュ値を送信し、ユーザ認証部３０１における認証結果を受信する操作部側対ユーザ認証部Ｉ／Ｆ部である。
【００７８】
なお、本実施の形態では、操作部側ハッシュ値生成部１５はユーザ認証情報算出部の例に相当し、プロジェクト操作部１８は変更操作部の例に相当し、操作部側対ユーザ認証部Ｉ／Ｆ部３０４は出力部及び認証結果入力部の例に相当する。
【００７９】
ユーザ認証部３０１は、３１１〜３４１の要素を備える。ユーザ認証部３０１において、３３１は、ユーザＩＤとパスワードの入力をおこなうユーザ認証部側操作入力部であり、３３２は、ユーザ認証部側操作入力部３３１からパスワードとパスワードを入力され、後述のユーザ認証部側ハッシュ値生成部３３３に前記パスワードを出力し、ユーザ認証部側ハッシュ値生成部３３３が前記パスワードから生成したパスワード・ハッシュ値を入力され、前記パスワードと前記パスワード・ハッシュ値とからユーザ認証情報を生成するユーザ認証情報生成部である。３３３は、ユーザ認証情報生成部３３２から前記パスワードを入力され、ハッシュ関数を用いてパスワード・ハッシュ値を生成するユーザ認証部側ハッシュ値生成部であり、３４１は、ユーザ認証情報生成部３３２から前記ユーザ認証情報を入力され、前記ユーザ認証情報を保管し、また、後述のユーザ認証結果生成部３２１からユーザＩＤとパスワード・ハッシュ値を入力され、前期ユーザＩＤと前記パスワード・ハッシュ値を含むユーザ認証情報が保管されているかどうかを調べてその真偽値を出力するユーザ認証情報保管部である。３１１は、操作部１の備える該操作部側対ユーザ認証部Ｉ／Ｆ部３０４からユーザＩＤとパスワード・ハッシュ値を受信して後述のユーザ認証結果生成部３２１に出力し、ユーザ認証結果生成部３２１が返す照合結果を操作部側対ユーザ認証部Ｉ／Ｆ部３０４に送信するユーザ認証部側対操作部Ｉ／Ｆ部であり、３２１は、ユーザ認証部側対操作部Ｉ／Ｆ部３１１からユーザＩＤとパスワード・ハッシュ値を入力され、ユーザ認証情報保管部３４１に前記ユーザＩＤと前記パスワード・ハッシュ値を含むユーザ認証情報が保管されているかどうかを問合せ、ユーザ認証情報保管部３４１から保管しているかどうかの真偽値を入力され、真偽値を、ユーザ認証部側対操作部Ｉ／Ｆ部３１１に出力するユーザ認証結果生成部である。
【００８０】
図１９は、本実施の形態のユーザ認証機能を示すフローチャートである。
【００８１】
図２０は、この発明のソフトウェア履歴管理システムにおける、操作部とユーザ認証部の接続構成を示した図である。
【００８２】
次に、図１８〜図１９を用いて動作について説明する。
【００８３】
まず、ユーザ認証部３０１が備えるユーザ認証部側操作入力部より、ユーザ認証情報保管部３４１に保管するユーザＩＤとパスワードとを入力する。
【００８４】
ユーザ認証情報生成部３３２は、ユーザ認証部側操作入力部３３１からユーザＩＤとパスワードを入力され、前記パスワードをユーザ認証部側ハッシュ値生成部３３３に出力する。
【００８５】
ユーザ認証部側ハッシュ値生成部３３３は、ユーザ認証情報生成部３３２からパスワードを入力され、ハッシュ関数を用いてパスワード・ハッシュ値を生成する。
【００８６】
ユーザ認証部側ハッシュ値生成部３３３は、生成したパスワード・ハッシュ値をユーザ認証情報生成部３３２に出力する。
【００８７】
ユーザ認証情報生成部３３２は、ユーザ認証部側ハッシュ値生成部３３３からパスワード・ハッシュ値を入力され、前記ユーザＩＤと前記パスワード・ハッシュ値とからなるユーザ認証情報を生成する。
【００８８】
ユーザ認証情報保管部３４１は、ユーザ認証情報生成部３３２からユーザ認証情報を入力され、前記ユーザ認証情報を保管する。
【００８９】
次に、操作部１が備えるプロジェクト・アーカイブ入力部１１よりプロジェクト・アーカイブを入力されてから、操作部側操作入力部１７よりプロジェクト操作部１８に対するプロジェクトへの変更等の操作を入力するまでの動作は実施の形態１と同等である。即ち、図１８において図１と同じ機能部は、同一の番号で示している。先の実施の形態と異なる動作は、操作部側操作入力部１７がユーザＩＤとパスワードを、ユーザＩＤ問合せ部３０２に入力してからである。
【００９０】
即ち、ユーザＩＤ問合せ部３０２は、操作部側操作入力部１７からユーザＩＤとパスワードを入力され、前記パスワードを操作部側ハッシュ値生成部１５に出力する。
【００９１】
操作部側ハッシュ値生成部１５は、図１９に示すように、ユーザＩＤ問合せ部３０２からパスワードを入力され、ハッシュ関数を用いてパスワード・ハッシュ値を生成する。操作部側ハッシュ値生成部１５により生成されたパスワード・ハッシュ値は、算出ユーザ認証情報の例に相当する。
【００９２】
操作部側ハッシュ値生成部１５は、生成したパスワード・ハッシュ値をユーザＩＤ問合せ部３０２に出力する。
【００９３】
ユーザＩＤ問合せ部３０２は、操作部側ハッシュ値生成部１５からパスワード・ハッシュ値を入力され、前記ユーザＩＤと前記パスワード・ハッシュ値とを操作部側対ユーザ認証部Ｉ／Ｆ部３０４に出力する。
【００９４】
対ユーザ認証部接続情報記憶部３０３は、予め与えられたユーザ認証部３０１が動作する機器のＩＰアドレスとユーザ認証部３０１の待ち受けポート番号とを記憶する。
【００９５】
操作部側対ユーザ認証部Ｉ／Ｆ部３０４は、ユーザＩＤ問合せ部３０２からユーザＩＤとパスワード・ハッシュ値を、対ユーザ認証部接続情報記憶部３０３からユーザ認証部３０１が動作する機器のＩＰアドレスとユーザ認証部３０１の待ち受けポート番号を、それぞれ入力され、ＩＰアドレスと待ち受けポート番号を基にユーザ認証部３０１の備えるユーザ認証部側対操作部Ｉ／Ｆ部３１１とコネクションを確立し、前記ユーザＩＤと前記パスワード・ハッシュ値を送信する。
【００９６】
ユーザ認証部側対操作部Ｉ／Ｆ部３１１は、操作部側対ユーザ認証部Ｉ／Ｆ部３０４からユーザＩＤとパスワード・ハッシュ値とを受信され、前記ユーザＩＤと前記パスワード・ハッシュ値をユーザ認証結果生成部３２１に出力する。
【００９７】
ユーザ認証結果生成部３２１は、ユーザ認証情報保管部３４１からユーザＩＤとパスワード・ハッシュ値を入力され、前記ユーザＩＤと前記パスワード・ハッシュ値とからユーザ認証情報を生成し、ユーザ認証情報保管部３４１に前記ユーザ認証情報が保管されているかどうかを問合せる。
【００９８】
ユーザ認証情報保管部３４１は、ユーザ認証結果生成部３２１からユーザ認証情報を入力され、図１９に示すように、該当するユーザ認証情報が保管されているかどうかを調べて、保管されていれば”真”、保管されていなければ”偽”となる真偽値をユーザ認証結果生成部３２１に出力する。
【００９９】
ユーザ認証結果生成部３２１は、ユーザ認証情報保管部３４１から真偽値を入力され、前記真偽値をユーザ認証部側対操作部Ｉ／Ｆ部３１１に出力する。
【０１００】
ユーザ認証部側対操作部Ｉ／Ｆ部３１１は、ユーザ認証結果生成部３２１から真偽値を入力され、
前記真偽値を操作部１の備える操作部側対ユーザ認証部Ｉ／Ｆ部３０４に出力する。
【０１０１】
操作部側対ユーザ認証部Ｉ／Ｆ部３０４は、ユーザ認証部側対操作部Ｉ／Ｆ部３１１から真偽値を入力され、前記真偽値をユーザＩＤ問合せ部３０２に出力する。
【０１０２】
ユーザＩＤ問合せ部３０２は、操作部側対ユーザ認証部Ｉ／Ｆ部３０４から真偽値を入力され、前記真偽値が”真”であれば、前記ユーザＩＤをユーザＩＤ記憶部２２に出力する。前記真偽値が”偽”であれば、認証エラーであることを操作者に通知し、操作部側操作入力部１７より再度ユーザＩＤとパスワードが入力されるのを待つ。
【０１０３】
ユーザＩＤ記憶部２２が、操作部側操作入力部１７からではなくユーザＩＤ問合せ部３０２からユーザＩＤを入力されて以降の動作は実施の形態１と同等である。
【０１０４】
なお、実施の形態２では、対ユーザ認証部接続情報記憶部３０３が記憶するＩＰアドレスを基に、操作部１が備える操作部側対ユーザ認証部Ｉ／Ｆ部３０４とユーザ認証部３０１が備えるユーザ認証部側対操作部Ｉ／Ｆ部３１１とがデータの送受信を行うため、操作部１とユーザ認証部３０１とが同一機器内で動作している必要は無い。これにより、図２０に示すように、（ａ）それぞれの機器において、操作部とユーザ認証部が同一機器内でデータの送受信をおこなう接続構成が可能である。この場合、ユーザ認証部のＩＰアドレスは１２７．０．０．１となる。また、（ｂ）操作部が他の機器で動作するユーザ認証部とデータの送受信をおこなう接続構成も可能である。この場合、ユーザ認証部は同一機器内で動作する操作部とも、他の機器で動作する操作部ともデータの送受信をおこなうことになる。更に、（ｃ）ユーザ認証部が動作する機器があり、他の機器で動作する操作部が前記ユーザ認証部とデータの送受信をおこなう接続構成も可能である。
【０１０５】
以上のように、操作部側操作入力部１７からユーザＩＤと共にパスワードを入力するようにし、ユーザＩＤ問合せ部３０２により、あらかじめユーザ認証情報保管部３４１に保管されたユーザ認証情報と合致するかどうかを調べることにより、操作部にて操作者が入力したユーザＩＤの認証を可能とし、かつ、複数の操作部が同一のユーザ認証部とデータの送受信をおこなうことにより共通のユーザＩＤを用いることが可能である。
【０１０６】
なお、前述した各実施の形態で、操作部１、管理部２、ユーザ認証部３０１は、コンピュータで実現できるものである。図示していないが、操作部１、管理部２、ユーザ認証部３０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。
【０１０７】
例えば、ＣＰＵは、バスを介して、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信ボード、表示装置、Ｋ／Ｂ（キーボード）、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（コンパクトディスクドライブ）、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続されている。ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。前述した各実施の形態の操作部１、管理部２、ユーザ認証部３０１が扱うデータや情報は、記憶装置あるいは記憶部に保存され、操作部１、管理部２、ユーザ認証部３０１の各部により、記録され読み出されるものである。
【０１０８】
また、通信ボードは、例えば、ＬＡＮ、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていてもよい。
【０１０９】
磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群（データベース）が記憶されている。プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
【０１１０】
上記操作部１、管理部２、ユーザ認証部３０１の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
【０１１１】
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をＣＰＵに実行させるプログラムが記憶される。これらのプログラムは、例えば、Ｃ言語やＨＴＭＬやＳＧＭＬやＸＭＬなどのコンピュータ言語により作成される。
【０１１２】
また、上記プログラムは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記憶され、ＣＰＵにより読み出され実行される。
【０１１３】
ここで、実施の形態１及び実施の形態２で示したソフトウェア履歴管理システムの特徴を以下に示す。
【０１１４】
実施の形態１に示したソフトウェア履歴管理システムは、
ソフトウェアに加えられた新規作成、変更等の操作履歴情報や版情報を管理するソフトウェア履歴管理システムであって、
操作部と管理部とを備え、
上記操作部には、
ソースコード・ファイル群、パラメータ値・ファイル群、リソース・ファイル群、とからなる１つのソフトウェアを構成するファイル群（以下、プロジェクト）、および、プロジェクトに対して加えられた操作履歴情報を記録するファイル（以下、操作履歴管理ファイル）を１ファイル化したもの（以下、プロジェクト・アーカイブ）を入力するプロジェクト・アーカイブ入力部と、
該プロジェクト・アーカイブ入力部からのプロジェクト・アーカイブを、プロジェクトと操作履歴管理ファイルとに戻すプロジェクト逆アーカイブ化部と、
該プロジェクト逆アーカイブ化部からの操作履歴管理ファイルから、記録されたプロジェクトのハッシュ値を抽出するハッシュ値抽出部と、
該プロジェクト逆アーカイブ化部からのプロジェクトを１ファイル（以下、仮プロジェクト・アーカイブ）化する操作部側仮プロジェクト・アーカイブ化部と、
操作部側仮プロジェクト・アーカイブ化部からの仮プロジェクト・アーカイブからハッシュ関数を用いてプロジェクトのハッシュ値を生成する操作部側ハッシュ値生成部と、
操作部側ハッシュ値生成部からのプロジェクトのハッシュ値と、ハッシュ値抽出部からの記録されたプロジェクトのハッシュ値とを比較し、プロジェクトが改竄されているかどうかを検知する改竄検知部と、
プロジェクトへの操作や、プロジェクトに操作を加える操作者に予め与えられているユーザＩＤを入力する操作部側操作入力部と、
該プロジェクト逆アーカイブ化部からのプロジェクトを、該操作部側操作入力部からのプロジェクトへの操作情報に基づき操作するプロジェクト操作部と、
プロジェクト操作部からの操作後のプロジェクトを出力するプロジェクト出力部と、
プロジェクト操作部からのプロジェクトへの操作時刻を計測する操作時刻計測部と、
プロジェクト操作部からのプロジェクトへの操作内容を抽出する操作内容抽出部と、
操作部側操作入力部からのユーザＩＤを記憶するユーザＩＤ記憶部と、
プロジェクトに操作を加える操作部ごとに予め与えられているＩＤ（以下、操作部ＩＤ）を記憶する操作部ＩＤ記憶部と、
該操作時刻計測部からの操作時刻と、該操作内容抽出部からの操作内容と、該ユーザＩＤ記憶部からのユーザＩＤと、該操作部ＩＤ記憶部からの操作部ＩＤとから、操作履歴コア情報を生成する操作履歴コア情報生成部と、
該管理部が動作する機器のＩＰアドレス情報と、固定値である該管理部の待ち受けポート番号とを記憶する対管理部接続情報記憶部と、
該プロジェクト操作部からの操作後のプロジェクトと、該操作履歴コア情報生成部からの操作履歴コア情報と、該プロジェクト逆アーカイブ化部からの操作履歴管理ファイルとを、対管理部接続情報記憶部に記憶された接続情報に基づき、該管理部に送信する操作部側対管理部Ｉ／Ｆ部と、
該プロジェクト逆アーカイブ化部からの操作履歴管理ファイルから操作履歴情報を抽出して表示する操作履歴情報表示部とを備え、
上記管理部には、
該操作部が備える該操作部側対管理部Ｉ／Ｆ部から、操作後のプロジェクトと、操作履歴情報と、操作履歴管理ファイルとを受信する管理部側対操作部Ｉ／Ｆ部と、
該管理部側対操作部Ｉ／Ｆ部からの操作後のプロジェクトを１ファイル（以下、仮プロジェクト・アーカイブ）化する管理部側仮プロジェクト・アーカイブ化部と、
該管理部側仮プロジェクト・アーカイブ化部からの仮プロジェクト・アーカイブからハッシュ関数を用いてハッシュ値を生成する管理部側ハッシュ値生成部と、
該管理部側対操作部Ｉ／Ｆ部からの操作履歴情報から操作部ＩＤを抽出する操作部ＩＤ抽出部と、
該管理部側対操作部Ｉ／Ｆ部からの操作履歴管理ファイルから操作前の版情報を抽出する版情報抽出部と、
プロジェクトを管理する管理部ごとに予め与えられているＩＤ（以下、管理部ＩＤ）を記憶する管理部ＩＤ記憶部と、
該版情報抽出部からの版情報と、該操作部ＩＤ抽出部からの操作部ＩＤとから操作後の版情報を生成する版情報生成部と、
該管理部側対操作部Ｉ／Ｆ部からの操作履歴コア情報と、該管理部ＩＤ記憶部からの管理部ＩＤと、該版情報生成部からの操作後の版情報と、該管理部側ハッシュ値生成部からのハッシュ値とから操作履歴情報を生成する操作履歴情報生成部と、
該管理部側対操作部Ｉ／Ｆ部からの操作履歴コア情報に含まれる操作内容が新規作成であれば、プロジェクト毎に独自のＩＤ  （以下、プロジェクトＩＤ）を生成するプロジェクトＩＤ生成部と、
操作履歴管理ファイルを生成し、該プロジェクトＩＤ生成部からのプロジェクトＩＤと、該管理部ＩＤ記憶部からの管理部ＩＤを記録する操作履歴管理ファイル生成部と、
該操作履歴情報生成部からの操作履歴情報を、該管理部側対操作部Ｉ／Ｆ部からの操作履歴管理ファイル、または、該操作履歴管理ファイル生成部からの操作履歴管理ファイルに追記して記録する操作履歴情報記録部と、
該操作履歴情報記録部からの操作履歴管理ファイルと、該管理部側対操作部Ｉ／Ｆ部からのプロジェクトを１ファイル化してプロジェクト・アーカイブを生成するプロジェクト・アーカイブ化部と、
該プロジェクト・アーカイブ化部からのプロジェクト・アーカイブを保管するプロジェクト・アーカイブ保管部と、
該プロジェクト・アーカイブ保管部に対し出力するプロジェクト・アーカイブを指定する管理部側操作入力部と、
該管理部側操作入力部により指定された、該プロジェクト・アーカイブ保管部からのプロジェクト・アーカイブを出力するプロジェクト・アーカイブ出力部を備え、
プロジェクトに対して、いつ、誰が、どの操作部で、どのような操作をおこなったかという変更履歴情報と、プロジェクトの改竄検知を可能にするハッシュ値とを操作履歴管理ファイルに記録し、該操作履歴管理ファイルとプロジェクトとを１ファイル化したプロジェクト・アーカイブによりソフトウェアを運用することで、ソフトウェアのトレーサビリティを確保し、かつ、プロジェクト・アーカイブの分散管理と集中管理を共に可能にすることを特徴とする。
【０１１５】
実施の形態２に示したソフトウェア履歴管理システムは、
操作部と管理部に加えてユーザ認証部を備え、
該操作部は、
操作部側情報入力部からユーザＩＤとパスワードを入力され、パスワードから操作部側ハッシュ値生成部を用いてパスワードのハッシュ値（以下、パスワード・ハッシュ値）を生成し、ユーザＩＤとパスワード・ハッシュ値とが整合するかどうかをユーザ認証部に問合せるユーザＩＤ問合せ部と、
該ユーザ認証部が動作する機器のＩＰアドレス情報と、固定値である該ユーザ認証部の待ち受けポート番号とを記憶する対ユーザ認証部接続情報記憶部と、
該ユーザＩＤ問合せ部からのユーザＩＤとパスワード・ハッシュ値を、該対ユーザ認証部接続情報記憶部に記憶された接続情報に基づき、該ユーザ認証部に送信し、問合せ結果を受信する操作部側対ユーザ認証部Ｉ／Ｆ部とを備え、
該ユーザ認証部は、
ユーザＩＤとパスワードの入力をおこなうユーザ認証部側操作入力部と、
該ユーザ認証部側操作入力部からパスワードとパスワードを入力され、後述のユーザ認証部側ハッシュ値生成部を用いてパスワード・ハッシュ値を生成し、ユーザＩＤとパスワード・ハッシュ値からユーザ認証情報を生成するユーザ認証情報生成部と、
該ユーザ認証情報生成部からパスワードを入力され、入力されたパスワードからハッシュ関数を用いてパスワード・ハッシュ値を生成して該ユーザ認証情報生成部に返すユーザ認証部側ハッシュ値生成部と、
該ユーザ認証情報生成部からユーザ認証情報を入力され保管するユーザ認証情報保管部と、
該操作部の備える該操作部側対ユーザ認証部Ｉ／ＦからユーザＩＤとパスワード・ハッシュ値を受信して後述のユーザ認証結果生成部に出力し、該ユーザ認証結果生成部が返す照合結果を該操作部側対ユーザ認証部Ｉ／Ｆに送信するユーザ認証部側対操作部Ｉ／Ｆ部と、
該ユーザ認証部側対操作部Ｉ／Ｆ部からユーザＩＤとパスワード・ハッシュ値を入力され、該ユーザ認証情報保管部に前記ユーザＩＤとパスワード・ハッシュ値を含むユーザ認証情報が保管されているかどうかを問合せ、保管されていれば”真”を、保管されていなければ”偽”を、ユーザ認証部側対操作部Ｉ／Ｆ部に返すユーザ認証結果生成部とを備え、
操作部にて操作者が入力したユーザＩＤの認証を可能とし、かつ、複数の操作部で共通のユーザＩＤを用いることを可能にすることを特徴とする。
【図面の簡単な説明】
【０１１６】
【図１】実施の形態１に係るソフトウェア履歴管理システムの構成例を示す構成図。
【図２】プロジェクトのファイル構成例を示す図。
【図３】仮プロジェクト・アーカイブの生成例を示す図。
【図４】操作後ハッシュ値の生成例を示す図。
【図５】管理部ＩＤ情報の例を示す図。
【図６】版情報の例を示す図。
【図７】版情報の生成手順の例を示す図。
【図８】操作履歴管理ファイルの例を示す図。
【図９】プロジェクト・アーカイブの生成、分解例を示す図。
【図１０】操作部の動作例を示すフローチャート図。
【図１１】管理部の動作例を示すフローチャート図。
【図１２】操作部と管理部の接続構成例を示す図。
【図１３】改竄検知機能を示すフローチャート図。
【図１４】版情報生成機能を示すフローチャート図。
【図１５】操作部ＩＤ情報生成機能を示すフローチャート図。
【図１６】管理部ＩＤ情報生成機能を示すフローチャート図。
【図１７】操作履歴管理ファイルの生成手順を示すフローチャート図。
【図１８】実施の形態２に係るソフトウェア履歴管理システムの構成例を示す構成図。
【図１９】ユーザ認証機能を示すフローチャート図。
【図２０】操作部とユーザ認証部の接続構成例を示す図。
【符号の説明】
【０１１７】
１  操作部、２  管理部、１１  プロジェクト・アーカイブ入力部、１２  プロジェクト逆アーカイブ化部、１３  ハッシュ値抽出部、１４  操作部側仮プロジェクト・アーカイブ化部、１５  操作部側ハッシュ値生成部、１６  改竄検知部、１７  操作部側操作入力部、１８  プロジェクト操作部、２０  操作時刻計測部、２１  操作内容抽出部、２２  ユーザＩＤ記憶部、２３  操作部ＩＤ記憶部、２４  操作履歴コア情報生成部、２５  操作部側対管理部Ｉ／Ｆ部、２６  操作履歴情報表示部、３１  対管理部接続情報記憶部、５１  管理部側対操作部Ｉ／Ｆ部、５４  管理部側仮プロジェクト・アーカイブ化部、５５  管理部側ハッシュ値生成部、５６  操作部ＩＤ抽出部、５７  版情報抽出部、５８  管理部ＩＤ記憶部、５９  版情報生成部、６０  操作履歴情報生成部、６１  プロジェクトＩＤ生成部、６２  操作履歴管理ファイル生成部、６３  操作履歴情報記録部、６４  プロジェクト・アーカイブ化部、６５  プロジェクト・アーカイブ保管部、６６  プロジェクト・アーカイブ出力部、７０  管理部側操作入力部、３０１  ユーザ認証部、３０２  ユーザＩＤ問合せ部、３０３  対ユーザ認証部接続情報記憶部、３０４  操作部側対ユーザ認証部Ｉ／Ｆ部、３１１  ユーザ認証部側対操作部Ｉ／Ｆ部、３２１  ユーザ認証結果生成部、３３１  ユーザ認証部側操作入力部、３３２  ユーザ認証情報生成部、３３３  ユーザ認証部側ハッシュ値生成部、３４１  ユーザ認証情報保管部。
【図１】
2005339228.tif 000003
【図２】
2005339228.tif 000004
【図３】
2005339228.tif 000005
【図４】
2005339228.tif 000006
【図５】
2005339228.tif 000007
【図６】
2005339228.tif 000008
【図７】
2005339228.tif 000009
【図８】
2005339228.tif 000010
【図９】
2005339228.tif 000011
【図１０】
2005339228.tif 000012
【図１１】
2005339228.tif 000013
【図１２】
2005339228.tif 000014
【図１３】
2005339228.tif 000015
【図１４】
2005339228.tif 000016
【図１５】
2005339228.tif 000017
【図１６】
2005339228.tif 000018
【図１７】
2005339228.tif 000019
【図１８】
2005339228.tif 000020
【図１９】
2005339228.tif 000021
【図２０】
2005339228.tif 000022