以下に、本願の開示する設計書管理プログラム、設計書管理方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[実施例に係る情報処理装置の構成]
図1は、実施例に係る情報処理装置の構成を示すブロック図である。図1に示すように、情報処理装置1は、制御部11と、記憶部12とを有する。情報処理装置1は、設計書の設計情報を変更した際、変更に伴う影響箇所を探索する。すなわち、設計者が設計書を利用して設計作業を行う際、設計情報は複数の設計書に横断的に記述される。このため、設計者は、ある設計要素の変更が必要になった場合、複数の設計書の横断的な影響範囲を確認する。情報処理装置1は、設計者の確認作業を支援するために、変更に伴う影響範囲を探索する。ここでいう設計書とは、システム開発において設計や仕様を説明するために作成された文書をいう。例えば、設計書には、テーブル仕様書、画面項目仕様書や項目一覧などが挙げられる。ここでいう設計情報とは、設計書毎に定義される項目と該項目の値で表される情報のことをいう。例えば、設計情報には、桁数、型、属性などの書式の情報などが挙げられる。
制御部11は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部11は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路の電子回路に対応する。または、制御部11は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路に対応する。さらに、制御部11は、XML(Extensible Markup Language)変換部111、キー/値変換部112、アーカイバ部113および関係探索部114を有する。
記憶部12は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)などの不揮発性の半導体メモリ素子などの記憶装置に対応する。記憶部12は、設計書121、XMLスキーマ122、XML文書123、キー/値データ124および関係定義マップ125を有する。
設計書121は、システム開発において設計や仕様を説明するために作成された文書であり、例えば表計算ソフトであるEXCELによって作成される。なお、設計書121は、EXCELによって作成された文書に限らず、文書作成ソフトであるWORDによって作成されても良い。ここで、設計書121の一例を、図2を参照して説明する。
図2は、設計書の一例を示す図である。図2には、EXCELによって作成された「項目一覧」の設計書が表されている。ここでは、「項目一覧」の設計書は、「C2UI1A3d1」という設計書種別で表されている。設計書には、複数の項目と当該項目の値が設定されている。1組の項目と項目の値とが1つの設計情報を示す。ここでは、項目として、例えば、「No.」、「項目名」、「項目ID」、「属性」、「桁数全体」、「桁数小数」、「業務コード名」、「ドメイン名」、「ドメインID」が設定されている。そして、項目の値が、各セルに設定されている。例えば、符号L1で示される行について、「No.」が「1」である場合、「項目名」として「住所」、「項目ID」として「ADDRESS」、「属性」として「日本語型」、「桁数全体」として「100」、「桁数小数」として「0」が設定されている。このように、各項目の値は、行単位で設定されている。
図1に戻って、XMLスキーマ122は、設計書とXML文書とを相互変換する際に用いられるXMLの構造定義である。XMLスキーマ122は、設計書がEXCEL、WORDなどどのようなドキュメント形式であっても汎用的なデータ形式であるXMLに変換させることができる。
XML文書123は、設計書を、XMLスキーマ122を介して変換されたXMLの文書である。なお、XML文書123は、後述するXML変換部111によって生成される。ここで、XML文書123の一例を、図3を参照して説明する。
図3は、XML文書の一例を示す図である。図3には、図2で示した「項目一覧」の設計書121から変換されたXML文書123が表されている。例えば、図2の設計書121の符号L1で示された行の項目と当該項目の値は、XML文書123の符号X1に表されている。
図1に戻って、キー/値データ124は、XML文書123の項目の値を検索するために用いられる補助データ(インデックス)である。XMLの文書は、図3で示したように明確な構造を持たない半構造化データであるので、検索性能に問題があることがある。そこで、キー/値データ124によって検索が補助される。なお、キー/値データ124は、後述するキー/値変換部112によって生成される。ここで、キー/値データ124の一例を、図4を参照して説明する。
図4は、キー/値データ124の一例を示す図である。図4に示すように、キー/値データ124である補助インデックスは、XML文書123から生成される。補助インデックスは、項目の値に辿りつくパスと当該項目の値とを含む。ここでは、パスは、キー/値データ124の「XMLPath」に対応する。値は、キー/値データ124の「XMLValue」に対応する。キー/値データ124によって設計書の項目および項目の値が高速に、且つ多角的に検索される。
図1に戻って、関係定義マップ125は、設計書間の項目の関係を、設計書毎に記憶する。すなわち、関係定義マップ125によって項目を通して設計書を辿るために用いられるセマンティックな関係が定義される。
ここで、設計書間の項目の関係について、図5を参照して説明する。図5は、設計書間の項目の関係の一例を示す図である。なお、図5では、仕様書として、「画面項目転送仕様」、「画面項目仕様」、「テーブル仕様」、「画面一覧」、「項目一覧」および「テーブル一覧」が示され、これらの仕様書間の項目の関係が表されている。
図5に示すように、設計書間の項目の関係は、参照関係と項目関係とがある。参照関係とは、同一の設計項目が異なる設計書に記述されている関係をいう。参照関係には、方向があり、参照される側と参照する側とがある。例えば、「画面項目転送仕様」の画面項目IDと「画面項目仕様」の画面項目IDとの関係では、参照関係である。そして、「画面項目転送仕様」の画面項目IDは参照する側であり、「画面項目仕様」の画面項目IDは参照される側である。また、項目関係とは、異なる設計項目同士の関係をいい、設計書間の場合と同一設計書内の場合とがある。例えば、「画面項目転送仕様」の画面項目IDと項目IDとの関係は、同一設計書内の場合の項目関係である。また、例えば、「画面項目転送仕様」の項目名と「画面項目仕様」の項目名との関係は、設計書間の場合の項目関係であり、画面項目IDに従属する関係(従属関係)である。
図6は、設計書間の項目の関係の種類を示す図である。図6上段には、設計書間の項目の関係の種類の1つとして、参照関係が示されている。図6上段に示すように、「設計書B」の項目「KeyA」はキーとなる項目(キー項目)であり、「設計書A」の項目「KeyA」を参照している。また、「設計書A」の項目「ValueA1」はキーではない項目であり、「設計書B」の項目「ValueA1」を参照している。
図6中段には、設計書間の項目の関係の種類の1つとして、従属関係が示されている。キー項目に従属する項目(従属項目)には、参照するもの(参照)と、参照されるもの(被参照)がある。図6中段に示すように、「設計書A」および「設計書B」間では、「設計書B」の「ValueA1」は、「設計書A」の「ValueA1」と対応する。「設計書B」から見ると、「ValueA1」が、「KeyA」に対して、「設計書A」との関係において参照関係の従属項目にある。一方、「設計書A」から見ると、「ValueA1」が、「KeyA」に対して、「設計書B」との関係において被参照関係の従属項目にある。
図6下段には、設計書間の項目の関係の種類の1つとして、項目関係が示されている。すなわち、従属には含まれない、同一設計書内の項目関係が示されている。図6下段に示すように、「ValueB2」が、「設計書C」の「ValueC1」に対して、項目関係にある。つまり、関係定義マップ125は、設計書間の参照関係、従属関係(参照)、従属関係(被参照)および項目関係を、設計書毎に記憶する。なお、関係定義マップ125の一例は、後述するものとする。
図1に戻って、XML変換部111は、XMLスキーマ122を介して設計書121をXML文書123に変換する。また、XML変換部111は、XMLスキーマ122を介してXML文書123を設計書121に変換する。
キー/値変換部112は、XML文書123をキー/値データ124に変換する。また、キー/値変換部112は、キー/値データ124をXML文書123に変換する。
アーカイバ部113は、それぞれのリソース(設計書121、XMLスキーマ122、XML文書123、キー/値データ124)を紐付けて、記憶部12にアーカイブする。
関係探索部114は、関係定義マップ125に従い、設計書の項目変更に伴う影響箇所を探索する。
例えば、関係探索部114は、変更対象の項目(対象項目)に対する関係定義マップ125を取得する。そして、関係探索部114は、取得した関係定義マップ125に基づいて、対象項目が有する項目関係を元に参照関係にある他の設計書の項目を探索する。そして、関係探索部114は、探索できた設計書の項目から、さらに、他の設計書と参照関係にある項目を繰り返し探索する。すなわち、関係探索部114は、対象項目を有する設計書から参照関係を上位に向かって辿り、対象項目と関係する項目(最上位項目)を保持する。また、関係探索部114は、保持された最上位項目を対象項目として当該対象項目に対する関係定義マップ125を取得する。そして、関係探索部114は、取得した関係定義マップ125に基づいて、対象項目が有する項目関係を元に被参照関係にある他の設計書の項目を探索する。そして、関係探索部114は、探索できた設計書の項目から、さらに、他の設計書と被参照関係にある項目を繰り返し探索する。すなわち、関係探索部114は、最上位項目を有する設計書から被参照関係を下位に向かって辿り、最上位項目と関係する項目を取得する。つまり、関係探索部114は、対象項目に対して最上位項目を探す「上り」の処理と、最上位項目に関連する項目を探す「下り」の処理によって実現する。
また、関係探索部114は、対象項目と関係する項目を影響範囲項目として関係探索結果一覧に出力する。なお、関係探索結果一覧には、例えば、影響範囲項目および影響範囲項目を有する設計書が含まれる。
[関係定義マップの一例]
ここで、関係定義マップ125の一例を、図7を参照して説明する。図7は、実施例に係る関係定義マップの一例を示す図である。図7では、「テーブル仕様」および「項目一覧」間における「テーブル仕様」の関係定義マップ125である。図7左に示すように、「テーブル仕様」の項目IDは、「項目一覧」の項目IDと参照関係にある。また、「テーブル仕様」の項目名、属性、桁数_全体、桁数_小数は、「テーブル仕様」の項目IDに対して、「項目一覧」との関係において参照関係の従属項目にある。
このような設計書間の関係の下、図7右に示すように、「テーブル仕様」の関係定義マップ125が表されている。枠内m0には、関係探索のルールが設定されている。枠内m0には、関係定義マップ125が「テーブル仕様」に対応するマップであることが設定されている(m1)。また、枠内m0には、参照関係の定義(m2)と従属関係(参照)の定義(m3)と図示しない従属関係(被参照)のと図示しない定義と項目関係の定義が設定される。参照関係の定義(m2)には、「テーブル仕様」の項目IDと参照関係にある「項目一覧」の項目IDが設定されている(m21)。また、従属関係(参照)の定義(m3)には、項目名が「テーブル仕様」の項目IDに対して従属項目(参照)関係にあることが設定されている(m31)。属性が「テーブル仕様」の項目IDに対して従属項目(参照)関係にあることが設定されている(m32)。桁数_全体が「テーブル仕様」の項目IDに対して従属項目(参照)関係にあることが設定されている(m33)。桁数_小数が「テーブル仕様」の項目IDに対して従属項目(参照)関係にあることが設定されている(m34)。
つまり、「テーブル仕様」の桁数_全体を変更対象とする場合、関係探索部114は、以下のように関係を探索する。すなわち、関係探索部114は、「テーブル仕様」の関係定義マップ125に基づいて、対象項目である桁数_全体が有する従属関係(参照)を元に、参照関係にある「項目一覧」の項目である項目IDを探索する。
[関係探索処理の手順]
次に、図8Aおよび図8Bを参照して、実施例に係る関係探索処理の手順を説明する。図8Aおよび図8Bは、実施例に係る関係探索処理の手順の一例を示すフローチャートを示す図である。
図8Aに示すように、関係探索部114は、関係探索の指示があったか否かを判定する(ステップS101)。関係探索の指示がなかったと判定した場合(ステップS101;No)、関係探索部114は、上りの処理を実行する。すなわち、関係探索部114は、関係探索の指示があったか否かを判定する(ステップS101)。関係探索の指示がなかったと判定した場合(ステップS101;No)、関係探索部114は、関係探索の指示があるまで、判定処理を繰り返す。
一方、関係探索の指示があったと判定した場合(ステップS101;Yes)、関係探索部114は、関係探索の指示に含まれる設計書の名称、変更対象の項目(対象項目)および対象項目の値を抽出する。そして、関係探索部114は、抽出した対象項目に対する関係定義マップ125を取得する(ステップS102)。
関係定義マップ125を取得した後、関係探索部114は、対象項目の値と、関係定義マップ125の参照関係を元に、参照関係の設計書のキー/値データ124から該当する項目を取得する(ステップS103)。例えば、関係探索部114は、対象項目がキー項目である場合、キー項目と参照関係にある他の設計書の項目について、他の設計書のキー/値データ124を用いて、対象項目の値と同じ値を持つ該当項目を取得する。すなわち、対象項目が、関係定義マップ125の参照関係の定義に設定されている場合である。また、関係探索部114は、対象項目が従属項目である場合、従属元のキー項目と参照関係にある他の設計書の項目について、他の設計書のキー/値データ124を用いて、キー項目の値と同じ値を持つ該当項目を取得する。すなわち、対象項目が、関係定義マップ125の従属関係(参照)の定義に設定されている場合である。そして、関係探索部114は、該当する項目を取得する処理を実行した後、ステップS106に移行する。
また、関係定義マップ125を取得した後、関係探索部114は、対象項目に対する関係定義マップ125に、項目関係があるか否かを判定する(ステップS104)。項目関係がないと判定した場合(ステップS104;No)、関係探索部114は、ステップS106に移行する。一方、項目関係があると判定した場合(ステップS104;Yes)、関係探索部114は、対象項目の行番号と、関係定義マップ125の項目関係を元に、項目関係の設計書のキー/値データ124から該当する項目を取得する(ステップS105)。そして、関係探索部114は、ステップS106に移行する。
ステップS106では、関係探索部114は、該当する項目が取得できたか否かを判定する(ステップS106)。該当する項目が取得できたと判定した場合(ステップS106;Yes)、関係探索部114は、取得した項目を対象項目とする(ステップS107)。そして、関係探索部114は、さらに上位の設計書を辿るべく、ステップS102に移行する。
一方、該当する項目が取得できなかったと判定した場合(ステップS106;No)、関係探索部114は、対象項目を最上位の設計書の項目と判断し、リストに保存する(ステップS108)。そして、関係探索部114は、下りの処理を実行する(ステップS109)。
図8Bに示すように、関係探索部114は、上りの処理でリストに保存した全ての最上位の設計書の項目を、順次、対象項目として選択する(ステップS121)。そして、関係探索部114は、選択した対象項目を、影響範囲項目として関係探索結果一覧に設定する(ステップS122)。
続いて、関係探索部114は、対象項目に対する関係定義マップ125を取得する(ステップS123)。
関係定義マップ125を取得した後、関係探索部114は、対象項目の値と、関係定義マップ125の被参照関係を元に、被参照関係の設計書のキー/値データ124から該当する項目を取得する(ステップS124)。例えば、関係探索部114は、対象項目がキー項目である場合、キー項目と被参照関係にある他の設計書の項目について、他の設計書のキー/値データ124を用いて、対象項目の値と同じ値を持つ該当項目を取得する。すなわち、対象項目が、関係定義マップ125の参照関係の定義に設定されている場合である。また、関係探索部114は、対象項目が従属項目である場合、従属元のキー項目と被参照関係にある他の設計書の項目について、他の設計書のキー/値データ124を用いて、キー項目の値と同じ値を持つ該当項目を取得する。すなわち、対象項目が、関係定義マップ125の従属関係(被参照)の定義に設定されている場合である。そして、関係探索部114は、該当する項目を取得する処理を実行した後、ステップS127に移行する。
また、関係定義マップ125を取得した後、関係探索部114は、対象項目に対する関係定義マップ125に、項目関係があるか否かを判定する(ステップS125)。項目関係がないと判定した場合(ステップS125;No)、関係探索部114は、ステップS127に移行する。一方、項目関係があると判定した場合(ステップS125;Yes)、関係探索部114は、関係探索部114は、対象項目の行番号と、関係定義マップ125の項目関係を元に、項目関係の設計書のキー/値データ124から該当する項目を取得する(ステップS126)。そして、関係探索部114は、ステップS127に移行する。
ステップS127では、関係探索部114は、該当する項目が取得できたか否かを判定する(ステップS127)。該当する項目が取得できたと判定した場合(ステップS127;Yes)、関係探索部114は、取得した項目を対象項目とする(ステップS128)。そして、関係探索部114は、さらに下位の設計書を辿るべく、ステップS122に移行する。
一方、該当する項目が取得できなかったと判定した場合(ステップS127;No)、関係探索部114は、対象項目を最下位の設計書の項目と判断し、関係探索処理を終了する。
[関係探索処理の具体例]
次に、実施例に係る関係探索処理の具体例を、図9を参照して説明する。図9は、実施例に係る関係探索処理の具体例を示す図である。図9では、「テーブル仕様書」における「受注テーブル」の項目「項目ID」の値である「受注番号」が変更される場合の影響範囲の探索方法を示す。すなわち、「項目ID」が対象項目である。
まず、関係探索部114は、以下のように「上り」の処理を行う。関係探索部114は、「テーブル仕様書」の関係定義マップ125の参照関係を元に、対象項目の値「受注番号」と同じ値を持つ項目を取得する(S201)。ここでは、「項目一覧」の項目「項目ID」、項目の値「受注番号」が取得される。
さらに、関係探索部114は、「項目一覧」の関係定義マップ125の参照関係を元に、「項目一覧」の項目の値「受注番号」と同じ値を持つ項目を取得する。ここでは、関係探索部114は、「項目一覧」が最上位の設計書であるため、参照関係を元に項目を取得できない。そこで、関係探索部114は、「項目一覧」の関係定義マップ125に基づいて、対象項目である項目IDの項目関係をチェックする(S202)。ここでは、関係探索部114は、項目「ドメインID」、項目の値「番号」が取得される。そして、関係探索部114は、「項目一覧」が最上位の設計書であるため、「項目一覧」における項目「項目ID」および項目の値「受注番号」と、項目「ドメインID」および項目の値「番号」をリストに保存する。
次に、関係探索部114は、以下のように「下り」の処理を行う。まず、関係探索部114は、リストに保存された項目を関係探索結果一覧に設定する。そして、関係探索部114は、「項目一覧」の関係定義マップ125の被参照関係を元に、リストに保存された項目の値と同じ値を持つ項目を取得する(S203)。ここでは、リストに保存された項目のうち「受注画面項目仕様書」の項目「画面項目ID」、項目の値「受注番号」が探索される。そして、関係探索部114は、「受注画面項目仕様書」の「画面項目ID」を関係探索結果一覧に設定する。なお、リストに保存された項目のうち「ドメインID」と被参照関係にある項目はなかったものとする。
続いて、関係探索部114は、「受注画面項目仕様書」の関係定義マップ125の被参照関係を元に、「画面項目ID」の「受注番号」と同じ値を持つ項目を取得する(S204)。ここでは、「受注画面項目転送仕様書」の項目「画面項目ID」、項目の値「受注番号」が取得される。そして、関係探索部114は、「受注画面項目転送仕様書」の「画面項目ID」を関係探索結果一覧に設定する。
さらに、関係探索部114は、「受注画面項目転送仕様書」の関係定義マップ125の被参照関係を元に、「画面項目ID」の「受注番号」と同じ値を持つ項目を取得する。ここでは、関係探索部114は、「受注画面項目転送仕様書」が最下位の設計書であるため、「画面項目ID」と被参照関係にある他の設計書の項目を取得できない。一方、関係探索部114は、「受注画面項目転送仕様書」の関係定義マップ125に基づいて、「画面項目ID」の項目関係をチェックする(S205)。ここでは、関係探索部114は、項目「項目ID」、項目の値「受注番号」が取得される。そして、関係探索部114は、「受注画面項目転送仕様書」の「画面項目ID」、「項目ID」を関係探索結果一覧に設定する。その後、関係探索部114は、「受注画面項目転送仕様書」が最下位の設計書であるため関係探索処理を終了する。
[関係探索結果の一例]
次に、図9で示した関係探索処理の関係探索結果を、図10を参照して説明する。図10は、実施例に係る関係探索結果の一例を示す図である。図10に示すように、関係探索結果は、設計書k1、設計書名(ファイル名)k2、シート名k3、項目名k4、項目値k5および行番号k6を含む。設計書k1および設計書名(ファイル名)k2は、設計書の名称を示す。シート名k3は、設計書がEXCELで作成されている場合、EXCEL上のシートの名称を示す。シート名は、図2上の設計書種別「C2UI1A3d1」に対応する。なお、設計書k1およびシート名k3単位で、関係定義マップ125が作成される。項目名k4は、項目の名称を示す。項目値k5は、項目名k4に相当する項目の値を示す。行番号k6は、項目値k5に相当する項目の値がある行番号を示す。
一例として、設計書k1が「項目一覧」、設計書名(ファイル名)k2が「項目一覧」である場合、項目名k4として「項目ID」、項目値k5として「受注番号」、行番号k6として「1」が出力される。設計書k1が「項目一覧」、設計書名(ファイル名)k2が「項目一覧」である場合、項目名k4として「ドメインID」、項目値k5として「番号」、行番号k6として「1」が出力される。
[関係探索の実装例]
次に、実施例に係る関係探索の実装例を、図11を参照して説明する。図11は、実施例に係る関係探索の実装例を示す図である。図11では、EXCELのアドイン機能を利用して関係探索処理を実装している。そして、設計書「テーブル仕様」の「ユーザ権限」を変更する際の影響範囲を探索する場合を示している。
例えば、「ユーザ権限」のセルを右クリックした際に表示されるショートカットメニューの中の影響範囲ボタンb1が押下されると、関係探索部114は、「ユーザ権限」を項目の値とする対象項目「項目名」と関係する項目を探索する。そして、関係探索部114は、関係探索結果を示す影響範囲探索結果h0を出力する。ここでは、影響範囲探索結果h0には、「ユーザ権限」を変更する際の影響範囲が出力される。影響範囲探索結果h0には、設計書名、項目名および項目値が含まれる。なお、ショートカットメニューの中の影響範囲ボタンb1が押下される場合を説明したが、これに限定されず、影響範囲ボタンb2が押下される場合であっても良い。
ところで、上記実施例では、情報処理装置1は、関係定義マップ125を用いて、設計書の設計情報の変更に伴う影響箇所を探索することについて説明した。しかしながら、情報処理装置1は、さらに、複数の設計書間の設計情報の整合性をチェックするようにしても良い。かかる場合、情報処理装置1の記憶部12は、例えば、関係定義マップ125と異なる整合性マップを記憶するようにする。整合性マップとは、設計書間で参照関係および従属関係にある項目を、設計書毎に記憶するマップである。すなわち、整合性マップによって整合をチェックするチェック対象の設計書とマッチング対象の設計書との間のセマンティックな関係が定義される。
ここで、整合性マップの一例を、図12を参照して説明する。図12は、実施例に係る整合性マップの一例を示す図である。図12では、図7左で示した「テーブル仕様」および「項目一覧」間における「テーブル仕様」の整合性マップである。図12左に示すように、「テーブル仕様」の項目IDは、「項目一覧」の項目IDと参照関係にある。また、「テーブル仕様」の項目名、属性、桁数_全体、桁数_小数は、項目IDの従属項目にあり、「項目一覧」の項目名、属性、桁数_全体、桁数_小数と従属関係にある。
このような設計書間の関係の下、図12右に示すように、「テーブル仕様」の整合性マップが表されている。枠内n0には、項目IDに対して適用する整合性チェックのルールが設定されている。ここでは、枠内n0には、整合性マップが「テーブル仕様」に対応するマップであることが設定されている(n1)。マッチング対象の設計書(to_spectype)である「項目一覧」と、項目IDと参照関係の項目(to_field_name)である項目IDが設定されている(n2)。また、項目IDの従属項目(from_field_name)である項目名が、「項目一覧」の項目(to_field_name)である項目名と従属関係であることが規定されている(n3)。項目IDの従属項目(from_field_name)である型が、「項目一覧」の項目(to_field_name)である属性と従属関係であることが規定されている(n4)。項目IDの従属項目(from_field_name)である桁数_全体が、「項目一覧」の項目(to_field_name)である桁数_全体と従属関係であることが規定されている(n5)。項目IDの従属項目(from_field_name)である桁数_小数が、「項目一覧」の項目(to_field_name)である桁数_小数と従属関係であることが規定されている(n6)。
このような整合性マップを用いて、情報処理装置1は、複数の設計書間の設計情報の整合をチェックすることができる。例えば、情報処理装置1は、整合性マップを用いて、「テーブル仕様」の項目IDの値と、当該項目IDと参照関係にある「項目一覧」の項目IDの値とが一致する各行について、従属関係にある項目の値が一致しているか否かを整合判定する。ここでは、情報処理装置1は、「テーブル仕様」の項目IDを「項目一覧」の項目IDと整合判定する。そして、情報処理装置1は、項目IDの値が同じ行の「テーブル仕様」の項目名と「項目一覧」の項目名を従属項目として整合判定する。情報処理装置1は、項目IDの値が同じ行の「テーブル仕様」の属性と「項目一覧」の属性を従属項目として整合判定する。情報処理装置1は、項目IDの値が同じ行の「テーブル仕様」の桁数_全体と「項目一覧」の桁数_全体を従属項目として整合判定する。情報処理装置1は、項目IDの値が同じ行の「テーブル仕様」の桁数_小数と「項目一覧」の桁数_小数を従属項目として整合判定する。
ここで、整合性マップに定義されている関係は、図6上段で示した参照関係および図6中段で示した従属関係と同じ関係となっている。図6で示した参照関係および従属関係は、関係定義マップ125に定義される。したがって、整合性マップを用いて関係定義マップ125を自動的に生成することが可能となる。つまり、利用者が関係定義マップ125を定義していない場合であっても、整合性マップを用いて関係定義マップ125を自動生成することができる。例えば、関係探索部125は、処理の開始時に、設計書毎の整合性マップを用いて、関係定義マップ125を生成するようにしても良い。
なお、上記実施例では、関係探索部114は、対象項目を有する設計書から参照関係を上位の設計書に向かって辿り、対象項目と関係する項目(最上位項目)を保持する。そして、関係探索部114は、最上位項目を有する設計書から被参照関係を下位の設計書に向かって辿り、最上位項目と関係する項目を取得する。関係探索部114は、辿る元の設計書の関係定義マップ125に基づいて、上位および下位の設計書に向かって辿る。しかしながら、関係探索部114が、上位の設計書から下位の設計書に向かって辿る際、辿った先の設計書内で同一の項目を複数探索対象として取得する場合がある。
例えば、上位の設計書が「ドメイン属性マスタ」であるとする。「ドメイン属性マスタ」には、項目として「属性」があり、「属性」の値として「数値型」、「日付型」、「日本語型」があるとする。そして、下位の設計書が「ドメイン一覧」であるとする。「ドメイン一覧」には、項目として「ドメインID」、「ドメイン名」、「属性」があり、「ドメインID」および「ドメイン名」のそれぞれの値に対して「属性」の値があるとする。この場合、関係探索部114は、「日本語型」を項目の値とする対象項目「属性」を有する「ドメイン属性マスタ」から被参照関係を下位の設計書に向かって辿り、対象項目と関係する項目を影響箇所として取得する。ここでは、関係探索部114は、「ドメイン一覧」の中の、「ドメイン属性マスタ」の「日本語型」に該当する項目を探索対象として複数取得してしまう。これを避けるために、関係定義マップ125の被参照関係の定義に、下位を辿らせる/下位を辿らせないという遷移可否情報が設定されるようにしても良い。かかる場合、関係探索部114は、辿った先の設計書の関係定義マップ125から、被参照関係の定義に設定された遷移可否情報を抽出し、抽出した遷移可否情報に従って下位への遷移を制御すれば良い。これにより、関係探索部114は、影響箇所として取得される項目について、同じ設計書から同じ項目を取得しないようにすることができる。
また、上記実施例では、情報処理装置1は、設計書における設計情報の影響範囲を探索することについて説明した。しかしながら、情報処理装置1は、設計書に限定されず、複数の文書間で情報に関連性があるような文書に適用しても良い。
[実施例の効果]
上記実施例によれば、関係探索部114は、第1の設計書の第1の項目に関連する設計書の検索依頼を受け付けると、関係定義マップ125から、受け付けた該第1の項目に対応する関係を特定する。そして、関係探索部114は、特定した関係に対応する項目が登録された設計書を前記第1の項目に関連する設計書として出力する。かかる構成によれば、関係探索部114は、関係定義マップ125を用いて検索依頼を受けた第1の設計書の第1の項目に関連する設計書を出力するので、第1の設計書の第1の項目を変更する場合の影響範囲を特定することができる。
また、上記実施例によれば、関係探索部114は、特定した関係が参照関係である場合、第1の設計書の第1の項目と参照関係にある参照関係に対応付けられた項目を有する第2の設計書を抽出する。関係探索部114は、抽出した関係が被参照関係である場合、第1の設計書の第1の項目と被参照関係にある被参照関係に対応付けられた項目を有する第2の設計書を抽出する。そして、関係探索部114は、抽出した設計書の項目の情報を出力する。かかる構成によれば、関係探索部114は、第1の設計書の第1の項目と参照関係または被参照関係にある設計書の項目の情報を出力する。この結果、関係探索部114は、第1の設計書の第1の項目を変更する場合の影響範囲を特定することができる。
また、上記実施例によれば、関係探索部114は、第2の設計書を抽出する場合、第1の設計書から上位に向かって、参照関係を用いて第2の設計書を抽出する。関係探索部114は、第3の設計書を抽出する場合、最上位の設計書から下位に向かって、被参照関係を用いて第3の設計書を抽出する。かかる構成によれば、関係探索部114は、設計書間の上位および下位の関係性を維持しながら関連する設計書を辿ることができ、第1の設計書の第1の項目に関連する設計書を効率的に探索することができる。
また、上記実施例によれば、関係探索部114は、設計書間で参照関係および従属関係にある項目を設計書毎に記憶する整合性マップを用いて関係定義マップ125を生成する。かかる構成によれば、関係定義マップ125を作成する手間が軽減できる。
[その他]
なお、情報処理装置1は、既知のパーソナルコンピュータ、ワークステーション等の装置に、上記したXML変換部111、キー/値変換部112、アーカイバ部113および関係探索部114などの各機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、XML変換部111とアーカイバ部113、キー/値変換部112とアーカイバ部113とをそれぞれ1個の部として統合しても良い。一方、関係探索部114を、関係探索する処理部と、関係探索の結果を出力する出力部とに分散しても良い。また、記憶部12を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報処理装置1と同様の機能を実現する設計書管理プログラムを実行するコンピュータの一例を説明する。図12は、設計書管理プログラムを実行するコンピュータの一例を示す図である。
図12に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、設計書管理プログラム205aおよび設計書管理関連情報205bを記憶する。
CPU203は、設計書管理プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。設計書管理関連情報205bは、設計書121、XMLスキーマ122、XML文書123、キー/値データ124および関係定義マップ125に対応する。そして、例えばリムーバブルディスク211が、設計書管理プログラム205aなどの各情報を記憶する。
なお、設計書管理プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから設計書管理プログラム205aを読み出して実行するようにしても良い。
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
(付記1)複数の項目が含まれる設計書を複数管理する設計書管理プログラムであって、
第1の設計書の第1の項目に関連する設計書の検索依頼を受け付けると、項目の識別情報と機能とを対応付けた第1の記憶部から、受け付けた該第1の項目に対応する機能を特定し、
該特定した前記機能に対応する項目の識別情報が登録された設計書を、設計書を記憶した第2の記憶部から抽出して、前記第1の項目に関連する設計書として出力する
各処理をコンピュータに実行させることを特徴とする設計書管理プログラム。
(付記2)前記第1の記憶部は、他の設計書において定義された項目の識別情報と前記機能を示す参照関係または被参照関係とを対応付け、
該出力する処理は、
該特定する機能が参照関係である場合、前記第1の設計書の前記第1の項目と参照関係にある前記参照関係に対応付けられた項目の識別情報を有する第2の設計書を抽出し、
該特定する機能が被参照関係である場合、前記第1の設計書の前記第1の項目と被参照関係にある前記被参照関係に対応付けられた項目の識別情報を有する第3の設計書を抽出し、
該抽出した設計書の前記項目の情報を出力する
処理を実行させることを特徴とする付記1に記載の設計書管理プログラム。
(付記3)前記第2の設計書を抽出する処理は、前記第1の設計書から上位の設計書へ遷移するように、前記参照関係を用いて前記第2の設計書を抽出し、
前記第3の設計書を抽出する処理は、最上位の設計書から下位の設計書へ遷移するように、前記被参照関係を用いて前記第3の設計書を抽出する
処理を実行させることを特徴とする付記2に記載の設計書管理プログラム。
(付記4)前記第1の記憶部は、さらに、参照関係を遷移するか否かまたは被参照関係を遷移するか否かを示す遷移可否情報を対応付け、
前記第2の設計書を抽出する処理は、前記第1の記憶部の前記参照関係における前記遷移可否情報を用いて上位の設計書への遷移を制御し、
前記第3の設計書を抽出する処理は、前記第1の記憶部の前記被参照関係における前記遷移可否情報を用いて下位の設計書への遷移を制御する
処理を実行させることを特徴とする付記3に記載の設計書管理プログラム。
(付記5)設計書間で参照関係および従属関係にある項目を設計書毎に記憶する第3の記憶部を有し、
前記第1の記憶部は、他の設計書において定義された項目の識別情報と前記機能を示す参照関係、参照の従属関係または被参照の従属関係とを対応付け、
該特定する処理は、前記第1の設計書の前記第1の項目に関連する設計書の検索依頼を受け付けると、前記第3の記憶部を用いて前記第1の記憶部を生成し、生成した前記第1の記憶部から、受け付けた該第1の項目に対応する機能を特定する
を設計書毎に記憶する整合性マップから関係定義マップ125を生成する。
処理を実行させることを特徴とする付記1に記載の設計書管理プログラム。
(付記6)コンピュータが複数の項目が含まれる設計書を複数管理する設計書管理方法であって、
第1の設計書の第1の項目に関連する設計書の検索依頼を受け付けると、項目の識別情報と機能とを対応付けた第1の記憶部から、受け付けた該第1の項目に対応する機能を抽出し、
該抽出した前記機能に対応する項目の識別情報が登録された設計書を、設計書を記憶した第2の記憶部から抽出して、前記第1の項目に関連する設計書として出力する
各処理を実行することを特徴とする設計書管理方法。
(付記7)項目の識別情報と機能とを対応付けた第1の記憶部と、
複数の項目が含まれる第1の設計書の第1の項目に関連する設計書の検索依頼を受け付けると、前記第1の記憶部から、受け付けた該第1の項目に対応する機能を抽出し、該抽出した前記機能に対応する項目の識別情報が登録された設計書を、設計書を記憶した第2の記憶部から抽出する抽出部と、
前記抽出部によって抽出された設計書を、前記第1の項目に関連する設計書として出力する出力部と、
を有することを特徴とする情報処理装置。