(57)【要約】【課題】情報ノード間の関係リンクの正当性検査を行うことができるソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムを提供する。【解決手段】ソフトウェア資産活用装置１００は、抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持するリポジトリ４と、第１の情報ノードを起点として、第１の情報ノードと他の情報ノードとの間に設定されている関係リンクを順に辿ることにより、関係リンクの誤りを検出する情報分析部７とを有する。【選択図】図１−１
2014149683.tif 000002
【特許請求の範囲】
【請求項１】
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持するリポジトリと、
第１の情報ノードを起点として、前記第１の情報ノードと他の前記情報ノードとの間に設定されている前記関係リンクを順に辿ることにより、関係リンクの誤りを検出する情報分析部とを有する
ソフトウェア資産活用装置。
【請求項２】
前記関係リンクには、前記抽象度にかかる関係性を示す有向の具体化関係リンクと、前記詳細度にかかる関係を示す有向の詳細化関係リンクと、の少なくとも２種類が存在し、
前記情報分析部は、前記第１の情報ノードを起点として、前記具体化関係リンク又は前記詳細化関係リンクを順方向に辿って到達する第２の情報ノードを取得し、
前記第２の情報ノードを起点として、前記具体化関係リンク又は前記詳細化関係リンクを逆方向に辿って到達する第３の情報ノードを取得し、
前記第１の情報ノードと前記第３の情報ノードが一致するか否かを検査することにより、関係リンクの誤りを検出する
請求項１記載のソフトウェア資産活用装置。
【請求項３】
前記第３の情報ノードと、前記第１の情報ノードとは、同一の前記抽象度及び前記詳細度に区分けされているものである
請求項２記載のソフトウェア資産活用装置。
【請求項４】
前記関係リンクには、前記抽象度にかかる関係性を示す有向の具体化関係リンク又は前記詳細度にかかる関係を示す有向の詳細化関係リンクと、上下構造にかかる関係性を示す有向の下位関係リンクと、の少なくとも２種類が存在し、
前記情報分析部は、前記具体化関係リンク又は前記詳細化関係リンクにより関係付けられた前記第１の情報ノード及び第４の情報ノードをそれぞれ下位として、前記下位関係リンクにより前記第１の情報ノード及び前記第４の情報ノードに関係付けられた第５の情報ノード及び第６の情報ノードを抽出し、
前記第５の情報ノードと前記第６の情報ノードとの間に、前記第１の情報ノードと前記第４の情報ノードの間に設定された前記関係リンクと同種類の前記関係リンクが設定されているか否かを検査することにより、関係リンクの誤りを検出する
請求項１乃至３いずれか１項記載のソフトウェア資産活用装置。
【請求項５】
前記情報分析部は、前記第１の情報ノードを起点として、同一種類の関係リンクを順方向に辿って到達する第７の情報ノードが、前記第１の情報ノードと同一であるか否かを検査することにより、関係リンクの誤りを検出する
請求項１乃至４いずれか１項記載のソフトウェア資産活用装置。
【請求項６】
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスについて、
第１の情報ノードを起点として、前記第１の情報ノードと他の前記情報ノードとの間に設定されている前記関係リンクを順に辿ることにより、関係リンクの誤りを検出する情報分析ステップを有する
ソフトウェア資産活用方法。
【請求項７】
前記関係リンクには、前記抽象度にかかる関係性を示す有向の具体化関係リンクと、前記詳細度にかかる関係を示す有向の詳細化関係リンクと、の少なくとも２種類が存在し、
前記情報分析ステップは、前記第１の情報ノードを起点として、前記具体化関係リンク又は前記詳細化関係リンクを順方向に辿って到達する第２の情報ノードを取得し、
前記第２の情報ノードを起点として、前記具体化関係リンク又は前記詳細化関係リンクを逆方向に辿って到達する第３の情報ノードを取得し、
前記第１の情報ノードと前記第３の情報ノードが一致するか否かを検査することにより、関係リンクの誤りを検出する
請求項６記載のソフトウェア資産活用方法。
【請求項８】
前記関係リンクには、前記抽象度にかかる関係性を示す有向の具体化関係リンク又は前記詳細度にかかる関係を示す有向の詳細化関係リンクと、上下構造にかかる関係性を示す有向の下位関係リンクと、の少なくとも２種類が存在し、
前記情報分析ステップは、前記具体化関係リンク又は前記詳細化関係リンクにより関係付けられた前記第１の情報ノード及び第４の情報ノードをそれぞれ下位として、前記下位関係リンクにより前記第１の情報ノード及び前記第４の情報ノードに関係付けられた第５の情報ノード及び第６の情報ノードを抽出し、
前記第５の情報ノードと前記第６の情報ノードとの間に、前記第１の情報ノードと前記第４の情報ノードの間に設定された前記関係リンクと同種類の前記関係リンクが設定されているか否かを検査することにより、関係リンクの誤りを検出する
請求項６又は７記載のソフトウェア資産活用方法。
【請求項９】
前記情報分析ステップは、前記第１の情報ノードを起点として、同一種類の関係リンクを順方向に辿って到達する第７の情報ノードが、前記第１の情報ノードと同一であるか否かを検査することにより、関係リンクの誤りを検出する
請求項６乃至８いずれか１項記載のソフトウェア資産活用方法。
【請求項１０】
請求項６乃至９いずれか１項記載のソフトウェア資産活用方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムに関し、特に情報ノード間の関係リンクの正当性検査手法に関する。
【背景技術】
【０００２】
企業等が情報システムの設計、構築、運用を行うためには、様々な情報、例えば、情報システム（以下、単にシステムと呼ぶ）が利用される業務の内容（業務プロセス）を定義づける情報（業務定義情報）、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報等が必要である。これらの情報を、総じてソフトウェア資産と呼ぶ。
【０００３】
従来より、このようなソフトウェア資産を管理、活用するための種々のツールが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７６９１１号公報
【特許文献２】国際公開第２００９／０１１０５６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
企業等は、長期にわたりシステムを利用してゆく中で、企業等の活動の目的等に鑑み、システムの拡張や改造を積み重ねることが多い。その結果、システムは、新旧様々なソフトウェア、ハードウェア及び開発技術が混在して複雑に絡み合った状態となり、ソフトウェア資産全体の把握が困難な状況となる。このことは、システムの拡張や改造等（リニューアル）を難しくしており、企業等は、活動の目的や要求の変化に合わせた最適かつ最善なシステムの変更を迅速に行えず、ビジネス機会を逃す等の問題に直面している。
【０００６】
従来のソフトウェア資産管理ツールは、かかる問題に十分対応できていない。その要因は、例えば以下のとおりである。
【０００７】
業務プロセスと、システムの実装（例えば設計、ソースコード、運用仕様等）との関係は、必ずしも全て文書として明文化されているとは限らず、暗黙知として形成されている場合が多い。これらの暗黙知は、従来のソフトウェア管理ツールでは管理することができない。そのため、システムリニューアルにあたり、例えば改造による業務等への影響範囲を特定するための調査に多大な時間がかかる。さらに、事前に影響範囲を洗い出すことができない場合には、システムリニューアル終盤の評価フェーズで問題が検出されることになり、無駄な時間やコストが発生する。
【０００８】
また、システムの設計仕様と、システムの実装（例えばソースコード、運用仕様等）とが一致していない、あるいは設計書自体が存在しない場合がある。このような場合、システムリニューアルにあたり、ソースコードを直接解読して改造すべき箇所や改造による影響範囲を特定する作業が必要となり、多大な時間や費用を要する。
【０００９】
仮にシステムリニューアルに成功したとしても、従来のソフトウェア管理ツールは、その過程で得られた情報を、再利用可能あるいはメンテナンス可能な形式で保管しておくための有効な手段を用意していない。そのため、後に再びシステムリニューアルが必要になった場合に再度同様の問題が発生する可能性が高い。したがって、長期的に見て、リニューアルコストを十分抑制できていない。
【００１０】
例えば、従来のソフトウェア資産ツールは、既存の大規模システムにかかるソフトウェア資産を管理しようとする場合、すなわち既存の大規模システムを棚卸しする場合、システムの全体像を把握することが困難であることに起因して、情報登録の精度が悪くなりがちである。そのため、ソフトウェア資産の効果的な活用が困難であった。
【００１１】
さらに、従来のソフトウェア管理ツールにおいては、登録する情報が増えるにつれ、新たに登録する情報と、既に登録されている情報と、の関連付けに誤り（不整合）が生じ、これを修正して情報を正規化するるまでに多くの時間や労力を要していた。なお、不整合は、例えば利用者が以下のような誤った情報間の関連付けを行うような場合に生じ得る。実際は設計書が存在しないプログラムを、存在する設計書の中で最もらしいものと誤って紐付けてしまう。ソースコードを流用した際、ソースコード中のコメントの変更漏れがあり、実際の処理内容と異なるコメントが残された場合、そのソースコードを別モジュールのものと誤解する。モジュールを更新し、かつ旧モジュールを削除せず残した場合に、新旧両モジュール残してあることを把握できず、旧モジュールと新モジュールとを取り違える。モジュール同士の依存関係を把握しきれておらず、実際は使われているモジュールを使われていないモジュールと誤解するなど。
【００１２】
本発明は、このような問題点を解決するためになされたものであり、情報ノード間の関係リンクの正当性検査を行うことができるソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るソフトウェア資産活用装置は、抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持するリポジトリと、第１の情報ノードを起点として、前記第１の情報ノードと他の前記情報ノードとの間に設定されている前記関係リンクを順に辿ることにより、関係リンクの誤りを検出する情報分析部とを有するものである。
【００１４】
本発明に係るソフトウェア資産活用方法は、抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスについて、第１の情報ノードを起点として、前記第１の情報ノードと他の前記情報ノードとの間に設定されている前記関係リンクを順に辿ることにより、関係リンクの誤りを検出する情報分析ステップを有するものである。
【００１５】
本発明に係るプログラムは、上記ソフトウェア資産活用方法を、コンピュータに実行させるためのプログラムである。
【発明の効果】
【００１６】
本発明により、情報ノード間の関係リンクの正当性検査を行うことができるソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムを提供できる。
【図面の簡単な説明】
【００１７】
【図１−１】実施の形態１にかかるソフトウェア資産活用装置１００の構成を示す図である。
【図１−２】実施の形態１にかかるソフトウェア資産活用装置１００の構成を示す図である。
【図１−３】実施の形態１にかかるソフトウェア資産活用装置１００の構成を示す図である。
【図２−１】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−２】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−３】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−４】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−５】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−６】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−７−１】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−７−２】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−７−３】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−８】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−１】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−２】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−３】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−４】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−５】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−６】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図２−９−７】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の管理方法を示す図である。
【図３−１】実施の形態１にかかるソフトウェア資産活用装置１００における双方向トレース検査の概念を示す図である。
【図３−２】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の概念を示す図である。
【図３−３】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の概念を示す図である。
【図３−４−１】実施の形態１にかかるソフトウェア資産活用装置１００における双方向トレース検査の動作を示す図である。
【図３−４−２】実施の形態１にかかるソフトウェア資産活用装置１００における双方向トレース検査の動作を示す図である。
【図３−５−１】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の動作を示す図である。
【図３−５−２】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の動作を示す図である。
【図３−６−１】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の動作を示す図である。
【図３−６−２】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の動作を示す図である。
【図３−７】実施の形態１にかかるソフトウェア資産活用装置１００における双方向トレース検査の例を示す図である。
【図３−８】実施の形態１にかかるソフトウェア資産活用装置１００におけるソフトウェア資産の例を示す図である。
【図３−９】実施の形態１にかかるソフトウェア資産活用装置１００におけるノードテーブル及びリンクテーブルの例を示す図である。
【図３−１０】実施の形態１にかかるソフトウェア資産活用装置１００における双方向トレース検査の例を示す図である。
【図３−１１】実施の形態１にかかるソフトウェア資産活用装置１００における双方向トレース検査の例を示す図である。
【図３−１２−１】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の例を示す図である。
【図３−１２−２】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の例を示す図である。
【図３−１３−１】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の例を示す図である。
【図３−１３−２】実施の形態１にかかるソフトウェア資産活用装置１００における下位情報間の関係リンク検査の例を示す図である。
【図３−１４−１】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の例を示す図である。
【図３−１４−２】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の例を示す図である。
【図３−１５−１】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の例を示す図である。
【図３−１５−２】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の例を示す図である。
【図３−１６−１】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の例を示す図である。
【図３−１６−２】実施の形態１にかかるソフトウェア資産活用装置１００における関係リンクの循環検査の例を示す図である。
【発明を実施するための形態】
【００１８】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。
図１−１に、本実施の形態にかかるソフトウェア資産活用装置１００の基本構成を示す。また、図１−２に、ソフトウェア資産活用装置１００のより好ましい構成を示す。ソフトウェア資産活用装置１００は、ソフトウェア資産を構成する情報を保持するためのリポジトリ４、リポジトリ４に対する情報の入力、抽出、分析等を行う処理装置３を有する。また、利用者が処理部に対する入力操作を行うための入力装置１、処理装置３の処理結果等を利用者に提示する出力装置２を備えていることが好ましい。
【００１９】
ソフトウェア資産活用装置１００は、典型的にはコンピュータであり、制御プログラムに基づいて各種処理を実行する中央制御装置、制御プログラム及びリポジトリ４等を格納する揮発性または不揮発性の記憶装置等により構成される。但し、コンピュータは物理的に単一である必要はなく、複数のコンピュータが各種処理を分散的に処理する構成としてもよい。
【００２０】
入力装置１は、利用者から処理装置３への入力インターフェースであり、例えばリポジトリ４に格納する情報を入力するための手段として機能する。例えば、キーボード、マウス、通信インターフェース等であってよい。
【００２１】
出力装置２は、処理装置３から利用者への出力インターフェースであり、各種処理結果の出力に用いられる。例えば、リポジトリ４に格納された情報を外部へ取り出すための手段として機能する。例えば、ディスプレイ、プリンタ、通信インターフェース等であってよい。
【００２２】
処理装置３は、リポジトリ４に対して情報を格納する情報入力部５、リポジトリ４内の情報を、様々な条件、形式に従って抽出する情報抽出部６、抽出した情報を所定の手法で分析する情報分析部７を有する。
【００２３】
リポジトリ４は、例えば、ソフトウェア資産を構成する情報を格納する情報保持部８、各情報に対して付与されるキーワードを保持するキーワード保持部９、ソフトウェア資産を構成する情報間の関係性に関する情報を格納するリンクテーブル１０を有する。リポジトリ４は、ソフトウェア資産活用装置１００が有する図示しない記憶装置内に設けられた、論理的な記憶手段である。
【００２４】
（リポジトリ）
ここで、図２−１乃至図２−９を用いて、リポジトリ４が、どのような概念に基づいてソフトウェア資産を管理するかについて説明する。
【００２５】
上述のように、ソフトウェア資産は様々な情報の集合であるが、これらソフトウェア資産を構成する個々の情報単位を情報ノードと呼ぶ。例えば、業務定義情報、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報等を構成する、意味を持つ情報のまとまり（情報単位）が、情報ノードである。文書化されたソフトウェア資産が存在する場合は、その文書データの全部または一部が、情報ノードの実体である。一方、文書化されていない情報についても、文書データ等の実体を有しない情報ノードを作成することができる。例えば、Ａ機能について記載した文書が存在しなくても、情報システムにＡ機能が必要である場合は、利用者はＡ機能の名称を冠した、いわば空の情報ノードを作成し、リポジトリ４に格納できる。
【００２６】
（マトリクスとブロック）
リポジトリ４は、これらの情報ノードそれぞれを、「抽象度」と「詳細度」の２つの評価基準により分類したうえで格納する。「抽象度」「詳細度」には、それぞれ複数の段階（レベル）が設けられる。情報ノードは、それら複数のレベルのいずれかに割り当てられる。すなわち、リポジトリ４は、情報ノードを、「抽象度」「詳細度」の２軸によって定義されるマトリクス上のいずれかの位置に割り当てて格納する。
【００２７】
図２−１に、本実施の形態が想定するマトリクスを例示する。この例では、マトリクスの縦軸が「抽象度」、横軸が「詳細度」を示す。「抽象度」「詳細度」は、原点から遠ざかるほど大きくなる。すなわち、より原点から離れた位置には、より抽象的又は詳細な内容を含む情報ノードが格納される。本実施の形態では、「抽象度」「詳細度」のレベルを、レベル番号によって識別することとする。すなわち、「抽象度」「詳細度」の最も小さいレベルを、レベル番号「１」と呼ぶ。以降、「抽象度」「詳細度」が大きくなるに従って、昇順のレベル番号「２」「３」・・で呼称する。
【００２８】
なお、マトリクスの縦横のサイズ（レベル数）は固定的ではなく、管理対象のソフトウェア資産の規模や複雑さ等に応じて、利用者が自由に設定する事が可能である。
【００２９】
情報ノードが割り当てられるマトリクス上の位置を、ブロックと呼ぶ。本実施の形態では、個々のブロックを「抽象度レベル番号−詳細度レベル番号」の形式で、２つの数字の組によって特定する。例えば、図２−１において、情報ノードＸが割り当てられたブロックは「１−２」である。
【００３０】
（抽象度と詳細度）
ここで、「抽象度」「詳細度」の意義について説明する。「抽象度」とは、情報ノードを、情報の内容と、システムの実装と、の依存度の強さによって分類する尺度である。例えば、業務定義情報、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報の５種類の情報ノードを、５段階の抽象度レベル１乃至５に分類する場合、実装への依存度が最も低い業務定義情報を、最も高い抽象度レベル（抽象度レベル＝５）に割り当てる。以降、実装への依存度が高まる順に、システム設計情報には抽象度レベル＝４を、ソースコードには抽象度レベル＝３、テスト仕様情報には抽象度レベル＝２、運用仕様情報には抽象度レベル＝１を割り当てる。
【００３１】
「詳細度」とは、情報ノードを、設計の詳細度によって分類する尺度である。例えば、図２−３に示すように、システム設計情報として、ＡＡ機能の概要を自然言語で記述した機能記述と、ＡＡ機能におけるデータ遷移を例えばＤＦＤ（Data Flow Diagram）等で記述したデータ関連図と、の２種類の情報ノードを、２段階の詳細度レベル１乃至２に割り当てる場合、設計の詳細度が最も高いデータ関連図を、最も高い詳細度レベル（詳細度レベル＝２）に割り当てる。一方、設計の詳細度が比較的低い機能記述には詳細度レベル＝１を割り当てる。
【００３２】
なお、リポジトリ４においては、詳細度が異なるが、同等の抽象度を有する情報ノードには同じ抽象度レベルを、抽象度が異なるが、同等の詳細度を有する情報ノードには同じ詳細度レベルを割り当てることが好ましい。
【００３３】
図２−２に、リポジトリ４を具体的に実現するためのテーブル構造の一例を示す。ソフトウェア資産活用装置１００は、例えば図示しない記憶装置上の記憶領域に、上記テーブル構造を有する情報保持部８を備えることができる。情報保持部８は、リポジトリ４に格納された情報ノードを識別するための情報名、情報ノードの位置を示すブロック、及び情報ノードの実体（情報実体。例えば文書データ等）の実際の保存場所を示す情報実体の場所、を少なくとも要素とする複数のレコードを保持できる。本実施の形態では、情報ノードの実体を、情報保持部８の外部の任意の保存場所に保存することとしている。なお、情報ノードの実体を、情報保持部８のレコード内に保持することとしても構わない。
【００３４】
（キーワード）
リポジトリ４においては、各情報ノードにキーワードを付与することができる。図２−３及び図２−４を用いて、情報ノードとキーワードとの関係について説明する。
【００３５】
図２−３は、情報保持部８の２つのブロック（１−１及び１−２）に、それぞれＡＡ、ＢＢ、ＣＣ、ＤＤという情報ノードが登録されている様子を示している。ブロック１−１に含まれる情報ノードの情報実体（例えば機能記述）と、ブロック１−２に含まれる情報ノードの情報実体（例えばデータ関連図）とでは、同様の論理構成や用語等が用いられていることが少なくないため、このような事象が生じ得る。ここで、ブロック１−１における情報ノードＡＡと、ブロック１−２における情報ノードＡＡとは、何らかの意味的な関連を有していることが多い。そこで、リポジトリ４においては、このような意味的な関連を識別するためのいわばタグとして、これらの情報ノードに対し、同一のキーワードを付与することができる。
【００３６】
図２−４に、情報ノードとキーワードとの関連づけを具体的に実現するためのテーブル構造の一例を示す。図２−４の情報保持部８は、図２−２の情報保持部８に比べ、各情報ノード（レコード）にユニークな番号が与えられ、たとえ同一情報名の情報ノードが複数存在しても、それらを識別可能に構成されている点で相違する。この例では、情報名ＡＡが２か所、ＢＢが２か所、ＣＣが２か所、ＤＤが２か所に存在している。
【００３７】
キーワード保持部９は、少なくともキーワード名と、情報番号リストとを対応付ける１以上のレコードからなるテーブルである。情報番号リストは、キーワードによって関連付けられる複数の情報ノードを、情報保持部８における番号によって特定する。
【００３８】
（関係リンク）
リポジトリ４は、個々の情報ノードの関係性に関する情報を保持することができる。この関係性を、関係リンクと称する。
【００３９】
関係リンクは、ある情報ノードと、当該情報ノードと同一ブロック、抽象度レベルのみが異なるブロック、及び詳細度レベルのみが異なるブロックに存在する他の情報ノードと、の間で設定することができる。
【００４０】
本実施の形態では、少なくとも以下の４種類の関係リンクを設定できる。同格関係は、同一の対象又は事象等を、別の目的や観点等に基づいて表現した情報ノード同士を関係づける関係リンクである。下位関係は、ある上位概念たる情報ノードと、当該情報ノードの下位概念や構成部品である情報ノードを関係づける関係リンクである。詳細化関係は、ある情報ノードと、当該情報ノードをより詳細化した情報ノードとを関係づける関係リンクである。具体化関係は、抽象的な概念を示す情報ノードと、当該情報ノードをより具体化した情報ノードとを関係づける関係リンクである。以上の他、情報ノード間でのデータの関連性や処理順序等を表現するため、任意の関係リンクを設定することもできる。
【００４１】
なお、詳細化関係は、詳細度レベルが異なる情報ノード同士で設定されても良く、同一の詳細度レベルの情報ノード同士で設定されても良い。また、具体化関係は、抽象度レベルが異なる情報ノード同士で設定されても良く、同一の抽象度レベルの情報ノード同士で設定されても良い。なお、リポジトリ４は、詳細化関係又は具体化関係が、詳細度レベル又は抽象度レベルを跨ぐものであるか否かを示すフラグを、それぞれ保持していることが好ましい。
【００４２】
図２−５は、ある仮想の企業の組織構造及び業務構造を、下位関係、及び「関連」の２つの関係リンクを用いて示したものである。ここで、「関連」とは、ある業務に関連する入出力情報を示す関係リンクであるものとする。この図は、以下の事実を示す。この企業は、「業務フロー」に関するソフトウェア資産（例えば文書化されたマニュアル等）を有する。この「業務フロー」の中には、「販売部門」にかかる業務フローが含まれる。「販売部門」の業務フローは、「受注」「在庫確認」「出荷指示」の３つの業務からなる。それぞれの業務における入出力情報は、「注文書」「製造指示」「出荷指示」である。
【００４３】
図２−６は、図２−５の関係リンクを具体的に実現するためのテーブル構造の一例である。図２−６の情報保持部８は、図２−４の情報保持部８と比較して、「出リンク」「入リンク」要素を有している点で相違する。ここで「出リンク」は、その情報ノードを始点とする関係リンクを、リンクテーブル１０（後述）で定義された番号によって特定している。また、「入リンク」は、その情報ノードを終点とする関係リンクを、リンクテーブル１０（後述）で定義された番号によって特定している。
【００４４】
なお、出リンク及び入リンク要素は、情報保持部８の構成上、必須の要素ではない。当該要素は、後述のリンクテーブル１０が有する要素と重複しており、リンクテーブル１０を情報ノードの番号で検索すれば取得することが可能である。しかしながら、実際の運用においては、リポジトリ４に登録される情報量が増加するほど、リンクテーブル１０の検索時間が増大し、ソフトウェア資産活用装置１００全体の性能に大きな影響を及ぼすことが予想される。よって、高速化の手段として、情報保持テーブルに出リンク及び入リンク要素を直接持つことは有効である。
【００４５】
リンクテーブル１０は、複数の情報ノード間に張られた関係リンクを定義、保存するためのテーブルである。リンクテーブル１０は、少なくとも番号、属性、始点情報、終点情報を要素とする、１以上のレコードを有する。番号は、関係リンクを一意に特定するための識別子である。属性は、関係リンクの種類を示す。始点情報は、関係リンクの始点となる情報ノードを、情報保持部８で定義された番号によって特定している。終点情報は、関係リンクの終点となる情報ノードを、情報保持部８で定義された番号によって特定している。
【００４６】
図２−７は、ある仮想の企業の組織構造及び業務構造を、同格関係、及び詳細化関係の２つの関係リンクを用いて示したものである。両端が矢印の線は、同格関係を示す。同格関係は、同じブロックの中で、本質的に同じ意味内容を有する情報ノード間に設定されている。片方が矢印の線は、詳細化関係を示す。この例において、詳細化関係は、詳細化レベルの異なるブロックに位置する情報ノード間に設定されている。
【００４７】
図２−８は、ある仮想の企業の組織構造及び業務構造を、具体化関係の関係リンクを用いて示したものである。片方が矢印の線は、具体化関係を示す。この例において、具体化関係は、抽象化レベルの異なるブロックに位置する情報ノード間に設定されている。
【００４８】
図２−９は、ある仮想の企業の組織構造及び業務構造に関するソフトウェア資産全体を、リポジトリ４に登録した例を示している。上述の図２−５、図２−７、図２−８は、この図の一部分を抜き出したものである。
【００４９】
利用者は、所定のユーザインタフェースを介し、入力装置１を利用して、処理装置３に、情報ノード、キーワード、関係リンクにかかるデータを入力する。処理装置３の情報入力部５は、これらの入力を受け付けると、リポジトリ４の情報保持部８、キーワード保持部９、リンクテーブル１０等に、それぞれデータを格納する処理を行う。
【００５０】
ここで、リポジトリ４に登録される情報が、体系的で、有効な分析に資するものであるためには、情報ノード同士を接続する関係リンクが、矛盾や欠落のないものであることが重要である。
【００５１】
そのため、本実施の形態における情報分析部７は、情報ノードの属するブロックに着目して、関係リンクをトレースする、すなわち関係リンクに矛盾や欠落はないかの正当性検査を、機械的に行う機能を有する。
【００５２】
図３−１乃至図３−３を用いて、本実施の形態で情報分析部７が実行する３つの正当性検査の概念について説明する。
【００５３】
関係リンクの双方向トレース検査（図３−１）：ある情報ノードを起点として、詳細化関係、及び具体化関係の関係リンクを順方向に辿り（トレース）、関係リンクで接続された情報ノードを抽出してゆく。その後、抽出された情報ノードを起点として、詳細化関係、及び具体化関係の関係リンクを逆方向にトレースし、抽出される情報ノードが、最初の情報ノードとずれていないかを検査する。ここで、最初の情報ノードと、最後に抽出されたノードが一致していれば、トレースした関係リンクは正しく設定されたものであることがわかる。一方、一致していなければ、トレースした関係リンク内のどこかに、矛盾や欠落がある可能性がある。
【００５４】
例えば、図３−１において、情報ノードＡを起点とした場合、まず詳細化関係リンク及び具体化関係リンクを順方向に、Ａ→Ｂ→Ｃ→Ｃ'の順に辿る。その後、Ｃ'から、詳細化関係リンク及び具体化関係リンクを逆方向に、Ｃ'→Ｂ'→Ｘ'→Ｘの順に辿る。ＸはＡと同じブロックに属するため、ここでトレースを終了する。Ｘ≠Ａであるから、この場合、トレース経路Ａ→Ｂ→Ｃ→Ｃ' →Ｂ'→Ｘ'→Ｘのどこかに、矛盾や欠落が存在すると推定できる。
【００５５】
下位情報間の関係リンク検査（図３−２）：起点となる情報ノードの下位関係にある情報ノードが、起点となる情報ノードと関係リンクが設定されていない他の情報ノードの下位関係にある情報ノードと、関係付けられていないかを検査する。ここで、下位情報ノード同士に関係リンクが設定されているのに、それらの上位情報ノード間に関係リンクが設定されていなければ、下位情報ノード間の関係リンクに誤りがあるか、上位情報ノード間に関係リンクの欠落がある可能性がある。
【００５６】
例えば、図３−２において、情報ノードＢ→Ｅ間には詳細化関係リンクが設定されているが、Ｂ、Ｅの上位関係にある情報ノードＡ→Ｄ間には、同じ関係リンクは設定されていない。この場合、Ｂ→Ｅが誤りであるか、Ａ→Ｄの設定漏れであると推定できる。
【００５７】
関係リンクの循環検査（図３−３）：単方向の関係リンク、例えば詳細化関係、具体化関係、下位関係の関係リンクに、循環が生じていないかを検査する。ある情報ノードを起点としてこれらの関係リンクをトレースし、起点の情報ノードに達するならば、循環が生じている。この場合、トレースした関係リンク内のどこかに、矛盾がある可能性がある。
【００５８】
図１−３に、これらの３つの検査を実行する情報分析部７のより詳細な構成を示す。本実施の形態における情報分析部７は、関係リンクの双方向トレース検査を実行する双方向トレース検査部７１１、下位情報間の関係リンク検査を実行する下位情報検査部７１２、関係リンクの循環検査を実行する循環検査部７１３からなる。これらの３つの検査は、いずれも関係リンクのトレースを実行する。そこで、上記３つの検査部はいずれも関係リンクトレース部７２を利用する。関係リンクトレース部７２は、指定された範囲、指定された終了条件のもとで、指定された情報ノードと関係リンクが設定されている情報ノードを順々に辿っていき（トレース）、所定の処理を実行する機能を有する。以下、特に言及のない限り、関係リンクのトレースに係る処理は、関係リンクトレース部が実行するものとする。
【００５９】
つづいて、図３−４乃至図３−６のフローチャートを用いて、ソフトウェア資産活用装置１００が、リポジトリ４に格納されたソフトウェア資産の関係リンク正当性検査を実行する際の動作について説明する。本実施例において、リポジトリ４は、図３−８に示すような構造のソフトウェア資産を予め格納しているものとする。具体的には、リポジトリ４は、図３−９に示すようなノードテーブル（情報保持部７）及びリンクテーブル１０により、上記ソフトウェア資産を保持している。また、図３−７は、本実施例の正当性検査により判明した関係リンクの矛盾や欠落を修正したソフトウェア資産の状態を示している。
【００６０】
（関係リンクの双方向トレース検査）
まず、図３−４のフローチャートを用いて、関係リンクの双方向トレース検査について説明する。
【００６１】
双方向トレース検査部７１１は、トレースの起点となる情報ノード（開始情報ノード）、及びトレース範囲（トレースを行う詳細度レベル、抽象度レベルの上限）を設定する。
【００６２】
この設定は、情報入力部１に対する利用者の入力に応じて行うことができる。あるいは、例えば新規に情報ノードが登録された際等の所定のトリガに応じて、機械的に、当該新規な情報ノード等の特定の情報ノードを開始情報ノードとして設定してもよい。また、トレース範囲は、ソフトウェア資産の規模や、システムの負荷状況等に応じて、任意に設定することができる。一般に、トレース範囲が大きいほど、処理時間及び処理負荷は増大するが、より多くの関係リンクの矛盾や欠落を発見しやすい。一方、トレース範囲が小さいほど、利用者にとって、関係リンクの矛盾や欠落が存在する位置を発見することが容易となる。そこで、例えばはじめめはある程度大きなトレース範囲で正当性検査を実施し、そのトレース範囲内に矛盾や欠落が存在することが分かった場合、トレース範囲を徐々に縮小するなどの処理を行うことにより、矛盾や欠落の存在位置を絞り込む等の応用も可能である。
【００６３】
（Ｓ１−１）双方向トレース検査部７１１は、まず、開始情報ノードを起点として、詳細化関係又は具体化関係の関係リンクを順方向、すなわち詳細化又は具体化する方向に辿り、到達した情報ノードを抽出、記録する。
【００６４】
Ｓ１−１における順方向トレースの具体的動作（Ｓ２）は以下の通りである。まず、双方向トレース検査部７１１は、開始情報ノードをカレント情報ノードに設定する。
【００６５】
（Ｓ２−１）双方向トレース検査部７１１は、ノードテーブルより、カレント情報ノードの「出リンク」を参照して、詳細化関係又は具体化関係の関係リンクを順方向にひとつ辿って得られる情報ノードを抽出する。なお、検査範囲外の情報ノード、及び既に抽出済みの情報ノードは、抽出対象から除外する。
【００６６】
（Ｓ２−２）抽出した情報ノードを起点として、さらにトレースを行う。双方向トレース検査部７１１は、抽出した情報ノードをカレントノードとして、Ｓ２を再帰的に実行する。
【００６７】
（Ｓ１−２）つづいて、双方向トレース検査部７１１は、抽出した情報ノードそれぞれを起点として、詳細化関係又は具体化関係の関係リンクを逆方向、すなわち簡略化又は抽象化する方向に辿り、開始情報ノードと同じブロックの情報ノードに到達した段階で、トレースを終了する。そして双方向トレース検査部７１１は、このとき到達した情報ノードが、開始情報ノードと一致しているかを検査する。
【００６８】
Ｓ１−２における逆方向トレースの具体的動作（Ｓ３）は以下の通りである。まず、双方向トレース検査部７１１は、抽出した情報ノードの１つをカレント情報ノードに設定する。
【００６９】
（Ｓ３−１）双方向トレース検査部７１１は、カレント情報の「入リンク」を参照して、詳細化関係又は具体化関係の関係リンクを逆方向にひとつ辿って得られる情報ノードを抽出する。なお、検査範囲外の情報ノード、及び既に抽出済みの情報ノードは、抽出対象から除外する。
【００７０】
（Ｓ３−２、Ｓ３−３）双方向トレース検査部７１１は、開始情報ノードと同じブロックに属する情報ノードが抽出されるまで、再帰的にトレースを進める。開始情報ノードと同じブロックの情報ノードが得られた場合、その情報ノードが開始情報ノードと一致しているかを検査し、その結果を出力する。
【００７１】
図３−１０及び図３−１１を用いて具体的に説明する。ここでは、開始情報ノードとして「２：販売部門」、検査範囲として詳細度レベル２、抽象度レベル２までの範囲が指定されているものとする。
【００７２】
まず、双方向トレース検査部７１１は、開始情報ノードを起点として、関係リンクを詳細化方向又は具体化方向にトレースする。その結果、「６：販売部門フロー」、「１１：販売システム」、「１３：販売システム」、「１５：販売システムフロー」が抽出される（図３−１０）。
【００７３】
つづいて、双方向トレース検査部７１１は、抽出した４つの情報ノードそれぞれを起点として、開始情報ノードと同じブロック１−１に到達するまで逆方向のトレースを行う。その結果、「２：販売部門」、「４：物流部門」が抽出される（図３−１１）。
【００７４】
ここで、最終的に抽出された２つの情報ノードのうち、「４：物流部門」については、開始情報ノード「２：販売部門」と一致しない。よって、そこに至るトレース経路「２：販売部門」→「６：販売部門フロー」→「１５：販売システムフロー」→「１２：物流システム」→「４：物流部門」に含まれるいずれかの関係リンクが誤っている可能性がある。よって、双方向トレース検査部７１１は、上記トレース経路に含まれる関係リンクのいずれかが誤っている可能性がある旨を、出力装置２を介して利用者に通知する。
【００７５】
実際、この例では「１５：販売システムフロー」←「１２：物流システム」の関係リンクは、「１５：販売システムフロー」←「１１：販売システム」とするべきであり、確かに上記トレース経路に誤りが含まれている。
【００７６】
（下位情報間の関係リンク検査）
図３−５のフローチャートを用いて、下位情報間の関係リンク検査について説明する。
【００７７】
（Ｓ１−１、Ｓ１−２）下位情報検査部７１２は、リンクテーブル１０に登録されている全ての関係リンクを対象に、詳細化関係又は具体化関係の関係リンクであって、「始点情報」及び「終点情報」のどちらの情報ノードにも上位情報が存在する関係リンクを、検査対象として抽出する。ここで、上位情報とは、ある情報ノードに着目したとき、当該情報ノードを終点とする下位関係リンクによって接続されている情報ノードを指す。よって、ある情報ノードに上位情報が存在するか否かは、以下の処理（Ｓ２）により検査することができる。
【００７８】
（Ｓ２−１、Ｓ２−２）下位情報検査部７１２は、ノードテーブルより、対象情報ノードの「入リンク」に下位関係の関係リンクが存在するかを検索し、存在すればそのリンクを関係リンクを逆向きに辿った情報ノードを、上位情報とする。なお、対象情報ノードの「入リンク」に下位関係の関係リンクが存在しなければ、上位情報は存在しないことになる。あるいは、下位情報検査部７１２は、対象情報ノードを「終点情報」とする下位関係リンクが、リンクテーブルに存在するか否かを調べることにより、上位情報の有無を調べることもできる。
【００７９】
（Ｓ１−３、Ｓ１−４）下位情報検査部７１２は、検査対象として抽出された関係リンクの「始点情報」及び「終点情報」の上位情報にあたる情報ノードを抽出する。そして、それらの上位情報間に、下位情報間と同じ属性の関係リンクが存在するかを検査して、結果を出力する。すなわち、例えば下位情報間（検査対象として抽出された関係リンクの両端の情報ノード間）に詳細化関係が設定されていれば、上位情報間にも同様に詳細化関係が設定されているかどうかを検査する。
【００８０】
図３−１２及び図３−１３を用いて具体的に説明する。
【００８１】
下位情報検査部７１２は、リンクテーブルより、「始点情報」「終点情報」どちらにも上位情報が存在する詳細化関係リンク又は具体化関係リンクを検査対象として抽出する（図３−１２）。そして、これらの検査対象の関係リンクの「始点情報」及び「終点情報」の上位情報間に、下位情報すなわち「始点情報」及び「終点情報」間と同じ属性の関係リンクが存在するかを検査する（図３−１３）。
【００８２】
この例では、以下のような検査結果となる。このソフトウェア資産には、「２:販売部門」→「１１：販売システム」、「４:物流部門」→「１２：物流システム」の具体化関係リンクが存在する。これらの具体化関係リンクの「始点情報」及び「終点情報」の上位情報は、いずれも「１:業務フロー」、「１０：システム構成図」である。ここで、これらの上位情報間には「１：業務フロー」→「１０：システム構成図」の具体化関係リンクが存在しており、これは下位関係間の関係リンクと同じ属性である。よって、下位情報検査部７１２は、これらの関係リンクのうちには問題を発見しない。
【００８３】
一方、このソフトウェア資産には、「５:出庫処理」→「７：受注作業」の詳細化関係リンクが存在する。この詳細化関係リンクの「始点情報」及び「終点情報」の上位情報は、「４：物流部門」、「６：販売部門フロー」である。ここで、これらの上位情報間には、「４：物流部門」→「６：販売部門フロー」の詳細化関係リンクが存在していない。よって、下位情報検査部７１２は、「５：出庫処理」→「７：受注作業」の関係リンクに誤りがあるか、又は「４：物流部門」→「６：販売部門フロー」の関係リンクが欠落している可能性があると判定し、その旨を指摘する出力を行う。
【００８４】
実際、この例では「５：出庫処理」→「７：受注作業」の詳細化関係リンクは誤りであって、正しくは「５：出庫処理」→「９：出庫作業」とするべきものである。このように、下位情報検査部７１２の指摘箇所のうちに、確かに関係リンクの誤りが含まれている。
【００８５】
（関係リンクの循環検査）
図３−６のフローチャートを用いて、関係リンクの循環検査について説明する。
【００８６】
（Ｓ１−１、Ｓ１−２）循環検査部７１３は、ノードテーブルに登録されている全ての情報ノードについて、その情報ノードを起点とする循環構造が存在するかどうかを、指定されたトレース範囲内において検査する。なお、全ての情報ノードを検査しても循環構造が見つからなければその旨を出力する。
【００８７】
なお、情報ノードの循環構造の検査（循環トレース、Ｓ２）は、一般的に知られている有向グラフの閉路検出アルゴリズムを本発明のデータ構造に適用することにより実現できる。
【００８８】
（Ｓ２−１乃至Ｓ２−４）循環検査部７１３は、ノードテーブルに登録されている情報ノードそれぞれについて、前述の有向グラフの閉路検出アルゴリズムを用いて、当該情報ノードを起点とする関係リンクを順方向にひとつずつ再帰的にトレースする。ここで、循環検査部７１３は、各情報ノードについて、未検査、検査中、検査済の状態を保持し、上記再帰処理の開始時に状態を未検査から検査中へ、終了時に検査中から検査済へと変化させる（Ｓ２−１、Ｓ２−４）。そして、もし検査中の状態である情報ノードに対してトレースが行われた場合、循環検査部７１３は、循環構造を検出した旨を出力する（Ｓ２−３）。なお、検査済の状態に情報ノードへはトレースを行わない。トレース中、検査済の情報が再度現れたとしても、それはその情報ノードへのトレース経路が複数存在することを示すにすぎず、循環構造が存在することを示すわけではない。
【００８９】
図３−１４、図３−１５、図３−１６を用いて具体的に説明する。
【００９０】
循環検査部７１３は、ノードテーブルに存在する各情報ノードを対象に、未検査、検査中、検査済の状態を保持しつつ、各情報ノードを起点とする関係リンクを順方向にひとつずつ再帰的にトレースする処理を行う（図３−１４）。この際、再帰処理の開始時又は終了時に、状態を検査中又は検査済へと変化させる。検査済の状態の情報ノードへはトレースを行わない（図３−１５）。トレース中、検査中の状態の情報ノードがが現れるのは循環構造が含まれる場合である（図３−１６）。
【００９１】
この例では、循環検査部７１３は、トレース経路「８：物流部門」→「９：出庫作業」→「８：物流部門」に循環構造を発見できる。よって、循環検査部７１３は、この循環構造に含まれるいずれかの関係リンクが誤っている可能性を、利用者に対して指摘する出力を行う。
【００９２】
実際、この例では「９：出庫作業」→「８：物流部門」の関係リンクは不要である。このように、循環検査部７１３の指摘箇所のうちに、確かに関係リンクの誤りが含まれている。
【００９３】
本実施の形態によれば、ソフトウェア資産活用装置１００は、双方向トレース、怪情報検査、循環検査等の種々の関係リンクの正当性検査処理を実施することができる。これにより、仮にリポジトリ４への情報登録段階における関係リンクの設定精度が低くても、事後的に関係リンクの矛盾や欠落を容易に発見できる手段を提供できる。当該手段により、誤った関係リンク設定の修正機会を利用者に与え、徐々にリポジトリ全体の情報精度を上げていくような、段階的なソフトウェア資産の運用が可能となる。
【００９４】
また、本実施の形態によれば、早い段階で関係リンクの修正の機会を作ることができる。これにより、後々になって大きな手戻りが発生し、時間や労力や金銭面等でのロスが発生する事態を避けることができる。
【００９５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００９６】
例えば、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００９７】
１００  ソフトウェア資産活用装置
１  入力装置
２  出力装置
３  処理装置
４  リポジトリ
５  情報入力部
６  情報抽出部
７  情報分析部
８  情報保持部
９  キーワード保持部
１０  リンクテーブル
【図１−１】
2014149683.tif 000003
【図１−２】
2014149683.tif 000004
【図１−３】
2014149683.tif 000005
【図２−１】
2014149683.tif 000006
【図２−２】
2014149683.tif 000007
【図２−３】
2014149683.tif 000008
【図２−４】
2014149683.tif 000009
【図２−５】
2014149683.tif 000010
【図２−６】
2014149683.tif 000011
【図２−７−１】
2014149683.tif 000012
【図２−７−２】
2014149683.tif 000013
【図２−７−３】
2014149683.tif 000014
【図２−８】
2014149683.tif 000015
【図２−９−１】
2014149683.tif 000016
【図２−９−２】
2014149683.tif 000017
【図２−９−３】
2014149683.tif 000018
【図２−９−４】
2014149683.tif 000019
【図２−９−５】
2014149683.tif 000020
【図２−９−６】
2014149683.tif 000021
【図２−９−７】
2014149683.tif 000022
【図３−１】
2014149683.tif 000023
【図３−２】
2014149683.tif 000024
【図３−３】
2014149683.tif 000025
【図３−４−１】
2014149683.tif 000026
【図３−４−２】
2014149683.tif 000027
【図３−５−１】
2014149683.tif 000028
【図３−５−２】
2014149683.tif 000029
【図３−６−１】
2014149683.tif 000030
【図３−６−２】
2014149683.tif 000031
【図３−７】
2014149683.tif 000032
【図３−８】
2014149683.tif 000033
【図３−９】
2014149683.tif 000034
【図３−１０】
2014149683.tif 000035
【図３−１１】
2014149683.tif 000036
【図３−１２−１】
2014149683.tif 000037
【図３−１２−２】
2014149683.tif 000038
【図３−１３−１】
2014149683.tif 000039
【図３−１３−２】
2014149683.tif 000040
【図３−１４−１】
2014149683.tif 000041
【図３−１４−２】
2014149683.tif 000042
【図３−１５−１】
2014149683.tif 000043
【図３−１５−２】
2014149683.tif 000044
【図３−１６−１】
2014149683.tif 000045
【図３−１６−２】
2014149683.tif 000046