(57)【要約】【課題】電子データの作成履歴に関する情報の原本性が保証され、かつこれら情報が自動的に登録されるトレーサビリティ管理技術を提供する。【解決手段】電子データのトレーサビリティ管理装置１０は、実行が検出された処理プログラム、その入力データ及びその出力データの所在を検索する検索部１３と、この検索された処理プログラム、入力データ及び出力データのハッシュ値を取得する取得部１４と、この取得された３つのハッシュ値のセットを処理プログラムの実行が検出される毎に蓄積してなるリストを登録する登録部１６と、リストのなかから選択されるハッシュ値を含むセットを基点にして互いの入力データ及び出力データのハッシュ値が一致するセットの群を連結させる連結部１９と、この連結されたセットの群を履歴として出力する出力部２１と、を備えている。【選択図】  図１
2014074952.tif 000002
【特許請求の範囲】
【請求項１】
実行が検出された処理プログラム、その入力データ及びその出力データの所在を検索する検索部と、
前記検索された処理プログラム、入力データ及び出力データのハッシュ値を取得する取得部と、
前記取得された３つのハッシュ値のセットを前記実行が検出される毎に蓄積してなるリストを登録する登録部と、
前記リストのなかから選択されるハッシュ値を含む前記セットを基点にして互いの前記入力データ及び前記出力データの前記ハッシュ値が一致する前記セットの群を連結させる連結部と、
前記連結された前記セットの群を履歴として出力する出力部と、を備えることを特徴とする電子データのトレーサビリティ管理装置。
【請求項２】
前記処理プログラム、その入力データ及びその出力データのいずれかであることが推定される電子データを入力しそのハッシュ値を演算させる入力部をさらに備え、
前記連結部において、この入力された電子データのハッシュ値を含む前記セットを前記リストから抽出し前記基点にすることを特徴とする請求項１に記載の電子データのトレーサビリティ管理装置。
【請求項３】
前記履歴を構成するハッシュ値に紐付ける前記処理プログラム、前記入力データ及び前記出力データの属性情報を格納する格納部をさらに備えることを特徴とする請求項１又は請求項２に記載の電子データのトレーサビリティ管理装置。
【請求項４】
前記処理プログラム、前記入力データ及び前記出力データを保存するファイルサーバと、
前記ファイルサーバに対する端末のアクセス権を管理する認証サーバと、を備えることを特徴とする請求項１から請求項３のいずれか１項に記載の電子データのトレーサビリティ管理装置。
【請求項５】
実行が検出された処理プログラム、その入力データ及びその出力データの所在を検索するステップと、
前記検索された処理プログラム、入力データ及び出力データのハッシュ値を取得するステップと、
前記取得された３つのハッシュ値のセットを前記実行が検出される毎に蓄積してなるリストを登録するステップと、
前記リストのなかから選択されるハッシュ値を含む前記セットを基点にして互いの前記入力データ及び前記出力データの前記ハッシュ値が一致する前記セットの群を連結させるステップと、
前記連結された前記セットの群を履歴として出力するステップと、を含むことを特徴とする電子データのトレーサビリティ管理方法。
【請求項６】
コンピュータに、
実行が検出された処理プログラム、その入力データ及びその出力データの所在を検索するステップ、
前記検索された処理プログラム、入力データ及び出力データのハッシュ値を取得するステップ、
前記取得された３つのハッシュ値のセットを前記実行が検出される毎に蓄積してなるリストを登録するステップ、
前記リストのなかから選択されるハッシュ値を含む前記セットを基点にして互いの前記入力データ及び前記出力データの前記ハッシュ値が一致する前記セットの群を連結させるステップ、
前記連結された前記セットの群を履歴として出力するステップ、を実行させることを特徴とする電子データのトレーサビリティ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発において使用又は作成される電子データのトレーサビリティ管理技術に関する。
【背景技術】
【０００２】
計算機の性能向上に伴いソフトウェアの大規模化及び複雑化が進んでいる状況の下、ソフトウェアを部品化して再利用することで、ソフトウェア開発の生産性及び品質の向上が図られている。
このような大規模で複雑なソフトウェアでは、その開発プロセスにおける設計書、使用するソフト部品、及びこれらの変更履歴等を互いに関連付けるトレーサビリティ管理が行われている（例えば、特許文献１〜３）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２７１８６６号公報
【特許文献２】特開２００８−４０２９号公報
【特許文献３】特開２００６−１７８５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、これまでのソフトウェア開発で使用されるソフト部品のトレーサビリティ管理は、ファイル名やバージョン番号を識別子として管理対象の相互を関連付けするにとどまっている。
このために、識別子が付与された後に電子データが変更された場合、この変更の検出が困難であるため、トレーサビリティ管理における原本性の保証が不十分であった。
【０００５】
また、電子データ間の関係付けは、人手に頼る登録作業であるため、手間がかかる上、作業ミスによる誤情報が混入する可能性もある。
さらに、電子データのトレーサビリティ情報を検索する場合、電子データの識別子（ファイル名及びバージョン番号）とこの電子データの内容との対応の完全性を保証することが困難なために、検索結果の信頼性が低い。
【０００６】
本発明は、このような事情を考慮してなされたもので、電子データの作成履歴に関する情報の原本性が保証され、かつこれら情報が自動的に登録されるトレーサビリティ管理技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
電子データのトレーサビリティ管理装置において、実行が検出された処理プログラム、その入力データ及びその出力データの所在を検索する検索部と、前記検索された処理プログラム、入力データ及び出力データのハッシュ値を取得する取得部と、前記取得された３つのハッシュ値のセットを前記実行が検出される毎に蓄積してなるリストを登録する登録部と、前記リストのなかから選択されるハッシュ値を含む前記セットを基点にして互いの前記入力データ及び前記出力データの前記ハッシュ値が一致する前記セットの群を連結させる連結部と、前記連結された前記セットの群を履歴として出力する出力部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明により、電子データの作成履歴に関する情報の原本性が保証され、かつこれら情報が自動的に登録されるトレーサビリティ管理技術が提供される。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る電子データのトレーサビリティ管理装置の実施形態を示すブロック図。
【図２】処理プログラム、入力データ及び出力データのハッシュ値の三点セットが蓄積してなるリストを示す表。
【図３】処理プログラム、入力データ及び出力データの属性情報を示す表。
【図４】実施形態に係るトレーサビリティ管理装置により出力された履歴を示す図。
【図５】実施形態に係る電子データのトレーサビリティ管理装置の動作を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を添付図面に基づいて説明する。
図１に示すように、電子データのトレーサビリティ管理装置１０（以下、単に「装置１０という」）は、実行が検出された処理プログラム、その入力データ及びその出力データの所在を検索する検索部１３と、この検索された処理プログラム、入力データ及び出力データのハッシュ値を取得する取得部１４と、この取得された３つのハッシュ値のセットを処理プログラムの実行が検出される毎に蓄積してなるリスト（図２）を登録する登録部１６と、リスト（図２）のなかから選択されるハッシュ値を含むセットを基点にして互いの入力データ及び出力データのハッシュ値が一致するセットの群を連結させる連結部１９と、この連結されたセットの群を履歴として出力する出力部２１と、を備えている。
【００１１】
これにより、次のような作用・効果が得られる。
大規模なソフトウェアは、部品化された複数の電子データから作成され、複数の処理プログラムで連続的な処理を経て所望の電子データを得るものがある。例えば、第１入力データを処理プログラムで処理した第１出力データを、第２入力データとして別の処理プログラムで処理して第２出力データ生成するといった処理を繰り返えすことにより所望の電子データを得る。
このようなソフトウェアの開発、動作検証において装置１０は、最終的に得られた電子データを、使用した全ての入力データ及び処理プログラムに対し、ハッシュ値を介して自動的に関連付ける。
【００１２】
さらに装置１０は、電子データ２３を入力しそのハッシュ値を演算させる入力部１７をさらに備え、連結部１９において、この入力された電子データのハッシュ値を含むセットをリスト（図２）から抽出し、連結の基点にする。
これにより、着目する電子データ２３のトレーサビリティ情報を、この電子データ２３が最終的に得られたデータであるか又は部品データであるかにかかわらず、原本性が保証された状態で取得することができる。
【００１３】
さらに装置１０は、履歴２２を構成するハッシュ値に紐付ける処理プログラム、入力データ及び出力データの属性情報を格納する格納部２０をさらに備えている。
これにより、トレーサビリティ情報（履歴２２）を構成する処理プログラム、入力データ及び出力データの詳細情報を閲覧することができる。さらに、これら属性情報を検索キーとしてトレーサビリティ情報（履歴２２）を作成することもできる。
【００１４】
装置１０は、Ｉ／Ｏ部１１を介してネットワーク３１上のファイルサーバ３２、認証サーバ３３、端末Ｔ１，Ｔ２に接続されている。
ファイルサーバ３２は、処理プログラム、入力データ及び出力データといったデータファイルを保存するものであり、これらデータファイルは、ネットワーク３１上の端末Ｔ１，Ｔ２で共有される。
【００１５】
認証サーバ３３は、ファイルサーバ３２に対する端末Ｔ１，Ｔ２及びユーザのアクセス権を管理するものである。
認証サーバ３３は、ユーザ情報のテーブル（図示略）を有し、アクセスしてきたユーザや端末Ｔ１，Ｔ２が送信してくる情報が一致すればアクセスを許可する。認証方法としては、ＩＤとパスワードを組み合わせる方法，電子証明書を使う方法などが挙げられるが、特に限定されない。
【００１６】
なお、実施形態において装置１０は、ネットワーク３１上のノードとして示されるが、この装置１０を構成する機能部がネットワーク３１上の他の複数のノードに分散配置される場合もある。
また、ネットワーク３１をコンピュータ内のバスとみなし、ファイルサーバ３２及び端末の機能を含むスタンドアロン型の装置１０として具現化される場合もある。
【００１７】
入力データ及び出力データは、それぞれ着目する処理プログラムとの関係で定義されるものである。
電子データが複数の処理プログラムで段階的に処理される過程において、ある処理プログラムが他の処理プログラムに出力データを引き渡す処理を行う場合、ある処理プログラムの出力データが、他の処理プログラムの入力データに成り得る（適宜、図４参照）。
処理プログラムがコンパイラであれば、入力データはテキストコードで人間が読み書き可能に表されるソースファイルとなり、出力データはこのソースファイルをバイナリーコードの機械語に変換させたオブジェクトファイルとなる。
【００１８】
処理プログラムがリンカであれば、入力データは複数のオブジェクトファイルとなり、出力データはこれらオブジェクトファイルが結合されたライブラリ又は実行ファイルとなる。
ここで、ライブラリとは、再利用を前提とした機能単位のプログラム部品であって、それ単独で実行することはできないが、実行ファイルの一部の構成となり動作するものである。
【００１９】
また、処理プログラムとして表計算ソフトを含ませることができる。
この表計算ソフトを使用する例としては、ユーザが作成した情報データを入力データとして、ソースファイルの一部情報を一元的に管理するヘッダファイルを出力データとすることができる。
【００２０】
実行検出部１２（図１）は、ユーザが端末Ｔ１，Ｔ２を操作して、ファイルサーバ３２に配置されている入力データ及び処理プログラムにアクセスし実行したことを検出するものである。
なお、これら入力データ及び処理プログラムは、例示されるようにネットワーク３１を介して端末Ｔ１，Ｔ２から分離配置される場合に限定されず、この端末Ｔ１，Ｔ２に常駐している場合も含む。
【００２１】
また、入力データ及び処理プログラムの実行により生成した出力データは、ファイルサーバ３２の所定位置に配置される。
検索部１３（１３ａ，１３ｂ，１３ｃ）は、実行が検出された処理プログラム、その入力データ及びその出力データが所在するファイルサーバ３２のアドレスを検索する。
【００２２】
取得部１４は、この検索されたアドレスに所在する処理プログラム、入力データ及び出力データのハッシュ値の演算を促し、その演算結果を取得する。
ハッシュ値を演算する一方向性ハッシュ関数としては、ＭＤ５（Message Digest Algorithm 5）、ＳＨＡ（Secure Hash Algorithm）などの公知アルゴリズムを用いることができる。しかし、これらに限定されることはなく、対象となるデータファイルを一意的に決定する符合をハッシュ値として導くものであれば適宜採用することができる。
【００２３】
なお、これら処理プログラム、入力データ及び出力データのハッシュ値の演算手段（図示略）の設置場所は、特に限定されるものでなく、装置１０の内部に設置される場合、ネットワーク３１上のいずれかの位置に設置する場合がある。
【００２４】
セット形成部１５は、着目する処理プログラム、その入力データ及びその出力データのそれぞれにおける３つのハッシュ値を一組にしたセットを生成する。
そして、実行検出部１２において、処理プログラムの実行が新たに検出される度に、新たなセットが生成され、リスト登録部１６に蓄積されていく。
【００２５】
図２は、このリスト登録部１６において、処理プログラム、入力データ及び出力データのハッシュ値の三点セットが、蓄積してなるリストを示す表である。
このようにセットには、３つのハッシュ値以外に、データ、端末及びユーザの識別ＩＤ並びに実行時間やその他の情報を付随させることもできる。
【００２６】
電子データ入力部１７は、外部から任意の電子データ２３を入力するものであり、演算部１８においてそのハッシュ値が演算される。
ここで、入力される電子データ２３とは、ファイルサーバ３２に配置されている電子データ（処理プログラム、入力データ及び出力データ）との同一性が推定されるものである。
なお、このハッシュ値演算部１８で実行されるハッシュ関数は、検索部１３で検索された入力データ、処理プログラム及び出力データに適用されるものと同一である。
【００２７】
セット連結部１９は、演算部１８で演算されたハッシュ値を含むセットをリスト（図２）から選択し、この選択されたセットを基点にして互いの入力データ及び出力データのハッシュ値が一致するセットの群を連結させる。
ここで、演算部１８で演算されたハッシュ値を含むセットがリストに存在していない場合は、該当する電子データ２３は、装置１０による管理対象外ということになり、その旨の通知が出力される。
【００２８】
セット連結部１９の動作を、図４を参照して具体的に説明する。
リンカＰ２と同一の電子データ２３が入力部１７に入力すると、このリンカＰ２に対して上流側のソースファイルＸ１，Ｙ１、コンパイラＰ１及びオブジェクトファイルＸ２，Ｙ２、並びに下流側のライブラリＸ３、リンカＰ５及び実行ファイルＸ４のハッシュ値が相互に連結したデータとなって連結部１９から出力される。
これにより、電子データ２３の内容そのものを検索キーとして、当該電子ファイル２３を生成・変更したデータのトレーサビリティ情報を容易に取得することが可能となる。
【００２９】
リスト登録部１６には、処理プログラム、入力データ及び出力データのハッシュ値の三点セットが処理プログラムの実行毎に蓄積されている。
しかし、図４のようにソフトウェアがツリー構造であって平行して複数の処理プログラムが実効される場合等は、ハッシュ値が蓄積される順番は処理プログラムの接続関係順とは異なる場合も多い。
【００３０】
そこで、セット連結部１９は、入力データ及び出力データのハッシュ値が一致するセットの対を連続的に連結させることによって、処理が前後関係にある処理プログラム、その入力データ及び出力データを互いに関連付ける。
その結果、各処理プログラム、その入力データ及び出力データがソフトウェアのツリー構造で階層付けられる。
【００３１】
図３の表は、処理プログラム、入力データ及び出力データの属性情報を示している。
属性情報格納部２０（図１）は、ファイルサーバ３２に配置されている処理プログラム、入力データ及び出力データについて予め求められたハッシュ値に、それぞれの属性情報を紐付けて格納している。
ここで、属性情報は、図３に示されるような、それぞれのハッシュ値に対応するデータの識別ＩＤ、ファイル名、リビジョン、アドレス先といった情報や、アクセス制限、その他の情報を含めることができる。
【００３２】
履歴出力部２１は、セット連結部１９から出力されたデータを構成するハッシュ値に、属性情報（図３）を貼り付けた履歴２２（図４）を出力する。
なお、この履歴２２は、入力部１７で入力された電子データ２３をキーにして作成される他に、格納部２０の属性情報をキーとして作成することもできる。
【００３３】
このような履歴２２（図４）に基づけば、ソースファイル、コンパイラ、リンカといった電子データに欠陥が発見されたときに、この欠陥を内包するライブラリや実行ファイルを容易にリストアップできる。
また、相性の悪い処理プログラムの組み合わせが発見されたときも、この組み合わせに基づいて作成されたライブラリや実行ファイルを容易にリストアップできる。
【００３４】
図５のフローチャートを参照して電子データのトレーサビリティ管理装置の動作を説明する（適宜、図１参照）。
まず、端末Ｔ１においてユーザが、入力データに対し処理プログラムを実行し（Ｓ１１）、出力データがファイルサーバ３２に格納される。すると、この処理プログラムの実行が装置１０において検出され（Ｓ１２）、この処理プログラム、その入力データ及びその出力データのファイルサーバ３２上の所在（アドレス）が検索される（Ｓ１３）。
【００３５】
すると、この検索された処理プログラム、入力データ及び出力データのハッシュ値が演算され（Ｓ１４）、装置１０側に取得される（Ｓ１５）。
この取得された３つのハッシュ値はセットを形成し（Ｓ１６）、新たな処理プログラムの実行が検出される毎に形成されるセットが蓄積してなるリストが登録される（Ｓ１７ Ｎｏ）。
【００３６】
ここで、入力部１７に電子データ２３が入力されるか、又は格納部２０内の属性情報が指定されるか等により調査命令が発動された場合は、この調査対象のハッシュ値を演算もしくは指定する（Ｓ１８）。
そして、登録部１６に登録されているリスト（図２）のなかから演算（もしくは指定）されたハッシュ値を含むセットを選択する（Ｓ１９）。
【００３７】
次に、この選択されたセットを基点にして互いの入力データ及び出力データのハッシュ値が一致するセットの群を連結させる（Ｓ２０）。
最後に、この連結された前記セットの群に、格納部２０から対応する属性情報を付加した履歴２２が出力される（Ｓ２１）。
【００３８】
以上述べた少なくともひとつの実施形態の電子データのトレーサビリティ管理装置によれば、注目する電子データの生成に関与したすべての電子データがハッシュ値を介して互いに関連付けられることにより、電子データの作成履歴に関する情報の原本性が保証され、かつこれら情報を自動的に登録することが可能となる。
【００３９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組み合わせを行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
また、電子データのトレーサビリティ管理装置の構成要素は、コンピュータのプロセッサで実現することも可能であり、電子データのトレーサビリティ管理プログラムにより動作させることが可能である。
【符号の説明】
【００４０】
１０…トレーサビリティ管理装置（装置）、１１…Ｉ／Ｏ部、１２…実行検出部（検出部）、１３（１３ａ，１３ｂ，１３ｃ）…検索部、１４…ハッシュ値取得部（取得部）、１５…セット形成部（形成部）、１６…リスト登録部（登録部）、１７…電子データ入力部（入力部）、１８…ハッシュ値演算部（演算部）、１９…セット連結部（連結部）、２０…属性情報格納部（格納部）、２１…履歴出力部（出力部）、２２…履歴、２３…電子データ、３１…ネットワーク、３２…ファイルサーバ、３３…認証サーバ、Ｔ１，Ｔ２…端末。
【図１】
2014074952.tif 000003
【図２】
2014074952.tif 000004
【図３】
2014074952.tif 000005
【図４】
2014074952.tif 000006
【図５】
2014074952.tif 000007