(57)【要約】【課題】  ユーザ自身の知識にない検索キーワードを発見することを可能とし、また、被検索対象の粒度（ファイル単位、章単位、節単位、項単位など）に予め一つに決めることなく検索する。【解決手段】  本発明は、記憶装置に保存されている文書群に含まれる文書情報から、トレースリンクを作成する単位である文書単位（以下、「ノード」と記す）を識別し、該ノードの階層の木構造である文書木を構築する文書木構築手段と、ユーザが検索したい複数のキーワードを受け付けるキーワード入力手段と、検索されたリンク先候補を表示するリンク先候補検索結果表示手段と、キーワード入力手段で指定された複数のキーワードであるキーワード列から、文書木の階層構造に基づいて、該キーワード列に合致したリンク先候補を検索し、リンク先候補検索結果表示手段に通知するリンク先候補検索手段を有する。【選択図】  図１
2015162004.tif 000002
【特許請求の範囲】
【請求項１】
トレースリンクを作成する対象である複数の開発ドキュメントからなる文書群が記憶装置に保存されている状況において、トレースリンク生成時のリンク先の発見を支援するための開発ドキュメント間トレースリンク作成支援装置であって、
ユーザインタフェース手段、文書群解析手段、問い合わせ実行手段を有し、
前記文書群解析手段は、
前記記憶装置に保存されている前記文書群に含まれる文書情報から、前記トレースリンクを作成する単位である文書単位（以下、「ノード」と記す）を識別し、該ノードの階層の木構造である文書木を構築する文書木構築手段を有し、
前記ユーザインタフェース手段は、
ユーザが検索したい複数のキーワードを受け付けるキーワード入力手段と、
検索されたリンク先候補を表示するリンク先候補検索結果表示手段と、
を有し、
前記問い合わせ実行手段は、
前記キーワード入力手段で指定された複数のキーワードであるキーワード列から、前記文書木の階層構造に基づいて、該キーワード列に適合したリンク先候補を検索し、前記リンク先候補検索結果表示手段に通知するリンク先候補検索手段を有する
ことを特徴とする開発ドキュメント間トレースリンク作成支援装置。
【請求項２】
前記リンク先候補検索手段は、
前記キーワード列に適合したリンク先候補を検索する際に、
全てのキーワードを含むノードは適合する；
１つ以上のキーワードを含むノードで、該ノードの先祖ノードが残りのキーワードを全て含んでいるとき、当該ノードは適合する；
全てのキーワードのうち、あるノードＡの先祖ノードに含まれないキーワードが、該ノードＡの複数の子ノード以下の部分木に分散して含まれるとき、当該ノードＡは適合する；
の条件を用いる
請求項１記載の開発ドキュメント間トレースリンク作成支援装置。
【請求項３】
前記文書群解析手段は、
前記文書群から前記ユーザが指定したいキーワードの候補の集まりであるキーワード表を作成するキーワード抽出部を更に有し、
前記ユーザインタフェース手段は、
前記文書木の中から前記ユーザによって指定されたトレースリンクのリンク元であるノードに対応するキーワード列をユーザに提示し、その中から該ユーザに選択させ、検索のためのキーワードとするリンク元指定手段を更に有し、
前記問い合わせ実行手段は、
前記ユーザによって指定された前記リンク元であるノードに対して、前記キーワード表からリンク元に対応するキーワード列を検索し、前記リンク元指定手段に返却する検索キーワード候補検索手段を更に有する
請求項１記載の開発ドキュメント間トレースリンク作成支援装置。
【請求項４】
前記文書群解析手段は、
前記文書群から複数のキーワードを抽出し、相互に関係のあるキーワードをノードとし、関係のあるキーワードを結ぶリンクをエッジとするキーワード間関係グラフを構築し、前記記憶装置に格納する第１のキーワード間関係グラフ構築手段を更に有し、
前記ユーザインタフェース手段は、
前記記憶装置から前記キーワード間関係グラフを読み込み、前記ユーザに対して表示し、該キーワード間関係グラフから該ユーザにより選択されたノードであるキーワードを検索のためのキーワードとするキーワードグラフ表示手段を更に有する
請求項３記載の開発ドキュメント間トレースリンク作成支援装置。
【請求項５】
前記文書群解析手段は、
前記文書群から複数のキーワードを抽出し、抽出した個々のキーワードに対し１以上のキーワード分類を紐付け、相互に関係のあるキーワードを抽出し、該個々のキーワードと個々のキーワード分類をそれぞれキーワードノード、キーワード分類ノードとし、該関係のあるキーワードを結ぶエッジおよびキーワードノードと該キーワードノードに紐付いたキーワード分類ノードを結ぶエッジで構成されるキーワード間関係グラフを構築し、前記記憶装置に格納する第２のキーワード間関係グラフ構築手段を更に有し、
前記問い合わせ実行手段は、
前記キーワード分類ノードと、前記キーワード間関係グラフのうち任意のエッジで結ばれた二つのキーワードノードに紐付いたキーワード分類ノードを相互に結ぶエッジで構成されるキーワード分類グラフを構築するキーワード分類グラフ構築手段と、
前記キーワード分類グラフにおいて、前記キーワード分類ノードと選択されたキーワード分類ノードと紐付いたキーワードの中から、前記ユーザが一つのキーワードを選択することによって、該キーワード分類ノードをキーワードノードに置き換え、キーワード分類グラフを再構成するキーワード分類グラフ再構成手段と、
を更に有し、
前記ユーザインタフェース手段は、
前記キーワード分類グラフを前記ユーザに対して表示し、該キーワード分類グラフのキーワード分類ノードやキーワード分類に紐付いたキーワード及び、キーワードノードを選択させることにより、検索のためのキーワードを選択し、前記キーワード分類再構成手段に出力するキーワード分類グラフ表示手段を更に有する
請求項３記載の開発ドキュメント間トレースリンク作成支援装置。
【請求項６】
トレースリンクを作成する対象である複数の開発ドキュメントからなる文書群が記憶装置に保存されている状況において、トレースリンク生成時のリンク先の発見を支援するための開発ドキュメント間トレースリンク作成支援方法であって、
ユーザインタフェース手段、文書群解析手段、問い合わせ実行手段を有する装置において、
前記文書群解析手段が、前記記憶装置に保存されている前記文書群に含まれる文書情報から、前記トレースリンクを作成する単位である文書単位（以下、「ノード」と記す）を識別し、該ノードの階層の木構造である文書木を構築する文書木構築ステップと、
前記ユーザインタフェース手段が、ユーザが検索したい複数のキーワードを受け付けるキーワード入力ステップと、
前記問い合わせ実行手段が、前記キーワード入力ステップで指定された複数のキーワードであるキーワード列から、前記文書木の階層構造に基づいて、該キーワード列に適合したリンク先候補を検索し、前記ユーザインタフェース手段に通知するリンク先候補検索ステップと
前記ユーザインタフェース手段が、検索されたリンク先候補を表示するリンク先候補検索結果表示ステップと、
を行うことを特徴とする開発ドキュメント間トレースリンク作成支援方法。
【請求項７】
前記リンク先候補検索ステップにおいて、
前記キーワード列に適合したリンク先候補を検索する際に、
全てのキーワードを含むノードは適合する；
１つ以上のキーワードを含むノードで、該ノードの先祖ノードが残りのキーワードを全て含んでいるとき、当該ノードは適合する；
全てのキーワードのうち、あるノードＡの先祖ノードに含まれないキーワードが、該ノードＡの複数の子ノード以下の部分木に分散して含まれるとき、当該ノードＡは適合する；
の条件を用いる
請求項６記載の開発ドキュメント間トレースリンク作成支援方法。
【請求項８】
コンピュータを、
請求項１乃至５のいずれか１項の記載の開発ドキュメント間トレースリンク作成支援装置の各手段として機能させるための開発ドキュメント間トレースリンク作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発ドキュメント間トレースリンク生成支援装置及び方法及びプログラムに係り、特に、トレースリンクを作成する対象である複数の開発ドキュメントからなる文書群が記憶装置に保存されている状況において、開発ドキュメント間の追跡可能性を確保するために用いられるトレースリンク生成時のリンク先の発見を支援するための開発ドキュメント間トレースリンク生成支援装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発において、要求から要求に対応する設計、実装、試験項目が追跡可能であることは、要求に対する設計、実装、試験の過不足の確認や、設計や実装の変更による影響範囲を確認する作業を容易にするなど、ソフトウェアの品質を保証する上で重要である。ソフトウェア開発作業の一部に、トレーサビリティ管理ツールを使うなどの方法による追跡可能性確保作業を組み込むことで、追跡可能な状態を保つことは可能である。
【０００３】
しかし、既にある、追跡可能性が確保されていないソフトウェアに対する改造や更改の際に、追跡可能性を確保しようとすると、大量の文書群の中から、目的の要求や設計に関連する箇所を見つけ出すトレースリンク生成作業が必要で、この作業を効率化する技術が求められる。
【０００４】
ここで、トレースリンクとは、開発ドキュメントに記述されている要求とその要求を実現するための設計や外部設計とその設計を詳細化した内部設計など、直接関係のある二つの項目間を結び付けたリンクのことをいう。
【０００５】
トレースリンクが結ぶそれぞれの項目は、同じ開発工程のドキュメント内にあってもよいし、それぞれが異なる開発工程のドキュメントの中にあってもよい。
【０００６】
大規模システムの開発及び運用においては、既存システムの改造や更改が多く発生する。例えば、ある機能を改造する場合、その機能がどのような仕様や設計に基づいているかを知る必要があることに加え、その改造が他の機能に与える影響を、予め予測しておくことが必要である。また、運用中のシステムに不具合が発生したときには、不具合箇所を特定し、修正するだけでなく、その修正が他に悪影響を及ぼさないことを確認することが重要である。
【０００７】
当該システムに関する仕様や設計を正確に把握している人材がいれば、このような予測や確認は容易に可能であるかもしれないが、このような人材がいることは稀である上に、ノウハウが局所化することによるリスクも大きい。
【０００８】
トレースリンクが整備され、追跡可能性が確保されると、ソフトウェアの品質を保証する上で重要な要求に対する設計や実装、試験の過不足の確認や、設計や実装の変更による影響範囲を確認する作業を容易にすると共に、ソフトウェアシステムの改造更改時の影響分析や、運用中のシステムにおける不具合対応を、トレースリンクが整備されていないときに比べて、円滑に実施することが可能になる。
【０００９】
多くのシステムでは、そのシステムの重要事項を要件定義書や設計書に（機能や処理などの記載項目の種類によって様々な箇所に）一覧表として記載しているため、これらの表を分析することで、そのシステムを構成する事項やそれらの関連を推定することができ、これらの情報を用いることで、効果的なトレースリンクの生成支援が期待できる。
【００１０】
そのための技術として、近接演算子を用いて単語の並びの再現率を求める方法や、構造を考慮したドキュメント検索により、文書の階層を考慮する技術がある（例えば、特許文献１参照）。
【００１１】
また、ユーザに少なくとも１つのキーワードを入力させ、そのキーワードに関連するグラフを表示する方法（例えば、非特許文献１参照）や、事前にシソーラスを構築して、その分類階層等を利用して検索させる方法がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特許３５９８７４２号公報
【非特許文献】
【００１３】
【非特許文献１】国会図書館検索リサーチナビ（WikiPedia WikiLinks）   http://rnavi.ndl.go.jp/rnavi/
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、近接演算子を利用することにより、AND指定に対しても再現率を上げることはできるが、単語の並びとして近くとも、構造上遠い場合（例えば、隣の章にまたがる）も候補となってしまい、適合率が十分に上がらない。また、構造を考慮した特許文献１の技術は、上位ノードの見出しのみの情報を利用しているために、十分な再現率を得ることができない、という問題がある。
【００１５】
また、一般的なインターネット検索において、ユーザが開発文書を検索したいときに、適切なキーワードを思いつかない場合が多いため、事前にそのキーワードを抽出して、全てのキーワードをビジュアルに提示する方法があるが、その表示量が膨大になる。そのため、ユーザに１つでもよいからキーワードを入力させ、そのキーワードに関連するグラフを表示する非特許文献２の技術では、全くキーワードを入力できない場合には実行できない。また、事前にシソーラスを構築して、その分類階層等を利用して検索させる方法は、各ユーザに適したシソーラス構築は現実的ではない。
【００１６】
上記からトレースリンクを利用することが望ましいが、トレースリンクを生成するためには、リンク元（要求項目や設計項目などトレースリンクを生成する起点となる箇所）に対応するリンク先（要求項目に対応する設計項目や設計項目をより詳細化した設計項目など）を見つける必要がある。（本発明では、開発工程の上下を区別する必要はなく、トレース元とトレース先は同じドキュメント群にあってもよいし、別々のドキュメント群にあってもよい。）
リンク元からリンク先を見つける作業を大別すると、以下の２種類に分けられる。
【００１７】
一つは、類似文検索技術を応用し、リンク先が含まれるであろう文書群の中から、リンク元に類似する箇所を見つけ出した上で、類似度の高い箇所から関連箇所であるか否かを確認する方法で、もう一つは、ユーザが指定したキーワードで全文検索し、返ってきた結果が関連箇所であるか否かを確認する方法である。
【００１８】
しかしながら、類似文検索技術を応用する方法では、関連箇所であるか否かを確認する際の類似度の基準を一般化することは難しい上に、必ずしも関連箇所の記載内容が類似しているとは限らない。また、文の類似を比較する必要性から、被検索対象の粒度（ファイル単位、章単位、節単位、項単位など）を予め決める必要があるが、関連箇所の粒度が一定である保証はない。
【００１９】
全文検索を利用する方法では、指定したキーワードでリポジトリ内にあるファイルを検索した上で、結果として得られたそれぞれのファイル個別にキーワード検索を行い、該当箇所を確認するといった複雑な作業が必要である。
【００２０】
その上、検索キーワードを指定するためには当該システムに関する知識が必要で、知識がないと検索キーワードを指定することもできないことがある。例えば、ある機能の構成要素（例えば、ある画面）に関する要件に対応する設計を探したいとき、必ずしも要件に目的の構成要素名が記載されているとは限らない。
【００２１】
また、システム開発の過程で、仕様や設計に関する文書を生成していれば、それらの文書群を理解することによって、当該システムに関する仕様や設計の把握を行える。しかし、大きなシステムほどその仕様や設計を記載した文書群は膨大になるため、全体の把握には多くの時間を要するだけでなく、ある特定の機能に関連する事項を把握する場合においても、どの文書の何処を参照すればよいのかは容易にはわからない。計算機を利用した従来の方法では、自然言語処理技術を用い、文章に記述された文章の主述関係を理解することで物事の関係性を明らかにしようとしてきたが、物事の関連や図や表などで示されることが多く、十分な効果が得られていない。
【００２２】
本発明は上記の点に鑑みなされたもので、ユーザがツリーノードやグラフノードをブラウズすることで、ユーザ自身の知識にない検索キーワードを発見することを可能とし、また、被検索対象の粒度（ファイル単位、章単位、節単位、項単位など）に予め一つに決めることなく検索することが可能な開発ドキュメント間トレースリンク作成支援装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２３】
一態様によれば、トレースリンクを作成する対象である複数の開発ドキュメントからなる文書群が記憶装置に保存されている状況において、トレースリンク生成時のリンク先の発見を支援するための開発ドキュメント間トレースリンク作成支援装置であって、
ユーザインタフェース手段、文書群解析手段、問い合わせ実行手段を有し、
前記文書群解析手段は、
前記記憶装置に保存されている前記文書群に含まれる文書情報から、前記トレースリンクを作成する単位である文書単位（以下、「ノード」と記す）を識別し、該ノードの階層の木構造である文書木を構築する文書木構築手段を有し、
前記ユーザインタフェース手段は、
ユーザが検索したい複数のキーワードを受け付けるキーワード入力手段と、
検索されたリンク先候補を表示するリンク先候補検索結果表示手段と、
を有し、
前記問い合わせ実行手段は、
前記キーワード入力手段で指定された複数のキーワードであるキーワード列から、前記文書木の階層構造に基づいて、該キーワード列に合致したリンク先候補を検索し、前記リンク先候補検索結果表示手段に通知するリンク先候補検索手段を有する開発ドキュメント間トレースリンク作成支援装置が提供される。
【発明の効果】
【００２４】
一態様によれば、階層関係のあるドキュメントに対し、複数のキーワードを指定して、対応関係のあるノード（例えば、章や節）を発見したい場合において、適合率を低下させずに、再現率を向上させることが可能となる。また、ユーザがキーワードを選択する際に、候補となるキーワードを提示することが可能となり、ユーザは単にツリーノードやグラフノードをブラウズすることで、ユーザ自身の知識にない検索キーワードを発見することができる。
【００２５】
さらに、文書中に分散して記載されている表を分析することで、システムに関連する物事の関連を、計算機が理解可能な形で得ることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施の形態における開発ドキュメント間トレースリンク作成支援装置の構成例。
【図２】本発明の第１の実施の形態における基本動作のフローチャート。
【図３】本発明の第１の実施の形態におけるリンク先候補検索部の適合判断のフローチャート。
【図４】本発明の第１の実施の形態におけるリンク先候補表示例。
【図５】本発明の第２の実施の形態におけるリンク元ノードに関連する検索キーワード列の表示・選択によるキーワード列へのキーワード追加・削除処理のフローチャート。
【図６】本発明の第３の実施の形態における開発ドキュメント間トレースリンク作成支援装置の構成例。
【図７】本発明の第３の実施の形態におけるキーワード間関係グラフからキーワードグラフを構築する際のフローチャート。
【図８】本発明の第４の実施の形態における開発ドキュメント間トレースリンク作成支援装置の構成例。
【図９】本発明の第４の実施の形態におけるキーワード分類ノードをノードとする有向グラフの構成例。
【図１０】本発明の第４の実施の形態におけるキーワード分類グラフ表示のフローチャート。
【図１１】本発明の第４の実施の形態におけるキーワード分類ノードの再構成の例。
【図１２】本発明の第４の実施の形態におけるキーワード間関係グラフを表から自動的に生成するためのキーワード間関係グラフ構築部の構成図。
【図１３】本発明の第４の実施の形態におけるグラフ構築のフローチャート。
【図１４】本発明の第４の実施の形態における文書群から抽出された表の１行目が見出しである一覧表の例。
【図１５】本発明の第４の実施の形態における文書群から抽出された表の見出しが複数の行にまたがる一覧表の例。
【図１６】本発明の第４の実施の形態における一覧表でない表の例。
【図１７】本発明の第４の実施の形態における一覧表判定部のフローチャート。
【図１８】本発明の第４の実施の形態における複数の列にまたがる見出しの例。
【図１９】本発明の第４の実施の形態における見出しと値のリンクの例。
【図２０】本発明の第４の実施の形態における主従関係の判定基準の例。
【図２１】本発明の第４の実施の形態における見出しの主従関係に基づく値のリンクの例。
【図２２】本発明の一実施例における文書群の例。
【図２３】本発明の一実施例における文書の木構造の例。
【図２４】本発明の一実施の形態における表示例。
【図２５】本発明の一実施例における検索の実行例。
【図２６】本発明の一実施例における文書群に含まれる表の例。
【図２７】本発明の一実施例における表からのグラフの構成例（１）。
【図２８】本発明の一実施例における表からのグラフの構成例（２）。
【図２９】本発明の一実施例における表からのグラフの構成例（３）。
【図３０】本発明の一実施例におけるグラフ構成部によるグラフの合成例。
【発明を実施するための形態】
【００２７】
以下、図面と共に本発明の実施の形態を説明する。
【００２８】
［第１の実施の形態］
図１は、本発明の第１の実施の形態における開発ドキュメント間トレースリンク作成支援装の構成例を示す。
【００２９】
同図に示す装置１００Ａは、キーワード入力部１０、リンク先候補検索結果表示部１１、リンク元指定部１２を有するユーザインタフェース部１と、リンク先候補検索部２１、検索キーワード候補検索部２２を有する問い合わせ実行部２と、文書木３１、文書群３２、キーワード表３３を格納する記憶装置３と、文書木構築部４１、キーワード抽出部４２を有する文書群解析部４とを有する。記憶装置３の文書木３１は、フォルダ階層、ファイル、章節構造またはシートやスライドを木構造で表現したもので、文書群解析部４の予め文書木構築部４１で構築される。
【００３０】
本実施の形態では、上記の構成における入出力装置０からの入力により、メモリ（図示せず）内に格納される検索キーワード列の追加及び検索キーワード列からのキーワードの削除の処理について述べる。
【００３１】
図２は、本発明の第１の実施の形態における処理のフローチャートである。
【００３２】
ステップ１１０）キーワード入力部１０１は、０以上のキーワードを入力させる。
【００３３】
ステップ１２０）入力されたキーワードをキーワード列に追加し、キーワード列を問い合わせ実行部２のリンク先候補検索部２１に送信する。
【００３４】
ステップ１３０）問い合わせ実行部２のリンク先候補検索部２１は、キーワード入力部１０から取得したキーワード列と記憶装置３の文書木３１を照合し、合致するノードをリンク先候補としてリンク先候補検索結果表示部１１に出力する。
【００３５】
キーワード列の長さが０のとき、つまり、キーワード列が入力されなかった場合は、文書木３１の全てのノードが適合すると判断してもよいし、全てのノードが適合しないと判断してもよい。
【００３６】
以下に、当該リンク先候補検索部２１の処理を説明する。
【００３７】
＜リンク先候補の適合判断処理＞
リンク先候補検索部２１における適合の判断の手順を図３に示す。
【００３８】
リンク先候補検索部２１は、文書木３１からノードを一つ取得し（ステップ５１０）、全てのキーワードを含むノードは適合すると判断し（ステップ５２０，Yes）、ノードを検索結果リストに格納し（ステップ５６０）、ステップ５７０に移行する。
【００３９】
ノードが全てのキーワードを含まないと判断した場合（ステップ５２０,No）は、１つ以上のキーワードを含むノードで（ステップ５３０,Yes）、そのノードの先祖ノードが残りのキーワードを全て含んでいるとき（ステップ５４０，Yes）、そのノードは適合すると判断し（複数の先祖ノードに分散して含まれていてもよい）、ノードを検索結果リストに格納する（ステップ５６０）。
【００４０】
全てのキーワードのうち、ノードＡの先祖ノードに含まれないキーワードが、ノードＡの複数の子ノード以下の部分木に分散して含まれる時（ステップ５５０，Yes）、ノードは適合すると判断し、ノードを検索結果リストに格納する（ステップ５６０）。全てのノードの探索が終わったら（ステップ５７０，Yes）、検索結果リストを返信する（ステップ５８０）。なお、検索結果リストは図示しないが、問い合わせ実行部２内のメモリに格納されているものとする。
【００４１】
ここで、「ノードがあるキーワードを含む」とは、そのノードのラベルまたは内容を表す文字列に、そのキーワードが包含されていることを指し、「部分木があるキーワードを含む」とは、その部分木に含まれる全ノードのうちいずれかがそのキーワードを含んでいることを指す。
【００４２】
ステップ１４０）リンク先候補検索結果表示部１１は、リンク先候補検索部２１から返却されたリンク先候補を取得し、入出力装置０にツリー状に表示する（例えば、図４）。ツリー表示における各ノードのラベルは、ディレクトリ名、ファイル名、章節タイトル、シート名、スライド名など、ユーザが認識可能な文字列とする。
【００４３】
例えば、ツリーの各ノードが検索結果として適合していれば濃い色で、適合していなければ薄い色でラベルを表示する。適合しないノードで、適合するノードが子ノードにないノードは表示しなくてもよい。
【００４４】
ステップ１５０）  ユーザから削除する検索キーワードが入力された場合は、検索キーワード列から削除し、上記のステップ１３０，１４０の処理に移行する。
【００４５】
［第２の実施の形態］
本実施の形態では、前述の第１の実施の形態における図１の構成において、リンク元ノードに関連する検索キーワード列の表示・選択によるキーワード列へのキーワード追加・削除処理について説明する。
【００４６】
図５は、本発明の第２の実施の形態におけるリンク元ノードに関連する検索キーワード列の表示・選択によるキーワード列へのキーワード追加・削除処理のフローチャートである。
【００４７】
ユーザインタフェース部１のリンク元指定部１２は、記憶装置３の文書木３１から、リンク元が含まれる文書木情報を読み込み、ツリー状に表示し（ステップ２１０）、ユーザにノードを選択させる。ツリー表示における各ノードのラベルは、ディレクトリ名、ファイル名、章節タイトル、シート名、スライド名など、ユーザが識別可能な文字列とする。
【００４８】
ユーザはリンク元指定部１２によって表示されたツリーからノードを選択する（ステップ２２０）。リンク元指定部１２は、ユーザから入力されたリンク元指定情報を検索キーワード候補検索部２２に出力する。検索キーワード候補検索部２２は、記憶装置３のキーワード表３３と文書群３２のノードに対応する文書情報を照合し、キーワード列とノードを紐付け、キーワード入力部１０に出力する（ステップ２３０）。なお、キーワード表３３は、人が作成してもよいし、文書群を解析し、文書群解析部４のキーワードを抽出するキーワード抽出部４２が作成してもよい。また、キーワード抽出部４２によるキーワード抽出方法は問わない。
【００４９】
リンク元指定部１２は、検索キーワード候補検索部２２から取得したキーワード列を入出力装置０に表示する（ステップ２４０）。このとき、ノードに対応する本文の内容を併せて表示してもよい。
【００５０】
ユーザは表示されたキーワード列からキーワードを選択することができ（ステップ２５０）、選択されたキーワードが検索キーワード列に含まれない場合には（ステップ２６０,No）、ユーザが選択したキーワードはキーワード入力部１０に送信され、検索キーワード列に追加される（ステップ１２０）。選択されたキーワードが検索キーワード列に含まれる場合には（ステップ２６０,Yes）、選択されたキーワードを検索キーワード列から削除する（ステップ２７０）。以降、前述のステップ１３０の処理に移行する。
【００５１】
なお、キーワード入力部１０における検索結果のツリー表示もリンク元指定部１２のツリー表示と同様に、ユーザがノードを選択したときに、そのノードに紐付けられたキーワード列やノードに対応する本文の内容を表示してもよい。
【００５２】
［第３の実施の形態］
本実施の形態では、上記の第１、第２の実施の形態の機能に加え、キーワード間関係グラフの構築、及び、キーワード間関係グラフのノード選択によるキーワード列の追加・削除処理について説明する。
【００５３】
図６は、本発明の第３の実施の形態における開発ドキュメント間トレースリンク作成支援装置の構成例を示す。
【００５４】
図６の開発ドキュメント間トレースリンク作成支援装置１００Ｂは、図１のユーザインタフェース部１にキーワードグラフ表示部１３を加え、記憶装置３に図１のキーワード表３３に代えてキーワード間関係グラフ３４が格納され、文書群解析部４に、図１のキーワード抽出部４２に代えて、キーワード間関係グラフ構築部４４が設けられている。
【００５５】
＜キーワードグラフ構築処理＞
ユーザインタフェース部１のキーワードグラフ表示部１３に表示されるキーワードグラフは、記憶装置３のキーワード間関係グラフ３４から読み出される。キーワード間関係グラフ３４の構成方法については特に限定しないが、キーワード間関係グラフ構築部４４により、検索対象及び被検索対象文書をコンピュータにより解析することで得てもよいし、知識を有する人が手動で構築してもよい。
【００５６】
ユーザインタフェース部１のキーワードグラフ表示部１３が、キーワード間関係グラフ３４からキーワードグラフを構築する処理について図７のフローチャートを用いて説明する。
【００５７】
キーワード間関係グラフ３４は、キーワードまたはキーワード分類をノードとする有向グラフであり、主従関係にあるキーワード間をつなぐ有向のエッジと、キーワード分類とその分類に属するキーワードをつなぐエッジからなる。
【００５８】
以後、キーワードを示すノードを「キーワードノード」、キーワード分類を示すノードを「キーワード分類ノード」と記す。なお、キーワードは複数の分類に属していてもよい。
【００５９】
キーワードグラフ表示部１３は、記憶装置３からキーワード間関係グラフ３４を読み込み、キーワード間関係グラフからキーワード分類ノードとキーワード分類ノードに接続するエッジを除いたキーワードグラフを構築し（ステップ３１０）、表示する（ステップ３２０）。ユーザは表示されたキーワードグラフから検索キーワード選択し（ステップ３３０）、図５のステップ２６０の処理（選択されたキーワードが検索キーワード列に含まれるかの判断）に移行する。
【００６０】
また、請求項４の目的のためには、キーワード分類ノードはなくてもよい。
【００６１】
ユーザは、表示されたキーワードのグラフのノードを選択することでキーワードを選択することができる（ステップ３３０）。これ以降の処理は、図５のステップ２６０以降の処理と同様であるので、その説明を省略する。
【００６２】
［第４の実施の形態］
本実施の形態では、第１〜第３の実施の形態の機能に加えて、キーワード分類グラフの構築及び、キーワード分類グラフのノード選択によるキーワード列の追加・削除を行う機能について述べる。
【００６３】
図８は、本発明の第４の実施の形態における開発ドキュメント間トレースリンク作成支援装置の構成例を示す。
【００６４】
図８に示す開発ドキュメント間トレースリンク作成支援装置１００Cは、図１のユーザインタフェース部１にキーワード分類グラフノード表示部１４が追加され、図１の問い合わせ実行部２にキーワード分類グラフ再構成部２３とキーワード分類グラフ構築部２４が加えられている。記憶装置３と文書解析部４の構成は、第３の実施の形態における図６の構成と同様である。
【００６５】
図８に示す構成では、ユーザは、キーワード分類グラフノード表示部１４によって表示されたグラフノード列からの選択によってキーワードを設定することができる。
【００６６】
以下に、キーワード分類グラフ構成部２３の処理を説明する。
【００６７】
＜キーワード分類グラフ構築処理＞
キーワード分類グラフは、最大でキーワード分類の数だけノードを持つ有向グラフであり、初期状態では、全てのノードがキーワード分類ノードである。
【００６８】
キーワード分類グラフは、問い合わせ実行部２のキーワード分類グラフ再構成部２３により、キーワード分類ノードからキーワードノードへ置き換えられる。
【００６９】
問い合わせ実行部２のキーワード分類グラフ構築部２４は、記憶装置３のキーワード間関係グラフ３４から、キーワード分類をノードとする有向グラフを構成し、キーワード分類グラフとする。
【００７０】
キーワード分類グラフの構成方法を以下に示す。
【００７１】
あるキーワード分類ノードと、そのキーワード分類ノードに接続されたキーワードノードから出て行くエッジの頭キーワードノードに接続されたキーワード分類ノードがあるとき、全てのキーワード分類ノードと、頭キーワードノードに接続されたキーワード分類ノードの組み合わせを抽出し、各組み合わせに含まれる２ノードの前者を「尾ノード」、後者を「頭ノード」とするエッジを組み合わせの分だけ得る。その例を図９に示す。
【００７２】
以上により、全てのキーワード分類ノードと上記のエッジからなるグラフを構成する。
【００７３】
キーワード分類ノードには、キーワードまたはキーワード分類をノードとする有向グラフでそのキーワード分類に接続するキーワードのリストを属性として付加する。
【００７４】
次に、上記で構築されたキーワード分類グラフをユーザインタフェース部１を介して入出力装置０に表示する動作を説明する。
【００７５】
図１０に、キーワード分類グラフ表示のフローチャートを示す。
【００７６】
キーワード分類グラフ構築部２４は、初期表示用のキーワード分類グラフを構築し、キーワード分類グラフノード表示部１４に出力する（ステップ４１０）。キーワード分類グラフノード表示部１４は、そのキーワード分類グラフを表示する（ステップ４２０）。または、キーワード分類グラフ再構成部２３で再構成された分類グラフ（ステップ４６０）を表示する（ステップ４２０）。ユーザは表示されたキーワード分類グラフのいずれかのノードを選択することができる。ユーザが選択したノードがキーワードノードのときは（ステップ４７０）、図５のステップ２６０以降の処理と同様であるので、その説明を省略する。
【００７７】
ユーザが選択したノードがキーワード分類ノードのとき（ステップ４３０）、そのキーワード分類ノードが属性として持つキーワード列を表示し（ステップ４４０）、ユーザに選択させる（ステップ４５０）。キーワード分類ノードとユーザが選択したキーワードをもとにキーワード分類グラフ再構成部２３がキーワード分類グラフを再構成する（ステップ４６０）。
【００７８】
キーワード分類グラフ再構成部２３は、キーワード分類ノードとキーワードノードのペアの列と、キーワード間関係グラフを入力として、キーワード分類グラフを構成する。
【００７９】
再構成されるグラフは、図１１に示すように、キーワード間関係グラフ３４のキーワード分類ノードのうち、ペアの列に含まれるキーワード分類ノードから、キーワード分類ノードと組み合わされたキーワードノード以外のノードと接続するエッジを削除したグラフをもとに、キーワード分類グラフを構成した上で、ペア列に含まれるキーワード分類ノードを、キーワード分類ノードと組み合わされたキーワードノードに置き換えたものである。
【００８０】
このとき、置き換えたキーワードノードのいずれへのパスがないキーワード分類ノードとそのノードに接続するエッジは削除してもよい。
【００８１】
＜キーワード間関係グラフ構築処理＞
次に、キーワード間関係グラフを文書群３２に含まれる表から自動的に生成する方法について述べる。このときのキーワード間関係グラフ構築部４４内部の構成を図１２に示し、グラフ構築の流れを図１３に示す。
【００８２】
キーワード間関係グラフ構築部４４は、表抽出部４４１、見出し行識別部４４２、一覧表判定部４４３、見出し主従関係判定部４４４、グラフ構成部４４５、グラフ合成部４４６を有する。
【００８３】
表抽出部４４１は文書群３２から表を抽出し（ステップ６１０）、分析する。本発明で分析する対象は、先頭に見出し行があり、値行が続く図１４に代表されるような表である。表抽出部４４１は、解析対象文書群から表を抽出する。表はセルの列からなる行の列である。見出し識別部４４２は、抽出された表の見出し行を識別する（ステップ６２０）。通常、表の１行目を見出し行と見做す。但し、図１５に示すように、１行目のセルにした行のセルと連結したセルがあるときは、連結セルの最下行を見出し行と見做す。これらは１行目に含まれるセルの最大の高さをnとしたとき、n行目を見出し行と見做すことで一般化できる。
【００８４】
一覧表判別部４４３は、抽出した表が一覧表であるか否かを判別する。例えば、図１６に示す表は一覧表とは認められない。このような表を、見出し識別部４４２が見出し行と見做した行を元に識別する。このような表で、見出し行と見做された行の多くは、次にあげる特徴があることを利用する。
【００８５】
・値が含まれる；
・値が隣り合うセルに連続しては出現しない；
・値は異なるが他の部分が一致する見出し行（と見做された行）が他の表に存在する；
上記の特徴を持つ見出し行を次の手順により見つける。図１７に一覧表か否かの判定の手順を示す。便宜上、見出し行と見做された行の各セルは値であるかもしれないものも含めて見出しという。
【００８６】
ステップ７１０）  一覧表判別部４４３は、処理済のパターン集合を作り「集合１」とする。
【００８７】
ステップ７２０）  同じパターンを持つ見出し行の集合からなる集合を作り「集合２」とする。
【００８８】
ステップ７３０）  「集合２」のうち、パターンが「集合１」の要素でないものの中で最大のものを「集合３」とする。ここで、次の条件を満たす見出し行の集合は同じパターンを持つという。
【００８９】
・集合に属する全ての見出し行で、見出しの数が等しい。
【００９０】
・集合に属する全ての見出し行の最左の見出しが等しい。
【００９１】
・ある同じ位置に異なる見出しがあるとき、その左隣りの見出しは全ての見出しで等しい。
【００９２】
・集合に属する少なくとも一つの見出し行の一つの見出しは、他のいずれの見出し行の同じ位置の見出しと異なる。
【００９３】
また、上記の条件を満たす全ての見出しで、同じ位置かつ同じ見出しであるもの、位置と見出しのペアの集合を「パターン」と呼ぶ。
【００９４】
ステップ７４０）  「集合３」が存在しない（「集合２」のパターンのすべてが「集合１」の要素である）または、「集合３」の要素数が１であるときは、判定処理を終了する。
【００９５】
ステップ７５０）  「集合３」を「集合１」に追加する。
【００９６】
ステップ７６０）  「集合３」の各見出し行から全ての見出し行で同じ位置かつ同じ見出しのセルを取り除いた、残りのセルからなる集合を作り「集合４」とする。
【００９７】
ステップ７７０）  「集合４」の要素数をa、「集合４」の要素のうち、文書群に含まれる表の見出し行より下のセルに一致するか、特定の文字パターンにマッチする見出しの数をbとする。
【００９８】
ステップ７９０）  b/ａがある値（例えば、2/3）よりも大きいとき、これらの見出し行を持つ表は、一覧表でないと判定する。
【００９９】
ステップ７Ａ０）  「集合２」の各要素から「集合３」に含まれる要素を削除し、ステップ７３０の処理に戻る。
【０１００】
次に、図１２のキーワード間関係グラフ構築部４４の見出し主従関係判定部４４４について説明する。
【０１０１】
見出し主従関係判定部４４４は、一覧表に含まれる列見出しの主従関係を判定する。
【０１０２】
見出し主従関係判定部４４４は、同一の見出し行を持つ表を、先頭の表以外の見出し行を除き縦に連結した表を、一つの表として扱う。表中の特定のパターン（例：見出しが「項番」、「備考」にマッチする、値が全て数値である、値に句読点を含むなど）にマッチする見出しとその列は存在しないものとして扱ってもよい。
【０１０３】
次に、値を同じ列の見出しとリンクする（図１８）。一つの見出しの列が複数の列に分割されているときは、分割された数だけ見出しがあるものとして扱う（図１９）。
【０１０４】
次に、見出しの主従関係を次の基準で判断する（図２０）。
【０１０５】
・まず、見出しを次の規則に従って上下左右の２次元に並べる。
【０１０６】
−表の中で、リンクされた値が最も少ない順に左から並べる。
【０１０７】
−リンクされた値が同数の見出しは、表の中でより左にあるものが下に、より右にあるものが上になるように上下に並べる。
【０１０８】
・最下段の見出しで、隣り合う二つの見出しの左を主、右を従とする。
【０１０９】
・その他の見出しは、同じ列の最下段の見出しを主、上にある見出しを従とする。
【０１１０】
キーワード間関係グラフ構築部４４のグラフ構成部４４５は、値と見出しのリンクと、値にリンクされた見出しの主従関係に基づき生成された同じ列の値とのリンクを合成し、値と見出しをノードとするグラフを構成する。
【０１１１】
グラフ構成部４４５は、まず、表中の値と見出しをノードとするグラフを次の手順で構成する。
【０１１２】
・表の各値及び見出しをノードとする。
【０１１３】
・見出しと値のリンクをエッジとする。
【０１１４】
・同じ列で、リンクする見出しが主従関係にある値同士をリンクしエッジとする（図２１）。
【０１１５】
・特定のパターンにマッチする値（英数字、空文字列、ハイフンのみなど）があるときは、その列に限り、その値とその値がリンクする見出しと主従関係にある見出しにリンクした同列の値をリンクする代わりに、その値にリンクする見出しが従属する見出しと、その値にリンクする見出しに従属する見出しとの間に主従関係があると見做して、これら見出しとリンクされた列の値をリンクし、エッジとしてもよい。
【０１１６】
［実施例］
以下に、開発ドキュメント間トレースリンク生成支援装置１００の処理を具体的に説明する。
【０１１７】
要件定義書のある箇所に関連する外部設計の検索を例に説明する。
【０１１８】
図２２に示す文書群があったとき、記憶装置３の文書木３１は、図２３のようになる。なお、説明の簡略化のため、本文は無視して考える。
【０１１９】
また、キーワード間関係グラフ３４は、図９の上に示すグラフを管理しているものとする。キーワード分類グラフ構築部２４は、図９の（ａ）に示すグラフから同図（ｂ）に示すキーワード分類グラフを構成する。文書木３１の各ノードに関連付けるキーワードは、キーワード関連グラフのキーワードノードの中から一定の基準（例えば、当該文書木３１に含まれるキーワード）のもとに選択する。
【０１２０】
ユーザインタフェース部１は、問い合わせ実行部２から文書木とキーワード分類グラフを受信し、図２４のように表示する。
【０１２１】
節「ユーザ情報の登録」に関連する外部設計を木構造を利用して検索する手順は以下の通りである。図２５に検索実行の例を示す。
【０１２２】
（１）ユーザが「ユーザ情報の登録」ノードを選択する。
【０１２３】
（２）リンク元指定部１２の「ユーザ情報の登録」ノード付近にこのノードに関連付けられたキーワードを表示する。前述の基準によれば、「ユーザ情報の登録」ノードに関連付けられたキーワードは「ユーザ情報」と「登録」である（図２５（２））。
【０１２４】
（３）ユーザが、キーワード「ユーザ情報」「登録」を選択する（図２５（３））。
【０１２５】
（４）選択されたキーワードは、リンク先候補検索部２１に送信される。
【０１２６】
（５）リンク先候補検索部２１は、キーワードに適合する文書木３１中のノードを検索する。ここでは、「適合条件１」からノード「ユーザ情報の登録」と「１．ユーザ情報登録画面」が、「適合条件２」からノード「登録機能」が適合する。
【０１２７】
（６）適合した３節｛「ユーザ情報の登録」「１．ユーザ情報登録画面」「登録機能」｝を検索結果として、リンク先候補検索結果表示部１１に返却する。
【０１２８】
仮に、本方式によらずにノード毎にANDでマッチさせると、ノード「登録機能」を漏らしてしまう。
【０１２９】
（７）リンク先候補検索結果表示部１１は検索結果を入出力装置０に表示する。検索結果は適合ノードを強調表示するなど、適合しないノードと区別がつくように表示する（図２５（７））。
【０１３０】
グラフを利用して、節「ユーザ情報の登録」に関連するキーワードを探索する例を示す。
【０１３１】
図９に示すキーワード分類グラフの「情報」ノード（クラスノード）で「ユーザ情報」を選択する。キーワード分類グラフ再構成部２３は、「情報」ノードを、「ユーザ情報」ノードに書き換え、グラフを再構成し、図１１の（１）に示すグラフを得る。同様に「操作」、「画面」の各ノードで「登録」、「ユーザ登録画面」で置き換え、グラフを再構成する。「ユーザ登録画面」の「遷移先」ノードのキーワード「確認画面」は、節「ユーザ情報の登録」に関連するキーワードであることがわかる（図１１（４））。
【０１３２】
さらにキーワード分類グラフ構築の例を示す。
【０１３３】
図２６の（１）から（６）に示す６つの表を含む文書群３２があるとする。
【０１３４】
文書群解析部４のキーワード間関係グラフ構築部４４の表抽出部４４１は、文書群３２からこれらのグラフを抽出する。
【０１３５】
＜見出し識別＞
次に、見出し行識別部４４２がそれぞれのグラフから見出しを識別する。それぞれのグラフとも１行目の高さは１であるので、各グラフの見出し行は１行目である。
【０１３６】
＜一覧表判定＞
次に、一覧表判定部４４３は、各表が一覧表であるか否かを判定する。ここでは、一覧表であるか否かの閾値を2/3とした例を示す。６つの表の中で、同じパターンの見出しの集合であることを満たすのは、（３）、（４）を要素に持つ集合のみである。この集合でa=b=4（処理A11,A1、処理B21,B2）である。したがって、b/a>2/3を満たすので、表（３）及び表（４）は一覧表ではないと判定する。
【０１３７】
＜列見出し主従関係判定＞
次に、列見出し主従関係判定部４４４が見出しの主従関係を判定する。例として、ここでは、見出しが「項番」、「備考」にマッチする列は存在しないものとして扱う。図２６の（１）は見出し「機能ブロック」と同じ列の値が２セル、「機能」と同じ列の値が４セルあるため、「機能ブロック」と「機能」は主従の関係にあると判定する。同様に、図２６の（２）は「ユースケース」と「関連機能」は主従の関係にあると判定する。図２６の表（５）と表（６）は同じ見出し行を持つため２つの表を連結する。連結後の表では「機能」と同じ列の値が２セル、「処理」と同じ列の値が５セルあるため、「機能」と「処理」は主従の関係にあると判定する。
【０１３８】
＜グラフ構成＞
次に、グラフ構成部４４５は、値と見出しをノードとする表単位のグラフを次の手順（図２７〜図２９）で構成し、最後に同一キーワード、同一キーワードの分類のノードをそれぞれ一つのノードに合成し、一つのグラフとする（図３０）。
【０１３９】
・各表の値と見出しをそれぞれノードとする。
【０１４０】
・値から出て、その値と同じ列の見出しに入るエッジを追加する。
【０１４１】
・同じ行にある値について、主従関係の主見出しと同じ列の値から出て、主従関係の従見出しと同じ列の値に入るエッジを追加する。
【０１４２】
なお、本発明は、図１〜図３の開発ドキュメント間トレースリンク作成支援装置１００の各構成要素の動作をプログラムとして構築し、開発ドキュメント間トレースリンク作成支援装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【０１４３】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１４４】
０  入出力装置
１  ユーザインタフェース部
２  問い合わせ実行部
３  記憶装置
４  文書群解析部
１０  キーワード入力部
１１  リンク先候補検索結果表示部
１２  リンク元指定部
１３  キーワードグラフ表示部
１４  キーワード分類グラフノード表示部
２１  リンク先候補検索部
２２  検索キーワード候補検索部
２３  キーワード分類グラフ再構成部
２４  キーワード分類グラフ構築部
３１  文書木
３２  文書群
３３  キーワード表
３４  キーワード間関係グラフ
４１  文書木構築部
４２  キーワード抽出部
４４  キーワード間関係グラフ構築部
１００  開発ドキュメント間トレースリンク作成支援装置
４４１  表抽出部
４４２  見出し行識別部
４４３  一覧表判定部
４４４  見出し主従関係判定部
４４５  グラフ構成部
４４６  グラフ合成部
【図１】
2015162004.tif 000003
【図２】
2015162004.tif 000004
【図３】
2015162004.tif 000005
【図４】
2015162004.tif 000006
【図５】
2015162004.tif 000007
【図６】
2015162004.tif 000008
【図７】
2015162004.tif 000009
【図８】
2015162004.tif 000010
【図９】
2015162004.tif 000011
【図１０】
2015162004.tif 000012
【図１１】
2015162004.tif 000013
【図１２】
2015162004.tif 000014
【図１３】
2015162004.tif 000015
【図１４】
2015162004.tif 000016
【図１５】
2015162004.tif 000017
【図１６】
2015162004.tif 000018
【図１７】
2015162004.tif 000019
【図１８】
2015162004.tif 000020
【図１９】
2015162004.tif 000021
【図２０】
2015162004.tif 000022
【図２１】
2015162004.tif 000023
【図２２】
2015162004.tif 000024
【図２３】
2015162004.tif 000025
【図２４】
2015162004.tif 000026
【図２５】
2015162004.tif 000027
【図２６】
2015162004.tif 000028
【図２７】
2015162004.tif 000029
【図２８】
2015162004.tif 000030
【図２９】
2015162004.tif 000031
【図３０】
2015162004.tif 000032