以下に添付図面を参照して本願に係る情報管理プログラム、情報管理方法及び情報管理装置の実施例について説明する。なお、この実施例は適用範囲を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることができる。
[システム構成]
図1は、実施例1に係るファイル管理システムの構成を示す図である。図1に示すファイル管理システム1は、製品の設計・開発の各工程でクライアント端末30A〜30Cによって生成される開発資産、例えば仕様書、設計書や検証データなどの成果物のファイルを管理するものである。
図1に示すように、ファイル管理システム1には、ファイル管理サーバ10と、クライアント端末30A〜30Cとが収容される。なお、図1には、3つのクライアント端末をそれぞれ図示したが、ファイル管理システム1は任意の数のクライアント端末を収容できる。また、図1には、1つのファイル管理サーバでファイルを管理する場合を例示するが、複数のファイル管理サーバでファイルを分散して管理することとしてもかまわない。以下では、クライアント端末30A〜30Cの各装置を区別なく総称する場合には、「クライアント端末30」と記載する場合がある。
これらファイル管理サーバ10及びクライアント端末30の間は、ネットワーク5を介して相互に通信可能に接続される。かかるネットワーク7には、有線または無線を問わず、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
このうち、ファイル管理サーバ10は、製品の設計・開発の各工程で成果物して得られる開発資産のファイルを管理する情報管理サービスをクライアント端末30に提供するコンピュータである。かかるファイル管理サーバ10は、上記の情報管理サービスに関する処理を実行するWebサーバとして実装することとしてもよいし、また、上記の情報管理サービスをアウトソーシングにより提供するクラウドとして実装することもできる。他の一態様としては、パッケージソフトウェアやオンラインソフトウェアとして提供される情報管理プログラムを所望のコンピュータにプリインストール又はインストールさせることによっても実装できる。
クライアント端末30は、上記の情報管理サービスの提供を受けるコンピュータである。例えば、クライアント端末30は、製品の開発・設計に携わる開発者を始め、開発・設計に間接的に関係する関係者などによって使用される。以下では、開発者および関係者を総称して「開発関係者」と記載する場合がある。かかるクライアント端末30の一態様としては、パーソナルコンピュータを始めとする固定端末の他、スマートフォン、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistants)などの移動体端末も採用できる。
かかるクライアント端末30には、ファイル管理サーバ10によって提供される情報管理サービスの提供を受けるフロントエンドとして機能するアプリケーションプログラム、例えばWebブラウザなどがプリインストールまたはインストールされる。なお、以下では、クライアント端末30上で動作されるアプリケーションプログラムのことを「クライアントアプリ」と記載する場合がある。
例えば、クライアント端末30は、クライアントアプリを介して開発関係者のアカウント名やパスワードなどのログインの認証情報の入力を受け付けた上でログインの認証情報をファイル管理サーバ10へ送信する。これによって、開発関係者はログイン認証を受けることになる。この結果、ログイン認証に成功した場合、すなわちクライアント端末30の操作者が開発関係者であると認証された場合には、当該開発関係者が有する権限にしたがって上記の情報管理サービスの一部または全部がファイル管理サーバ10によって開放される。かかるログイン認証の成功後には、クライアント端末30は、クライアントアプリを介して、開発関係者からファイル管理サーバ10に対する各種のファイル操作を受け付けることができる。
かかるファイル操作の一態様としては、ファイル管理サーバ10上に新規のファイルをアップロードする操作、ファイル管理サーバ10上で管理されるファイルの内容の一部を変更する操作やファイルを削除したりする操作などが挙げられる。なお、以下では、ワープロソフトや表計算ソフトなどによって製品の開発・設計の各工程で作成される仕様書、設計書や検証データなどの文書ファイルのことを「ドキュメント」と記載する場合がある。ファイル操作の他の一態様としては、ファイル管理サーバ10上で管理されるファイルのうち互いに関係のある複数のファイル情報を関連付ける関連付け操作が挙げられる。かかる関連付けは、例えば、あるファイルの内容の変更が他のファイルに与える影響範囲を検索するトレーサビリティを実現する目的でなされる。
なお、ここで言う「ファイル情報」は、必ずしもファイルそのものだけを指すものではなく、ファイルの中身が表す文書に含まれる要素であってもよい。例えば、表形式のファイルの場合には、表計算ソフトで表示される表のマス目であるセルなどが挙げられる。以下では、表計算ソフトのセルなどのように、ファイルの中身が表す文書に含まれる要素のことを「ファイル要素」と記載する場合がある。
[ファイル管理サーバ10の構成]
続いて、本実施例に係るファイル管理サーバ10の機能的構成について説明する。図2は、実施例1に係るファイル管理サーバ10の機能的構成を示すブロック図である。図2に示すように、ファイル管理サーバ10は、通信I/F(interface)部11と、記憶部13と、制御部15とを有する。なお、ファイル管理サーバ10は、図2に示した機能部以外にも既知のサーバ装置が有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
通信I/F部11は、他の装置、例えばクライアント端末30との間で通信制御を行うインタフェースである。かかる通信I/F部11の一態様としては、LAN(Local Area Network)カードなどのネットワークインタフェースカードを採用できる。例えば、通信I/F部11は、クライアント端末30からファイル操作に関するコマンドやコマンドに対応するファイルを受信したり、また、あるファイルの内容の変更が他のファイルやファイル要素に与える影響範囲の検索要求を受信したりする。また、通信I/F部11は、クライアント端末30からのファイル操作のコマンドに対応するファイルを送信したり、また、変更の影響範囲の検索結果を送信したりする。
記憶部13は、制御部15で実行されるOS(Operating System)や情報管理プログラムなどの各種プログラムを記憶する記憶デバイスである。記憶部13の一態様としては、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置が挙げられる。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、ファイル13aと、オブジェクト情報13bと、条件情報13cと、関連付け情報13dとを記憶する。なお、上記のファイル13a、オブジェクト情報13b、条件情報13cや関連付け情報13d以外にも、他の電子データ、例えば開発関係者のファイルへのアクセス権限なども併せて記憶することもできる。
このうち、ファイル13aは、製品の開発・設計の各工程で生成される各種のファイルである。かかるファイル13aの一例としては、要求分析、外部設計、内部設計といった工程で作成された各種のドキュメントを始め、プログラム設計の後にプログラミングされたプログラムの検証、いわゆるテストの工程で作成された各種のドキュメントが挙げられる。具体例を挙げれば、要求分析の成果として製品の機能に関する仕様が定義される「機能要件書」、外部設計の成果として製品の機能に関する基本設計が定義される「機能設計書」、内部設計の成果として製品の機能に関する詳細設計が定義される「機能詳細設計書」などのドキュメントが挙げられる。さらには、要件の観点からプログラムのテストの計画が定義された「要件テスト仕様書」、機能の観点からプログラムのテストの計画が定義された「機能テスト仕様書」などのドキュメントが挙げられる。
かかるファイル13aは、クライアント端末30への表示や操作が仮想的なツリー構造で実現される。図3は、ツリー構造の一例を示す図である。図3には、ルートフォルダを頂点とし、「機能要件」、「機能設計」、「機能詳細設計」、「要件テスト仕様」、「機能テスト仕様」といった製品の開発・設計の各工程がルートフォルダの配下のフォルダとして配置されたツリー構造が例示されている。
図3に示すように、「機能要件」のフォルダには、「機能要件書」のファイルが格納されている。さらに、「機能要件書」のファイルは、「機能要件1」や「機能要件2」といったファイル要素を含んでいる。また、「機能設計」のフォルダには、「機能A設計書」および「機能B設計書」の2つのファイルが格納されている。このうち、「機能A設計書」のファイルは、「機能A1設計」や「機能A2設計」などのファイル要素を含み、また、「機能B設計書」のファイルは、「機能B1設計」のファイル要素を含んでいる。また、「機能詳細設計」のフォルダには、「機能A1詳細設計書」、「機能A2詳細設計書」および「機能B1詳細設計書」の3つのファイルが格納されている。このうち、「機能A1詳細設計書」のファイルは、「詳細設計(イ)」及び「詳細設計(ロ)」などのファイル要素を含んでいる。また、「機能A2詳細設計書」のファイルは、「詳細設計(α)」のファイル要素を含んでいる。さらに、「機能B1詳細設計書」のファイルは、「詳細設計(i)」のファイル要素を含んでいる。また、「要件テスト仕様」のフォルダには、「要件1テスト仕様書」のファイルが格納されており、かかる「要件1テスト仕様書」のファイルが機能要件1に関する「テスト仕様1」を含んでいる。また、「機能テスト仕様」のフォルダには、「機能A1テスト仕様書」のファイルが格納されており、かかる「機能A1テスト仕様書」のファイルが機能A1に関する「テスト仕様A1」を含んでいる。
オブジェクト情報13bは、上記の関連付けが実行されるフォルダ、ファイルやファイル要素といったオブジェクトに関する情報である。かかるオブジェクト情報13bは、クライアント端末30からのファイル操作が実行された場合に、後述の登録部15aによって生成、更新または消去がなされる。
例えば、クライアント端末30からファイル管理サーバ10上にフォルダを新規に作成するファイル操作を受け付けた場合には、新規に作成されたフォルダがオブジェクトとして新規に登録される。また、クライアント端末30からファイルを新規にアップロードするファイル操作を受け付けた場合には、新規にアップロードされたファイルがオブジェクトとして新規に登録される。これとともに、新規にアップロードされたファイルの内容のうち特定のファイル要素が抽出された上でそのファイル要素がオブジェクトとして新規に登録される。また、クライアント端末30からファイル管理サーバ10上のフォルダを削除するファイル操作を受け付けた場合には、当該ファイル操作を受け付けたフォルダ、フォルダに含まれるファイル及びファイルが含むファイル要素などのオブジェクトが削除される。また、ファイルを削除するファイル操作を受け付けた場合には、当該ファイル操作を受け付けたファイル及びファイルが含むファイル要素などのオブジェクトが削除される。また、クライアント端末30からファイル管理サーバ10上のファイルを更新するファイル操作を受け付けた場合には、更新されるファイルの内容のうち特定のファイル要素が再抽出された上でそのファイル要素がオブジェクトとして上書きされる。
かかるオブジェクト情報13bの一態様としては、「オブジェクトID(ID:IDentifier)」、「種別」、「フォルダ」、「ファイル」及び「ファイル要素」などの項目が対応付けられたデータを採用できる。ここで言う「オブジェクトID」とは、オブジェクトを識別する識別情報を指し、例えば、同一のフォルダ内のファイル、同一のファイルが含むファイル要素を識別できるように、フォルダ、ファイル及びファイル要素の各オブジェクトに固有のIDが付与される。また、「種別」とは、オブジェクトの種別を指し、かかる種類の一例としては、フォルダ、ファイルやファイル要素などが挙げられる。
図4は、オブジェクト情報13bの一例を示す図である。図4には、図3に示したフォルダ、ファイル及びファイル要素の各オブジェクトが図示されている。図4に示すオブジェクトID「object0001」のオブジェクトは、図3に示した「機能要件」のフォルダを指す。このように、オブジェクトがフォルダである場合には、図4に示すように、ファイル及びファイル要素のフィールドはブランクとされる。また、図4に示すオブジェクトID「object0002」のオブジェクトは、図3に示した「機能要件書」のファイルを指す。このように、オブジェクトがファイルである場合には、図4に示すように、ファイル要素のフィールドはブランクとされる。また、図4に示すオブジェクトID「object0003」のオブジェクトは、図3に示した「機能要件1」のファイル要素を指す。このように、オブジェクトがファイル要素である場合には、図4に示すように、フォルダ、ファイル及びファイル要素の各フィールドに値が格納される。なお、図4に示すオブジェクト情報13bのスキーマは、あくまで一例であり、図示の例に限定されない。例えば、フォルダ及びファイルに代えてフォルダまたはファイルの格納場所を表すパスを格納させることとしてもかまわない。
条件情報13cは、オブジェクト間の関連付けに関する条件が定義された情報である。かかる条件情報13cの一例としては、2つのオブジェクトの関連付けを許可する条件が搭載されたリスト、いわゆるホワイトリストが挙げられる。なお、以下では、条件情報13cがホワイトリストである場合を例示するが、条件情報13cをブラックリストとすることとしてもかまわない。
ここで、オブジェクト間の関連付けに条件を設定するのは、互いの関係が希薄なオブジェクト同士が誤って関連付けられるのを抑制するためである。これを実現するために、本実施例では、2つのオブジェクトのうち一方のオブジェクトに他方のオブジェクトが従属する従属関係を持つオブジェクトの組合せに絞って関連付けを許可する。かかる従属関係の一例としては、次のようなものが挙げられる。
例えば、図3の例でオブジェクトをフォルダ、すなわち工程という粒度で見た場合には、機能設計は、要求分析がなされた機能要件書、いわゆる機能仕様書にしたがって設計がなされるので、機能設計は、機能要件に従属しているとみなすことができる。同様に、詳細設計、いわゆる内部設計は、機能設計に従属しており、要件テスト仕様は、要件分析に従属しており、機能テスト仕様は、機能設計に従属しているとみなすことができる。
また、図3の例でオブジェクトをファイルという粒度で見た場合には、機能Aの外部設計がなされた機能A設計書にしたがって機能A1および機能B1の詳細設計がなされる。このため、機能A1詳細設計書および機能A2詳細設計書は、機能A設計書に従属しているとみなすことができる。同様に、機能B1詳細設計書は、機能B設計書に従属しており、要件1テスト仕様書は、機能要件書に従属しており、機能A1テスト仕様書は、機能設計書に従属しているとみなすことができる。
さらに、図3の例でオブジェクトをファイル要素という粒度で見た場合には、機能要件書で定義された機能要件1にしたがって機能Aの外部設計がなされるので、機能A設計書がファイル要素である機能要件1に従属しているとみなすことができる。さらに、機能A設計書で定義された機能A1設計にしたがって機能A1の詳細設計がなされるので、機能A1詳細設計書が機能A1設計に従属しているとみなすことができる。これと同様に、機能A2詳細設計書は、機能A2設計に従属しており、機能B1詳細設計書は、機能B1設計に従属しているとみなすことができる。さらに、同様に、要件1テスト仕様書は、機能要件1に従属しており、機能A1テスト仕様書は、機能A1設計に従属しているとみなすことができる。さらに、同様に、テスト仕様1は、機能要件1に従属しており、テスト仕様A1は、機能A1設計に従属しているとみなすことができる。
これらのことから、条件情報13cには、オブジェクトの組合せのうち一方のオブジェクトに他方のオブジェクトが従属する従属関係を持つオブジェクトの組合せに関する条件が設定される。
かかる条件情報13cの一態様としては、「条件番号」、「タイプ」、「条件1」及び「条件2」などの項目が対応付けられたデータを採用できる。ここで言う「条件番号」とは、条件を識別する識別情報を指す。また、「タイプ」とは、条件のタイプを指す。一例としては、関連付け操作がなされる2つのオブジェクトのうち他方のオブジェクトが従属するオブジェクトとして指定される従属先のオブジェクトに課す条件の粒度がフォルダであるフォルダ条件「folder」が挙げられる。他の一例としては、従属先のオブジェクトに課す条件の粒度がファイルであるファイル条件「file」が挙げられる。更なる一例としては、従属先のオブジェクトに課す条件の粒度がファイル要素であるファイル要素条件「element」などが挙げられる。また、「条件1」は、関連付け操作がなされる2つのオブジェクトのうち従属先のオブジェクトに課す条件を指し、「条件2」は、関連付け操作がなされる2つのオブジェクトのうち従属元のオブジェクトに課す条件を指す。
図5は、条件情報13cの一例を示す図である。図6は、フォルダ条件、ファイル条件及びファイル要素条件の一例を示す図である。図5には、図3に示したオブジェクトを関連付ける場合に課すフォルダ条件、ファイル条件及びファイル要素条件が図示されている。また、図6には、図5に示したフォルダ条件、ファイル条件及びファイル要素条件を対象に従属先のオブジェクトから従属元のオブジェクトへ向かう方向を矢印で図示している。また、図6には、図5に示した条件番号のうちフォルダ名「機能要件」に関するフォルダ条件である条件番号「P001」及び「P004」、フォルダ名「機能設計」に関するフォルダ条件である条件番号「P002」及び「P003」、ファイル名「機能A設計書」に関するファイル条件である条件番号「P005」〜「P006」及びファイル要素名「機能A1設計」に関するファイル要素条件である条件番号「P008」〜「P010」の条件を抜粋して図示している。なお、図6で従属先のオブジェクトから従属元のオブジェクトへ向けて矢印を付与しているのは、変更があったオブジェクトの影響が当該オブジェクトの工程よりも後に実行される工程のオブジェクトに向けて波及する方向、すなわち変更の影響範囲の検索方向に合わせるためである。
図5に示す条件番号「P001」〜「P004」の条件は、フォルダ条件の一例である。例えば、図5に示す条件番号「P001」のフォルダ条件には、図6に示すように、従属先のオブジェクトが属するフォルダが「機能要件」であり、かつ従属元のオブジェクトが属するフォルダが「機能設計」であるという要件が設定されている。また、図5に示す条件番号「P002」のフォルダ条件には、図6に示すように、従属先のオブジェクトが属するフォルダが「機能設計」であり、かつ従属元のオブジェクトが属するフォルダが「機能詳細設計」であるという要件が設定されている。また、図5に示す条件番号「P003」のフォルダ条件には、図6に示すように、従属先のオブジェクトが属するフォルダが「機能設計」であり、かつ従属元のオブジェクトが属するフォルダが「機能テスト仕様」であるという要件が設定されている。また、図5に示す条件番号「P004」のフォルダ条件には、図6に示すように、従属先のオブジェクトが属するフォルダが「機能要件」であり、かつ従属元のオブジェクトが属するフォルダが「要件テスト仕様」であるという要件が設定されている。
図5に示す条件番号「P005」〜「P006」の条件は、ファイル条件の一例である。例えば、図5に示す条件番号「P005」のファイル条件には、図6に示すように、関連付け操作がなされた2つのオブジェクトのうち従属先のオブジェクトとして指定されたファイルもしくはファイル要素を含むファイルが「機能A設計書」であり、かつ従属元のオブジェクトとして指定されたファイルもしくはファイル要素を含むファイルが「機能A1詳細設計書」であるという要件が設定されている。さらに、図5に示す条件番号「P006」のファイル条件には、図6に示すように、従属先のオブジェクトとして指定されたファイルもしくはファイル要素を含むファイルが「機能A設計書」であり、かつ従属元のオブジェクトとして指定されたファイルもしくはファイル要素を含むファイルが「機能A2詳細設計書」であるという要件が設定されている。なお、ここでは、条件番号「P005」〜「P006」のファイル条件を例に挙げて説明したが、これ以外にも条件番号「P007」の条件を始めとする他のファイル条件が条件情報13cに設定されていることを妨げない。
図5に示す「P008」〜「P010」の条件は、ファイル要素条件の一例である。例えば、図5に示す条件番号「P008」のファイル要素条件には、図6に示すように、関連付け操作がなされた2つのオブジェクトのうち従属先のオブジェクトとして指定されたファイル要素が「機能A1設計」であり、かつ従属元のオブジェクトとして指定されたファイルが「機能A1詳細設計書」であるという要件が設定されている。また、図5に示す条件番号「P009」のファイル要素条件には、図6に示すように、従属先のオブジェクトとして指定されたファイル要素が「機能A1設計」であり、かつ従属元のオブジェクトとして指定されたファイル要素が「詳細設計(イ)」であるという要件が設定されている。また、図5に示す条件番号「P010」のファイル要素条件には、図6に示すように、従属先のオブジェクトとして指定されたファイル要素が「機能A1設計」であり、かつ従属元のオブジェクトとして指定されたファイル要素が「詳細設計(ロ)」であるという要件が設定されている。なお、ここでは、条件番号「P008」〜「P010」のファイル要素条件を例に挙げて説明したが、これ以外にも条件番号「P011」〜「P013」の条件を始めとする他のファイル要素条件が条件情報13cに設定されていることを妨げない。
ここで、図5に示す条件情報13cの例では、従属先のオブジェクトが「条件1」に設定されたフォルダ名、ファイル名またはファイル要素名と完全一致し、かつ従属元のオブジェクトが「条件2」に設定されたフォルダ名、ファイル名またはファイル要素名と完全一致する場合にフォルダ条件、ファイル条件またはファイル要素条件に適合すると判別される場合を例示したが、「条件1」及び「条件2」との間で部分一致する場合に条件に適合すると判別することとしてもかまわない。例えば、ファイル要素条件の条件1に機能Aが設定されており、かつ条件2に機能A1が設定されている場合を想定する。この場合には、従属先として条件1「機能A1」と部分一致するファイル要素名を持つオブジェクトが指定され、かつ従属元として条件2「機能A1」と部分一致するファイル要素名またはファイル名を持つオブジェクトが指定された場合にファイル要素条件に適合すると判別される。このため、例えば、従属先のオブジェクトとしてファイル要素名が機能A1設計を指定し、かつ従属元のオブジェクトとしてファイル名が機能A1詳細設計書を指定する関連付け操作がなされた場合には、ファイル要素条件に適合すると判別される。
関連付け情報13dは、複数のファイル情報の関連付け、すなわちオブジェクト間の関連付けに関する情報である。かかる関連付け情報13dには、関連付け操作がなされた従属先及び従属元のオブジェクトの組合せがフォルダ条件、ファイル条件またはファイル要素条件のうち少なくともいずれか1つの条件を満たす場合に、当該従属先及び従属元のオブジェクトの組合せが関連付け部15dによって追加登録される。
かかる関連付け情報13dの一態様としては、「オブジェクトID1」及び「オブジェクトID2」が対応付けられた項目を採用できる。ここで言う「オブジェクトID1」とは、オブジェクトの組合せのうち従属先のオブジェクトのオブジェクトIDを指し、また、「オブジェクトID2」とは、オブジェクトの組合せのうち従属元のオブジェクトのオブジェクトIDを指す。
図7は、関連付け情報13dの一例を示す図である。図7には、図3に示したオブジェクトの中で関連付け処理が実行されたオブジェクトの組合せが図示されている。例えば、図7に示すオブジェクトID1「object0002」及びオブジェクトID2「object0006」の組合せは、機能要件書のファイルおよび機能A設計書のファイルの間に関連付け、いわゆるリレーションシップが設定されている。かかるリレーションシップは、機能要件書のファイルに機能A設計書のファイルが従属していることを意味する。また、図7に示すオブジェクトID1「object0003」及びオブジェクトID2「object0006」の組合せは、機能要件1のファイル要素及び機能A設計書のファイルの間にリレーションシップが設定されている。かかるリレーションシップは、機能要件1のファイル要素に機能A設計書のファイルが従属していることを意味する。さらに、図7に示すオブジェクトID1「object0003」及びオブジェクトID2「object0021」の組合せは、機能要件1のファイル要素及びテスト仕様1のファイル要素の間にリレーションシップが設定されている。かかるリレーションシップは、機能要件1のファイル要素にテスト仕様1のファイル要素が従属していることを意味する。
制御部15は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部15は、図2に示すように、登録部15aと、受付部15bと、判別部15cと、関連付け部15dと、検索部15eとを有する。
このうち、登録部15aは、クライアント端末30から受け付けたファイルを記憶部13へ登録する処理部である。一態様としては、登録部15aは、クライアント端末30からファイルを新規にアップロードするファイル操作を受け付けた場合に、新規にアップロードされたファイルを記憶部13へ登録する。また、登録部15aは、新規にアップロードされたファイルにオブジェクトIDを採番し、当該ファイルのオブジェクトID及び種別とともに、当該ファイルの名称及びファイルが格納されたフォルダの名称を対応付けて記憶部13内のオブジェクト情報13bへ追加登録する。さらに、登録部15aは、新規にアップロードされたファイルの内容のうち特定のファイル要素、例えばファイルの特徴を表すファイル要素を抽出する。例えば、特定のファイル要素の一例としては、所定の項目と同一の行または列に位置するセル内の情報、例えば数字、記号、文字列などが抽出される。このようにしてセルから抽出される項目は、ドキュメントの内容に合わせて設定しておくことができる。例えば、機能要件書のファイルからファイル要素を抽出する場合には、要件分析された各機能要件の特徴を表す識別子、名称や説明文に関する項目を設定しておくことができる。そして、登録部15aは、先に抽出された各ファイル要素にオブジェクトIDを採番する。その上で、登録部15aは、当該ファイル要素のオブジェクトID及び種別とともに、当該ファイル要素の名称、ファイル要素の抽出元のファイルの名称及び抽出元のファイルが格納されたフォルダの名称を対応付けて記憶部13内のオブジェクト情報13bへ追加登録する。
他の一態様としては、登録部15aは、クライアント端末30からファイル管理サーバ10上のファイルを更新するファイル操作を受け付けた場合に、更新対象とするファイルを記憶部13に上書きして登録する。さらに、登録部15aは、更新対象とするファイルの内容のうち特定のファイル要素を再抽出する。その上で、登録部15aは、再抽出された各ファイル要素のうち更新前に抽出されていたファイル要素と一致しないファイル要素にオブジェクトIDを採番する。その上で、登録部15aは、採番が実行されたファイル要素のオブジェクトID及び種別とともに、当該ファイル要素の名称、ファイル要素の再抽出元のファイルの名称及び抽出元のファイルが格納されたフォルダの名称を対応付けて記憶部13内のオブジェクト情報13bへ追加登録する。このとき、登録部15aは、更新前に抽出されていたファイル要素のうち再抽出されなかったファイル要素のレコードを記憶部13内のオブジェクト情報13bから削除する。
受付部15bは、ファイル管理サーバ10上で管理されるファイルのうち互いに関係のある複数のオブジェクトを関連付ける関連付け操作を受け付ける処理部である。一態様としては、受付部15bは、クライアント端末30から関連付け操作を起動させるコマンドを受け付けると、クライアント端末30上で動作するクライアントアプリに従属先のオブジェクト及び従属元のオブジェクトを指定させる画面を表示させる。これによって、クライアント端末30のGUI(Graphical User Interface)を介して、従属先のオブジェクト及び従属元のオブジェクトの指定を受け付ける。このとき、従属先のオブジェクト及び従属元のオブジェクトの指定として、例えば、ファイルとファイルの組合せ、ファイル要素とファイルの組合せもしくはファイル要素とファイル要素の組合せが指定されることになる。なお、ここでは、開発関係者の操作によって従属先のオブジェクト及び従属元のオブジェクトが指定される場合を例示したが、従属先のオブジェクト及び従属元のオブジェクトを自動的に抽出することもできる。
判別部15cは、記憶部13に記憶された条件情報13cを参照して、関連付け操作を許可するか否かを判別する処理部である。
一態様としては、判別部15cは、従属先のオブジェクト及び従属元のオブジェクトを指定する関連付け操作を受け付けると、オブジェクト情報13bを参照して、受付部15bによって指定が受け付けられた従属先のオブジェクトが属するフォルダと、従属元のオブジェクトが属するフォルダとを特定する。例えば、指定のオブジェクトがファイルである場合には、オブジェクト情報13bに含まれるレコードのうち当該指定が受け付けられたファイル名を含むレコード内のフォルダ名が抽出される。また、指定のオブジェクトがファイル要素である場合には、オブジェクト情報13bに含まれるレコードのうち当該指定が受け付けられたファイル要素名を含むレコード内のフォルダ名が抽出される。
続いて、判別部15cは、従属先のオブジェクトが属するフォルダ及び従属元のオブジェクトが属するフォルダが条件情報13cに設定されたフォルダ条件のうちいずれかのフォルダ条件に適合するか否かを判定する。例えば、判別部15cは、従属先のオブジェクトとして指定されたファイルが格納されたフォルダのフォルダ名もしくは従属先のオブジェクトとして指定されたファイル要素を含むファイルが格納されたフォルダのフォルダ名と図5に示したフォルダ条件に含まれる条件1に設定されたフォルダ名とが完全一致し、かつ従属元のオブジェクトとして指定されたファイルが格納されたフォルダのフォルダ名もしくは従属元のオブジェクトとして指定されたファイル要素を含むファイルが格納されたフォルダのフォルダ名と図5に示したフォルダ条件に含まれる条件2に設定されたフォルダ名とが完全一致する場合に、関連付け操作がなされたオブジェクトの組合せがフォルダ条件に適合すると判別する。かかるフォルダ条件の適合の可否によって、従属先のオブジェクト及び従属元のオブジェクトが「フォルダ」という粒度で従属関係を有するか否かが確認される。このとき、条件情報13cに設定されたいずれのフォルダ条件にも適合しない場合には、従属先のオブジェクト及び従属元のオブジェクトが従属関係にない誤ったオブジェクトの組合せである可能性が高いと推定できる。この場合には、判別部15cは、関連付け操作がなされたオブジェクトの組合せの関連付けを禁止する。
一方、判別部15cは、条件情報13cに設定されたいずれかのフォルダ条件に適合する場合には、次のようなファイル条件の適合の可否を判定する。すなわち、判別部15cは、従属先のオブジェクトが該当するファイル及び従属元のオブジェクトが該当するファイルが条件情報13cに設定されたファイル条件のうちいずれかのファイル条件に適合するか否かを判定する。例えば、判別部15cは、従属先のオブジェクトとして指定されたファイルのファイル名もしくは従属先のオブジェクトとして指定されたファイル要素を含むファイルのファイル名と図5に示したファイル条件に含まれる条件1に設定されたファイル名とが完全一致し、かつ従属元のオブジェクトとして指定されたファイルのファイル名もしくは従属元のオブジェクトとして指定されたファイル要素を含むファイルのファイル名と図5に示したファイル条件に含まれる条件2に設定されたファイル名とが完全一致する場合に、関連付け操作がなされたオブジェクトの組合せがファイル条件に適合すると判別する。かかるファイル条件の適合の可否によって、従属先のオブジェクト及び従属元のオブジェクトが「ファイル」という粒度で従属関係を有するか否かが確認される。
このとき、条件情報13cに設定されたいずれのファイル条件にも適合しない場合には、従属先のオブジェクト及び従属元のオブジェクトが従属関係にない誤ったオブジェクトの組合せである可能性が高いと推定できる。この場合には、判別部15cは、関連付け操作がなされたオブジェクトの組合せの関連付けを禁止する。
一方、判別部15cは、条件情報13cに設定されたいずれかのファイル条件に適合する場合には、従属先として指定されたオブジェクトの粒度がファイル要素であるか否かを判定する。このとき、従属先のオブジェクトの粒度がファイル要素ではなく、ファイルである場合には、関連付け操作がなされたオブジェクトの組合せがファイルとファイルであると確認できる。この場合には、それよりも粒度が小さいファイル要素条件の適合の可否を判定せずともよい。このため、判別部15cは、関連付け操作がなされたオブジェクトの組合せの関連付けを許可する。
また、従属先として指定されたオブジェクトの粒度がファイル要素である場合には、関連付け操作がなされたオブジェクトの組合せがファイル要素とファイルの組合せもしくはファイル要素とファイル要素の組合せのいずれかであることが判明する。この場合には、ファイル要素条件の判定が続行される。すなわち、判別部15cは、従属先のオブジェクトが該当するファイル要素と、従属元のオブジェクトが該当するファイルまたはファイル要素とが条件情報13cに設定されたファイル要素条件のうちいずれかのファイル要素条件に適合するか否かを判定する。例えば、判別部15cは、従属先のオブジェクトとして指定されたファイル要素のファイル要素名と図5に示したファイル要素条件に含まれる条件1に設定されたファイル要素名とが完全一致し、かつ従属元のオブジェクトとして指定されたファイルのファイル名もしくは従属元のオブジェクトとして指定されたファイル要素のファイル要素名と図5に示したファイル要素条件に含まれる条件2に設定されたファイル名もしくはファイル要素名とが完全一致する場合に、関連付け操作がなされたオブジェクトの組合せがファイル要素条件に適合すると判別する。かかるファイル要素条件の適合の可否によって、従属先のオブジェクト及び従属元のオブジェクトが「ファイル要素」という粒度で従属関係を有するか否かが確認される。
このとき、条件情報13cに設定されたいずれのファイル要素条件にも適合しない場合には、従属先のオブジェクト及び従属元のオブジェクトが従属関係にない誤ったオブジェクトの組合せである可能性が高いと推定できる。この場合には、判別部15cは、関連付け操作がなされたオブジェクトの組合せの関連付けを禁止する。一方、条件情報13cに設定されたいずれかのファイル要素条件に適合する場合には、フォルダ、ファイル及びファイル要素の全ての粒度で従属関係の確認が終了したと確定できる。この場合には、判別部15cは、関連付け操作がなされたオブジェクトの組合せの関連付けを許可する。
なお、ここでは、フォルダ条件、ファイル条件及びファイル要素条件を用いて関連付けを許可または禁止するかを判別する場合を例示したが、フォルダ条件、ファイル条件及びファイル要素条件のうち少なくともいずれか1つの条件に絞って条件の適合の可否を判定することもできる。例えば、判別部15cは、フォルダ条件に適合したことをもって関連付け操作がなされたオブジェクトの組合せの関連付けを許可することとしてもよい。また、判別部15cは、ファイル条件に適合したことをもって関連付け操作がなされたオブジェクトの組合せの関連付けを許可することとしてもよい。また、判別部15cは、ファイル要素条件に適合したことをもって関連付け操作がなされたオブジェクトの組合せの関連付けを許可することとしてもよい。
関連付け部15dは、オブジェクト間の関連付けを実行する処理部である。一態様としては、関連付け部15dは、判別部15cによって関連付けが許可された場合に、従属先のオブジェクト及び従属元のオブジェクトの関連付けを関連付け情報13dに追加登録する。このとき、関連付け部15dは、関連付け情報13dが持つフィールドのうちオブジェクトID1のフィールドに従属先のオブジェクトを格納するとともに、オブジェクトID2のフィールドに従属元のオブジェクトを格納する。
ここで、図8を用いて、関連付けが禁止される態様の具体例を説明する。図8は、関連付けが禁止される態様の一例を示す図である。図8には、図5に示した条件情報13cに設定されたフォルダ条件に適合しない関連付け操作、ファイル条件に適合しない関連付け操作及びファイル要素条件に適合しない関連付け操作が例示されている。
例えば、従属先のオブジェクトとして「機能A設計書」のファイルが指定される場合を想定する。ここで、フォルダ条件では、従属先として指定されるオブジェクトよりも以前の工程で生成されるオブジェクトを従属元として指定する関連付け操作は許可されていない。このため、図8の(1)に例示するように、機能A設計書が生成される外部設計の工程よりも前の要件分析の工程で生成される機能要件書を従属元のオブジェクトとして関連付ける関連付け操作はフォルダ条件に適合しない。よって、関連付けが禁止されることなる。また、フォルダ条件では、従属先として指定されるオブジェクトよりも後に実行される工程であっても従属関係がなく互いの関係が希薄である工程で生成されるオブジェクトを従属元として指定する関連付け操作は、許可されていない。このため、図8の(2)に示すように、要件テスト仕様書を従属元のオブジェクトとして指定する関連付け操作はフォルダ条件に適合せず、関連付けが禁止されることになる。
さらに、従属先のオブジェクトとして「機能A設計書」のファイルが指定される場合を想定する。ここで、ファイル条件では、一方のファイルの機能が他方のファイルの機能に包含されないオブジェクト間の関連付け操作は許可されていない。このため、図8の(3)に示すように、機能A設計書に包含されない機能B1設計が詳細設計された機能B1詳細設計書を従属元のオブジェクトとして指定する関連付け操作はファイル条件に適合せず、関連付けが禁止されることになる。
続いて、従属先のオブジェクトとして「機能A1設計」のファイル要素が指定される場合を想定する。ここで、ファイル要素条件では、互いのオブジェクトが同一の機能を持たないオブジェクト間の関連付け操作は許可されていない。このため、図8の(4)に示すように、従属先として指定された機能A1設計の機能A1とは異なる種類の機能Bに属する機能B1が詳細設計された機能B1詳細設計書を従属元のオブジェクトとして指定する関連付け操作はファイル要素条件に適合せず、関連付けが禁止されることになる。また、図8の(5)及び(6)に示すように、従属先として指定された機能A1設計の機能A1と同種の機能Aに属する機能A2が詳細設計された機能A2詳細設計書を従属元のオブジェクトとして指定したとしても、従属先及び従属元のオブジェクト間で互いの機能が類似するとは言えども同一であるとまでは言えない。このため、機能A2詳細設計書および機能A2詳細設計書で定義された詳細設計(α)を従属元のオブジェクトとして指定する関連付け操作はファイル要素条件に適合しない。よって、関連付けが禁止されることになる。
図2の説明に戻り、検索部15eは、関連付け情報13dを参照して、ファイル要素の変更が他のファイルに与える影響範囲を検索する処理部である。一態様としては、検索部15eは、クライアント端末30から変更対象とするファイル要素の指定を受け付ける。続いて、検索部15eは、関連付け情報13dに含まれる従属先のオブジェクト、図7の例で言えばオブジェクトID1に当該指定を受け付けたファイル要素と同一のファイル要素を持つレコードの従属元のオブジェクトを探索する。その後、検索部15eは、所定の探索回数にわたって探索が終了するまで、関連付け情報13dに含まれる従属先のオブジェクトに前回探索されたオブジェクトと同一のオブジェクトを持つレコードの従属元のオブジェクトを探索する処理を繰り返し実行する。そして、検索部15eは、所定の回数にわたって探索が終了すると、それまでの探索で得られたオブジェクトを影響範囲の検索結果としてクライアント端末30へ出力する。このとき、検索部15eは、探索で得られたオブジェクトを所定の粒度に合わせて出力することができる。例えば、影響範囲の検索結果として出力するオブジェクトの粒度としてファイルが設定されている場合には、探索で得られたオブジェクトのうちファイルについてはそのまま影響範囲の検索結果として出力する一方でファイル要素についてはファイル要素の代わりに当該ファイル要素を含むファイルを影響範囲の検索結果として出力することもできる。
図9及び図10は、クライアント端末30に表示される画面の一例を示す図である。このうち、図9には、各種の検索条件を入力可能な検索画面200が例示されている。また、図10には、図9に示す検索条件が入力された場合の影響範囲の検索結果を含む検索結果画面210が例示されている。図9に示す検索画面200には、フォルダ、ファイル及びファイル要素のプルダウンメニューが設けられている。このため、開発関係者は、フォルダ、ファイル、ファイル要素の順に操作することによって変更対象とするファイル要素を指定できる。この他にも、検索画面200には、「探索回数」や「影響範囲の検索結果として出力する粒度」についてもプルダウンメニューが設けられており、変更対象とするファイル要素とともに探索回数及び粒度を受け付けることが可能となっている。
図9に示すように、検索画面200上で変更対象とするファイル要素「機能A1設計」、探索回数「1」および粒度「ファイル」が選択された状態で検索ボタン200Aが押下操作された場合には、図7に示した関連付け情報13dを参照して次のような探索が実行される。すなわち、関連付け情報13dに含まれるオブジェクトID1に当該指定を受け付けたファイル要素「機能A1設計」、すなわち「object0007」と同一のファイル要素を持つレコードのオブジェクトID2「object0012」、「object0013」、「object0014」及び「object0024」が探索される。図9の例では、探索回数の指定が1回であるので、今回の探索、すなわち最初の1回で探索が終了する。なお、キャンセルボタン200Bが押下された場合には、検索が中止された後にクライアント端末30の画面表示が直前に閲覧していた画面や製品の開発・設計のトップ画面などに遷移する。
かかる探索で得られたオブジェクトID「object0012」、「object0013」、「object0014」及び「object0024」のうちオブジェクトID「object0013」及び「object0014」は、いずれも詳細設計(イ)及び詳細設計(ロ)に対応する。また、オブジェクトID「object0024」は、テスト仕様A1に対応する。これらオブジェクトID「object0013」、「object0014」及び「object0024」はファイル要素である。図9の例では、粒度として「ファイル」が指定されているので、オブジェクトID「object0013」及び「object0014」のファイル要素を含む「機能A1詳細設計書」のファイルが詳細設計(イ)及び詳細設計(ロ)の代わりに抽出される。さらに、オブジェクトID「object0024」のファイル要素を含む「機能A1テスト仕様書」のファイルがテスト仕様A1の代わりに抽出される。なお、ここでは、オブジェクトID「object0012」のオブジェクト「機能A1詳細設計書」が探索されているので、必ずしも先の抽出は行わずともよい。
その上で、図10に示すように、オブジェクトID「object0012」に対応する機能A1詳細設計書およびオブジェクトID「object0024」に対応する機能A1テスト仕様書の2つのドキュメントが検索結果画面210に表示される。かかる表示によって、開発関係者は、機能A1設計のファイル要素に変更を行った場合には、機能A1詳細設計書および機能A1テスト仕様書に影響が波及することを把握できる。ここで、上記の従来技術のように、ファイル単位の関連付けしか行われていない場合には、機能A1設計とは無関係な機能A2詳細設計書も影響範囲の検索結果として出力される。一方、本実施例では、ファイル要素の単位で関連付けがなされた関連付け情報13dを用いて検索が行われるので、機能A1設計とは無関係な機能A2詳細設計書を出力せずに済む結果、トレーサビリティの精度を向上させることができる。
その後、検索結果画面210上の再検索ボタン210Aが押下操作された場合には、クライアント端末30の画面表示が図9に示した検索画面200に再び遷移し、「変更対象とするファイル要素」、「探索回数」または「影響範囲の検索結果として出力する粒度」の再指定がなされた上で再検索が実行される。一方、検索結果画面210上の戻るボタン210Bが押下操作された場合には、クライアント端末30の画面表示が直前に閲覧していた画面や製品の開発・設計のトップ画面などに遷移する。
なお、制御部15には、各種の集積回路や電子回路を採用できる。また、制御部15が有する機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
[処理の流れ]
次に、本実施例に係るファイル管理サーバの処理の流れについて説明する。なお、ここでは、ファイル管理サーバ10によって実行される(1)関連付け処理を説明した後に、(2)検索処理を説明することとする。
(1)関連付け処理
図11は、実施例1に係る関連付け処理の手順を示すフローチャートである。この関連付け処理は、従属先のオブジェクト及び従属元のオブジェクトを指定する関連付け操作が受け付けられた場合に処理が起動される。
図11に示すように、従属先のオブジェクト及び従属元のオブジェクトを指定する関連付け操作を受け付けると(ステップS101)、判別部15cは、次のような処理を実行する。すなわち、判別部15cは、オブジェクト情報13bを参照して、ステップS101で受け付けられた従属先のオブジェクトが属するフォルダと、従属元のオブジェクトが属するフォルダとを特定する(ステップS102)。
続いて、判別部15cは、従属先のオブジェクトが属するフォルダ及び従属元のオブジェクトが属するフォルダが条件情報13cに設定されたフォルダ条件のうちいずれかのフォルダ条件に適合するか否かを判定する(ステップS103)。
ここで、条件情報13cに設定されたいずれのフォルダ条件にも適合しない場合(ステップS103No)には、従属先のオブジェクト及び従属元のオブジェクトが従属関係にない誤ったオブジェクトの組合せである可能性が高いと推定できる。この場合には、関連付け操作がなされたオブジェクトの組合せの関連付けを実行せず、そのまま処理を終了する。
一方、条件情報13cに設定されたいずれかのフォルダ条件に適合する場合(ステップS103Yes)には、判別部15cは、次のようなファイル条件の適合の可否を判定する。すなわち、判別部15cは、従属先のオブジェクトが該当するファイル及び従属元のオブジェクトが該当するファイルが条件情報13cに設定されたファイル条件のうちいずれかのファイル条件に適合するか否かを判定する(ステップS104)。
このとき、条件情報13cに設定されたいずれのファイル条件にも適合しない場合(ステップS104No)には、従属先のオブジェクト及び従属元のオブジェクトが従属関係にない誤ったオブジェクトの組合せである可能性が高いと推定できる。この場合には、関連付け操作がなされたオブジェクトの組合せの関連付けを実行せず、そのまま処理を終了する。
一方、条件情報13cに設定されたいずれかのファイル条件に適合する場合(ステップS104Yes)には、判別部15cは、従属先として指定されたオブジェクトの粒度がファイル要素であるか否かを判定する(ステップS105)。
このとき、粒度がファイル要素ではない場合(ステップS105No)には、関連付け操作がなされたオブジェクトの組合せがファイルとファイルであると確認できる。この場合には、それよりも粒度が小さいファイル要素条件の適合の可否を判定せずともよい。このため、関連付け操作がなされたオブジェクトの組合せの関連付けが許可され、ステップS107の処理へ移行する。
また、従属先として指定されたオブジェクトの粒度がファイル要素である場合(ステップS105Yes)には、関連付け操作がなされたオブジェクトの組合せがファイル要素とファイルの組合せもしくはファイル要素とファイル要素の組合せのいずれかであることが判明する。
この場合には、ファイル要素条件の判定が続行される。すなわち、判別部15cは、従属先のオブジェクトが該当するファイル要素と、従属元のオブジェクトが該当するファイルまたはファイル要素とが条件情報13cに設定されたファイル要素条件のうちいずれかのファイル要素条件に適合するか否かを判定する(ステップS106)。
ここで、条件情報13cに設定されたいずれのファイル要素条件にも適合しない場合(ステップS106No)には、従属先のオブジェクト及び従属元のオブジェクトが従属関係にない誤ったオブジェクトの組合せである可能性が高いと推定できる。この場合には、関連付け操作がなされたオブジェクトの組合せの関連付けを実行せず、そのまま処理を終了する。
一方、条件情報13cに設定されたいずれかのファイル要素条件に適合する場合(ステップS106Yes)には、関連付け操作がなされたオブジェクトの組合せの関連付けが許可される。この場合には、関連付け部15dは、従属先のオブジェクト及び従属元のオブジェクトを関連付け(ステップS107)、当該関連付けを関連付け情報13dに追加登録し(ステップS108)、処理を終了する。
(2)検索処理
図12は、実施例1に係る検索処理の手順を示すフローチャートである。この検索処理は、例えば、クライアント端末30から検索要求を受け付けた場合に処理が起動される。図12に示すように、検索部15eは、クライアント端末30に表示させた検索画面上で「変更対象とするファイル要素」、「探索回数」や「影響範囲の検索結果として出力する粒度」の指定を受け付ける(ステップS301〜ステップS303)。
続いて、検索部15eは、関連付け情報13dに含まれる従属先のオブジェクトに当該指定を受け付けたファイル要素と同一のファイル要素を持つレコードの従属元のオブジェクトを探索する(ステップS304)。
その後、検索部15eは、ステップS302で指定された探索回数にわたって探索が終了するまで(ステップS305No)、関連付け情報13dに含まれる従属先のオブジェクトに前回探索されたオブジェクトと同一のオブジェクトを持つレコードの従属元のオブジェクトを探索する処理(ステップS304)を繰り返し実行する。
そして、所定の回数にわたって探索が終了すると(ステップS305Yes)、検索部15eは、それまでの探索で得られたオブジェクトをステップS301で指定された粒度に変換した上で影響範囲の検索結果としてクライアント端末30へ出力し(ステップS306)、処理を終了する。
なお、図12に示したステップS301〜ステップS303までの処理は、任意の順序に変更することができ、また、並行して処理を実行することもできる。さらには、ステップS302及びステップS303の処理は、探索回数および粒度を予め設定しておくことによって省略することもできる。
[実施例1の効果]
上述してきたように、本実施例に係るファイル管理サーバ10は、複数のオブジェクトの関連付け操作を受け付けると、オブジェクト間の関連付けの可否が設定された条件を参照して、複数のオブジェクトが条件を満たす場合にファイルの関連付けを実行する。したがって、本実施例に係るファイル管理サーバ10は、誤ったファイルの関連付けを抑制できる。