(57)【要約】【課題】抽象度や詳細度によって区分分けされたブロックに配置された情報ノード間の関係リンクが不十分な場合であっても適切に情報ノードを抽出すること【解決手段】情報保持部８は、抽象度や詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を示す有向リンクである関係リンクで設定した資産管理マトリクスを保持する。情報入力部５は、探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける。情報探索部６は、始点情報を基に導出される前記情報ノードから終点情報を基に導出される情報ノードまでの１以上の探索経路を、関係リンクを順方向または逆方向に辿ること、及び関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する。【選択図】図１
2014157598.tif 000002
【特許請求の範囲】
【請求項１】
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクで設定した資産管理マトリクスを保持する情報保持部と、
前記資産管理マトリクスにおける探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力部と、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索部と、
を備えるソフトウェア資産管理装置。
【請求項２】
前記情報探索部は、算出した前記探索経路の各々について経路の重なり度合いを算出し、算出した重なり度合いの大きさに応じて優先度を設定する、ことを特徴とする請求項１に記載のソフトウェア資産管理装置。
【請求項３】
前記資産管理マトリクス内の前記情報ノードに対するキーワードを保持するキーワード保持部を更に有し、
前記情報探索部は、算出した前記探索経路の各々について、経路に含まれる前記情報ノードの各々に付与されたキーワードの一致性に基づいて優先度を設定する、ことを特徴とする請求項１に記載のソフトウェア資産管理装置。
【請求項４】
前記資産管理マトリクス内の前記関係リンクの属性や向きに応じた重み値を設定したテーブルを保持するリンク重み付け保持部を更に有し、
前記情報探索部は、算出した前記探索経路の各々について、経路に含まれる前記関係リンク各々の重み値を累積加算し、当該累積加算値が小さい順序で高い優先度を順に設定する、ことを特徴とする請求項１に記載のソフトウェア資産管理装置。
【請求項５】
前記テーブルは、前記関係リンクを順方向に辿る場合の重み値よりも前記関係リンクを逆方向に辿る場合の重み値の方が大きく設定されていることを特徴とする請求項４に記載のソフトウェア資産管理装置。
【請求項６】
前記情報探索部は、前記関係リンクを詳細度軸方向に順方向に辿り、順方向のリンクが無い場合には前記関係リンクを詳細度軸方向に逆方向に辿って前記探索経路を算出することを特徴とする請求項１〜請求項５のいずれか１項に記載のソフトウェア資産管理装置。
【請求項７】
前記情報探索部は、前記関係リンクを詳細度方向に辿り、詳細度方向にリンクが無い場合には前記関係リンクを抽象度方向にたどって前記探索経路を算出することを特徴とする請求項１〜請求項６のいずれか１項に記載のソフトウェア資産管理装置。
【請求項８】
前記情報探索部は、前記優先度の最も高い前記探索経路を表示出力することを特徴とする請求項１〜請求項７のいずれか１項に記載のソフトウェア資産管理装置。
【請求項９】
抽抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクで設定した資産管理マトリクスを保持するリポジトリ、に対する探索方法であって、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力ステップと、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索ステップと、
を実行するソフトウェア資産管理方法。
【請求項１０】
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクで設定した資産管理マトリクスを保持するリポジトリ、に対する探索を実行させるプログラムであって、
コンピュータに、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力ステップと、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索ステップと、
を実行させるソフトウェア資産管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア資産管理装置、ソフトウェア資産管理方法、及びソフトウェア資産管理プログラムに関する。
【背景技術】
【０００２】
企業等の組織が長期にわたりＩＴシステムを運用する場合、企業活動の目的に合わせてシステム拡張や改造を行うことが一般的である。この結果、新旧の様々なソフトウェアやハードウェアが混在する状況が生じ得る。このような状況により、ＩＴシステムの把握が困難となり、その結果としてシステム拡張等が困難になってきている。システム拡張を行うことが困難になってきていることにより、ビジネスの変化に合わせた最適なシステム変更を迅速に行うことができない場面が生じ得る。これにより、ビジネスチャンスをのがすという問題にもつながってきている。
【０００３】
上述のＩＴシステムの拡張の困難化の問題は、詳細には以下の主な３つの問題に起因して生じているものと考えられる。
【０００４】
第１にＩＴシステム内において実装されている業務処理（業務プロセス）とＩＴシステムの実装の関係が必ずしも明文化（文書化）されているとは限らない。すなわち業務プロセスとＩＴシステム実装との関係が暗黙知として形成されている場合が多い。そのためシステムリニューアルを行う際に、設計者が修正範囲を特定するために要する時間が非常に長くなってしまうという問題がある。
【０００５】
第２にＩＴシステムの設計仕様（設計書）が実際のＩＴシステムの実装と合致していない場合や設計仕様自体が存在しない場合がある。このような場合、設計者（または開発者）はＩＴシステムを構成するプログラムソースコードを解読して影響範囲等を特定する必要があり、多大な時間と費用がかかるという問題があった。
【０００６】
第３にＩＴシステムのリニューアルに成功した場合であっても、その過程で得られた文書等が適切に管理されない場合がある。詳細にはＩＴシステムリニューアルの際に得られた際に得られた文書等が再利用（またはメンテナンス可能）な状態で管理されない場合があった。これにより、再びＩＴシステムのリニューアルを行うことが困難であるという問題があった。
【０００７】
上記の種々の問題を鑑みて、ソフトウェア資産を管理するツール（例えば開発環境ツールやＢＰＭ（ビジネスプロセスマネージメント）ツール）が使用されている。しかし、これらのツールはソースコードのみを管理対象としている場合や特定利用者向けの文書ファイルのみを管理していることが一般的である。すなわち、ＩＴシステム全体のソフトウェア資産（設計仕様書、ソースプログラム、テストスクリプト等）を統合的に扱うものではない。その結果、ソフトウェア資産を効果的に活用することができていなかった。
【０００８】
なお特許文献１には、主にソフトウェアのソースコードを対象とした再利用システムを開示している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２７６９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように一般的に使用されるツールは、ＩＴシステム全体のソフトウェア資産を統合的に扱うものではない。そのため、ソフトウェア資産を統合的に管理するリポジトリの使用が望まれている。このリポジトリは、ソフトウェア資産に関するユーザの入力を蓄積する記憶装置である。リポジトリには、各ソフトウェア資産を構成する個々の情報単位を示す情報ノード、情報ノード間の関係を規定する関係リンク、等が記憶される。これらの情報ノードは、抽象度や詳細度によって区分分けされたブロックに適宜配置される。
【００１１】
ユーザは、このリポジトリに対してシステム経由で情報ノード及び関係リンクを入力する。詳細にはユーザは、マウスやキーボード等の入力手段を用いて情報ノード及び関係リンクを一つずつ入力する。しかしながら、この入力方法では関係リンクの設定ミス等が生じる場合がある。これにより、関係リンクを辿ることができず、ある情報ノードから目的となる情報ノードまでの間にある各種の情報ノードの情報を取得できないという問題があった。
【００１２】
本発明は上述の問題を鑑みてなされたものであり、抽象度や詳細度によって区分分けされたブロックに配置された情報ノード間の関係リンクが不十分な場合であっても適切に情報ノードを抽出することができるソフトウェア資産管理装置、ソフトウェア資産管理方法、及びソフトウェア資産管理プログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【００１３】
本発明にかかるソフトウェア資産管理装置の一態様は、
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクで設定した資産管理マトリクスを保持する情報保持部と、
前記資産管理マトリクスにおける探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力部と、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索部と、
を備えるものである。
【００１４】
本発明にかかるソフトウェア資産管理方法の一態様は、
抽象度や詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を示す有向リンクである関係リンクで設定した資産管理マトリクスを保持するリポジトリ、に対する探索方法であって、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力ステップと、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索ステップと、
を実行するものである。
【００１５】
本発明にかかるソフトウェア資産管理プログラムの一態様は、
抽象度や詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を示す有向リンクである関係リンクで設定した資産管理マトリクスを保持するリポジトリ、に対する探索を実行させるプログラムであって、
コンピュータに、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力ステップと、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索ステップと、
を実行させるものである。
【発明の効果】
【００１６】
本発明では、抽象度や詳細度によって区分分けされたブロックに配置された情報ノード間の関係リンクが不十分な場合であっても適切に情報ノードを抽出することができるソフトウェア資産管理装置、ソフトウェア資産管理方法、及びソフトウェア資産管理プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１にかかるソフトウェア資産管理装置１の構成を示すブロック図である。
【図２−１】実施の形態１にかかるソフトウェア資産管理装置１が想定するマトリクスを示す概念図である。
【図２−２】実施の形態１にかかるリポジトリ７のテーブル構成を示す概念図である。
【図２−３】実施の形態１にかかるマトリクスを示す図である。
【図２−４】実施の形態１にかかる関係リンクを保持するテーブル構成を示す図である。
【図２−５−１】実施の形態１にかかる同格関係、及び詳細化関係の２つの関係リンクが含まれるマトリクスを示す図である。
【図２−５−２】実施の形態１にかかる同格関係、及び詳細化関係の２つの関係リンクが含まれるマトリクスを示す図である。
【図２−５−３】実施の形態１にかかる同格関係、及び詳細化関係の２つの関係リンクが含まれるマトリクスを示す図である。
【図２−６】実施の形態１にかかる具体化関係の関係リンクが含まれるマトリクスを示す図である。
【図２−７−１】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−７−２】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−７−３】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−７−４】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−７−５】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−７−６】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−７−７】実施の形態１にかかる管理対象のソフトウェア資産を示すマトリクスである。
【図２−８】実施の形態１にかかるリポジトリ７に情報ノードが登録されている様子を示す図である。
【図２−９】実施の形態１にかかる情報ノードとキーワードとの関連づけを具体的に実現するためのテーブル構造の一例を示す図である。
【図３−１】実施の形態１にかかるブロック間の探索経路の例を示す図である。
【図３−２】実施の形態１にかかるブロック間の探索経路の例を示す図である。
【図３−３】実施の形態１にかかるブロック間の探索経路の例を示す図である。
【図４−１】実施の形態１にかかる情報探索部６による探索処理の流れを示すフローチャートである。
【図４−２】実施の形態１にかかる情報探索部６による探索処理の流れを示すフローチャートである。
【図５】カレントブロックとターゲットブロックとなるブロックとのリンク関係を示す概念図である。
【図６−１】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−２】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−３】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−４】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−５】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−６】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−７】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−８】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図６−９】実施の形態１にかかる情報探索部６による探索処理を示す概念図である。
【図７】実施の形態２にかかるソフトウェア資産管理装置１の構成を示すブロック図である。
【図８】実施の形態２にかかる情報探索部６による探索処理の流れを示すフローチャートである。
【図９−１】実施の形態２にかかる探索経路の重なり度合いを用いた優先度設定を示す概念図である。
【図９−２】実施の形態２にかかる探索経路の重なり度合いを用いた優先度設定を示す概念図である。
【図９−３】実施の形態２にかかる探索経路の重なり度合いを用いた優先度設定を示す概念図である。
【図９−４】実施の形態２にかかる探索経路の重なり度合いを用いた優先度設定を示す概念図である。
【図９−５】実施の形態２にかかる探索経路の重なり度合いを用いた優先度設定を示す概念図である。
【図９−６】実施の形態２にかかる探索経路の重なり度合いを用いた優先度設定を示す概念図である。
【図１０】実施の形態２にかかる関係リンクの重み情報を示す図である。
【図１１−１】実施の形態２にかかるキーワードに応じた各探索経路の優先度設定を示す概念図である。
【図１１−２】実施の形態２にかかるキーワードに応じた各探索経路の優先度設定を示す概念図である。
【図１１−３】実施の形態２にかかるキーワードに応じた各探索経路の優先度設定を示す概念図である。
【図１２】実施の形態３にかかるソフトウェア資産管理装置１の構成を示すブロック図である。
【図１３−１】実施の形態３にかかる利用履歴保持部１１及び変更履歴保持部１２の詳細構成例を示す図である。
【図１３−２】実施の形態３にかかる利用履歴保持部１１及び変更履歴保持部１２の詳細構成例を示す図である。
【図１４−１】実施の形態３にかかる情報探索部６の処理の流れを示すフローチャートである。
【図１４−２】実施の形態３にかかる情報探索部６の処理の流れを示すフローチャートである。
【図１４−３】実施の形態３にかかる情報探索部６の処理の流れを示すフローチャートである。
【図１４−４】実施の形態３にかかる情報探索部６の処理の流れを示すフローチャートである。
【図１４−５】実施の形態３にかかる情報探索部６の処理の流れを示すフローチャートである。
【図１４−６】実施の形態３にかかる情報探索部６の処理の流れを示すフローチャートである。
【図１５−１】実施の形態３にかかる情報探索部６の探索経路を示す図である。
【図１５−２】実施の形態３にかかる情報探索部６の探索経路を示す図である。
【図１５−３】実施の形態３にかかる情報探索部６の探索経路を示す図である。
【図１６】実施の形態３にかかる情報探索部６の探索経路を示す図である。
【図１７】本発明にかかるソフトウェア資産管理装置１のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。まず本実施の形態にかかるソフトウェア資産管理装置１が扱う情報システムについて説明する。これらの情報システムを構築、運用するためには、様々な情報、例えば、情報システムが利用される業務の内容を定義づける情報（業務定義情報）、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報等が必要である。これらの情報を、総じてソフトウェア資産と呼ぶ。ソフトウェア資産は、業務の実行主体である企業等の内部において、文書化されていることもあれば、されていないこともある。
【００１９】
次に図１を参照して本実施の形態にかかるソフトウェア資産管理装置の構成について説明する。ソフトウェア資産管理装置１は、処理部４及びリポジトリ７を有する。またソフトウェア資産管理装置１は、入力装置２及び出力装置３と接続する。処理部４は、情報入力部５及び情報探索部６を有する。リポジトリ７は、情報保持部８を有する。
【００２０】
ソフトウェア資産管理装置１は、いわゆるサーバ装置であり、インターネットを介して入力装置２や出力装置３と接続する。
【００２１】
入力装置２は、処理部４を介してリポジトリ７に後述する情報ノード等の各種データを入力する装置である。入力装置２は、例えばキーボード、マウス等を備えたコンピュータであればよい。出力装置３は、後述する情報探索部６の探索経路を表示する装置であり、例えば液晶ディスプレイ装置と接続されたコンピュータ装置やプリンタ装置等の各種出力装置である。
【００２２】
情報入力部５は、入力装置２からの入力を受け付け、情報保持部８にデータ登録を行うインターフェイスとして動作する。情報入力部５は、例えばインターネットを介したパケット処理等の能力を有する処理部である。情報探索部６には、入力装置２及び情報入力部５を介して探索条件が入力される。情報探索部６は、入力された探索条件を用いてリポジトリ７の探索を行う。
【００２３】
リポジトリ７は、ソフトウェア資産管理装置１が有する図示しない記憶媒体内に設けられた、論理的な記憶手段である。実際には、情報保持部８が各種データを記憶する。以下、リポジトリ７の詳細について図２−１〜図２−９を参照して説明する。
【００２４】
上述のように、ソフトウェア資産は様々な情報の集合であるが、これらソフトウェア資産を構成する個々の情報単位を情報ノードと呼ぶ。例えば、業務定義情報、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報等を構成する情報単位が、情報ノードである。文書化されたソフトウェア資産が存在する場合は、その文書データの全部または一部が、情報ノードの実体である。一方、文書化されていない情報についても、文書データ等の実体を有しない、いわば空の情報ノードを作成することができる。例えば、Ａ機能について記載した文書が存在しなくても、情報システムにＡ機能が必要である場合は、利用者はＡ機能に関する情報ノードを作成し、リポジトリ７に格納できる。
【００２５】
リポジトリ７は、これらの情報ノードそれぞれを、「抽象度」と「詳細度」の２つの評価基準により分類したうえで格納する。「抽象度」「詳細度」には、それぞれ複数の段階（レベル）が設けられる。情報ノードは、それら複数のレベルのいずれかに割り当てられる。すなわち、リポジトリは、情報ノードを、「抽象度」「詳細度」の２軸によって定義されるマトリクス上のいずれかの位置に割り当てて格納する。
【００２６】
図２−１に、本実施の形態が想定するマトリクスを例示する。この例では、マトリクスの縦軸が「抽象度」、横軸が「詳細度」を示す。「抽象度」「詳細度」は、原点から遠ざかるほど大きくなる。すなわち、より原点から離れた位置には、より抽象的又は詳細な内容を含む情報ノードが格納される。本実施の形態では、「抽象度」「詳細度」のレベルを、レベル番号によって識別することとする。すなわち、「抽象度」「詳細度」の最も小さいレベルを、レベル番号「１」と呼ぶ。以降、「抽象度」「詳細度」が大きくなるに従って、昇順のレベル番号「２」「３」・・で呼称する。
【００２７】
なお、マトリクスの縦横のサイズ（レベル数）は固定的ではなく、管理対象のソフトウェア資産の規模や複雑さ等に応じて、利用者が自由に設定する事が可能である。
【００２８】
情報ノードが割り当てられるマトリクス上の位置を、ブロックと呼ぶ。本実施の形態では、個々のブロックを「抽象度レベル番号−詳細度レベル番号」の形式で、２つの数字の組によって特定する。例えば、図２−１において、情報ノードＸが割り当てられたブロックは「１−２」である。
【００２９】
ここで、「抽象度」「詳細度」の意義について説明する。「抽象度」とは、情報ノードを、情報の内容と、システムの実装と、の依存度の強さによって分類する尺度である。例えば、業務定義情報、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報の５種類の情報ノードを、５段階の抽象度レベル１乃至５に分類する場合、実装への依存度が最も低い業務定義情報を、最も高い抽象度レベル（抽象度レベル＝５）に割り当てる。以降、実装への依存度が高まる順に、システム設計情報には抽象度レベル＝４を、ソースコードには抽象度レベル＝３、テスト仕様情報には抽象度レベル＝２、運用仕様情報には抽象度レベル＝１を割り当てる。
【００３０】
「詳細度」とは、情報ノードを、設計の詳細度によって分類する尺度である。例えば、図２−３に示すように、システム設計情報として、ＡＡ機能の概要を自然言語で記述した機能記述と、ＡＡ機能におけるデータ遷移を例えばＤＦＤ（Data Flow Diagram）等で記述したデータ関連図と、の２種類の情報ノードを、２段階の詳細度レベル１乃至２に割り当てる場合、設計の詳細度が最も高いデータ関連図を、最も高い詳細度レベル（詳細度レベル＝２）に割り当てる。一方、設計の詳細度が比較的低い機能記述には詳細度レベル＝１を割り当てる。
【００３１】
なお、リポジトリ７においては、詳細度が異なるが、同等の抽象度を有する情報ノードには同じ抽象度レベルを割り当て、抽象度が異なるが、同等の詳細度を有する情報ノードには同じ詳細度レベルを割り当てることが好ましい。
【００３２】
図２−２に、リポジトリ７を具体的に実現するためのテーブル構造の一例を示す。ソフトウェア資産管理装置１は、例えば図示しない記憶媒体上の記憶領域に、上記テーブル構造を有する情報保持部８を備えることができる。情報保持部８は、リポジトリ７に格納された情報ノードを識別するための情報名、情報ノードの位置を示すブロック、及び情報ノードの実体（情報実体。例えば文書データ等）の実際の保存場所を示す情報実体の場所、を少なくとも要素とする複数のレコードを保持できる。本実施の形態では、情報ノードの実体を、情報保持部８の外部の任意の保存場所に保存することとしている。なお、情報ノードの実体を、情報保持部８のレコード内に保持することとしても構わない。
【００３３】
リポジトリ７は、個々の情報ノードの関係性に関する情報を保持することができる。この関係性を、関係リンクと称する。関係リンクは、ある情報ノードと、当該情報ノードと同一ブロック、抽象度レベルのみが異なるブロック、及び詳細度レベルのみが異なるブロックに存在する他の情報ノードと、の間で設定することができる。
【００３４】
本実施の形態では、少なくとも以下の４種類の関係リンクを設定できる。この種別をリンク属性とも呼称する。同格関係は、同一の対象又は事象等を、別の目的や観点等に基づいて表現した情報ノード同士を関係づける関係リンクである。下位関係は、ある上位概念たる情報ノードと、当該情報ノードの下位概念や構成部品である情報ノードを関係づける関係リンクである。詳細化関係は、ある情報ノードと、当該情報ノードをより詳細化した情報ノードとを関係づける関係リンクである。具体化関係は、抽象的な概念を示す情報ノードと、当該情報ノードをより具体化した情報ノードとを関係づける関係リンクである。以上の他、情報ノード間でのデータの関連性や処理順序等を表現するため、任意の関係リンクを設定することもできる。上述のように関係リンクは、情報ノード間を方向性を持って結ぶことができるリンク（有向リンク。ただし同格等の関係では、方向性は不要である場合もある。）である。
【００３５】
なお、詳細化関係は、詳細度レベルが異なる情報ノード同士で設定されても良く、同一の詳細度レベルの情報ノード同士で設定されても良い。また、具体化関係は、抽象度レベルが異なる情報ノード同士で設定されても良く、同一の抽象度レベルの情報ノード同士で設定されても良い。なお、リポジトリ７は、詳細化関係又は具体化関係が、詳細度レベル又は抽象度レベルを跨ぐものであるか否かを示すフラグを、それぞれ保持していることが好ましい。
【００３６】
図２−３は、ある仮想の企業の組織構造及び業務構造を、下位関係、及び「関連」の２つの関係リンクを用いて示したものである。ここで、「関連」とは、ある業務に関連する入出力情報を示す関係リンクであるものとする。この図は、以下の事実を示す。この企業は、「業務フロー」に関するソフトウェア資産（例えば文書化されたマニュアル等）を有する。この「業務フロー」の中には、「販売部門」にかかる業務フローが含まれる。「販売部門」の業務フローは、「受注」「在庫確認」「出荷指示」の３つの業務からなる。それぞれの業務における入出力情報は、「注文書」「製造指示」「出荷指示」である。
【００３７】
図２−４は、図２−３の関係リンクを具体的に実現するためのテーブル構造の一例である。図２−４の情報保持部８は、「出リンク」「入リンク」要素を有している。ここで「出リンク」は、その情報ノードを始点とする関係リンクを、リンクテーブル（後述）で定義された番号によって特定している。また、「入リンク」は、その情報ノードを終点とする関係リンクを、リンクテーブル（後述）で定義された番号によって特定している。
【００３８】
なお、出リンク及び入リンク要素は、情報保持部８の構成上、必須の要素ではない。当該要素は、後述のリンクテーブルが有する要素と重複しており、リンクテーブルを情報ノードの番号で検索すれば取得することが可能である。しかしながら、実際の運用においては、リポジトリ７に登録される情報量が増加するほど、リンクテーブルの検索時間が増大し、処理部４全体の性能に大きな影響を及ぼすことが予想される。よって、高速化の手段として、情報保持テーブルに出リンク及び入リンク要素を直接持つことは有効である。
【００３９】
リンクテーブルは、複数の情報ノード間に張られた関係リンクを定義、保存するためのテーブルである。リンクテーブルは、少なくとも番号、属性、始点情報、終点情報を要素とする、１以上のレコードを有する。番号は、関係リンクを一意に特定するための識別子である。属性は、関係リンクの種類を示す。始点情報は、関係リンクの始点となる情報ノードを、情報保持部８で定義された番号によって特定している。終点情報は、関係リンクの終点となる情報ノードを、情報保持部８で定義された番号によって特定している。
【００４０】
図２−５（図２−５−１〜図２−５−３）は、ある仮想の企業の組織構造及び業務構造を、同格関係、及び詳細化関係の２つの関係リンクを用いて示したものである。両端が矢印の線は、同格関係を示す。同格関係は、同じブロックの中で、本質的に同じ意味内容を有する情報ノード間に設定されている。片方が矢印の線は、詳細化関係を示す。この例において、詳細化関係は、詳細化レベルの異なるブロックに位置する情報ノード間に設定されている。
【００４１】
図２−６は、ある仮想の企業の組織構造及び業務構造を、具体化関係の関係リンクを用いて示したものである。片方が矢印の線は、具体化関係を示す。この例において、具体化関係は、抽象化レベルの異なるブロックに位置する情報ノード間に設定されている。
【００４２】
図２−７（図２−７−１〜図２−７−７）は、ある仮想の企業の組織構造及び業務構造に関するソフトウェア資産全体を、リポジトリ７に登録した例を示している。上述の図２−３、図２−５（図２−５−１〜図２−５−３）、図２−６は、この図の一部分を抜き出したものである。
【００４３】
次に、図３−１〜図３‐３を参照して、情報探索部６によるブロック間の探索経路について説明する。ここで探索とは、指定されたブロック（または情報ノード）から指定されたブロック（または情報ノード）までの経路を算出する処理を指す。
【００４４】
図３−１は、始点情報として抽象度２／詳細度１のブロック、終点情報として抽象度２／詳細度５のブロックが指定された場合の探索経路を示す図である。また図３−２及び図３−３は、始点情報として抽象度２／詳細度２のブロック、終点情報として抽象度１／詳細度３のブロックが指定された場合の探索経路を示す図である。図３−２及び図３−３に示すように複数の探索経路が算出される場合がある。
【００４５】
探索処理の具体的な利用例について説明する。以下の説明においてリポジトリ７は、運用中のある情報システムの情報ノード及び関係リンクがすでに登録されているものとする。ここで当該システムの特定のサブシステムに対して機能追加を行うことになったとする。この場合において、当該サブシステムの変更による影響範囲を調べたいケースについて検討する。
【００４６】
ユーザは、入力装置２を介して探索の起点情報として当該サブシステムの外部仕様書が格納されているブロックを指定し、終点情報として当該サブシステムの実装プログラムが格納されているブロックを指定する。情報検索部６は、当該始点ブロックと終点ブロックを結ぶ探索経路を算出する。ユーザは、この探索経路に含まれる情報ノードを参照することによりサブシステムの変更に伴う影響範囲を調べる。以下、具体的な探索処理の流れを図４−１及び図４−２のフローチャートを参照して説明する。
【００４７】
情報探索部６は、始点情報、終点情報等を入力装置２及び情報入力部５を介して受け付ける（Ｓ１）。ユーザは、例えば図２−７に示すマトリクス状のユーザインターフェイスから始点となるブロック、終点となるブロックをマウス操作等によって入力する。
【００４８】
情報探索部６は、始点となるブロックから終点となるブロックまでの最短のブロック間を結ぶ探索経路を算出する（Ｓ２）。図３−１の場合、情報探索部６は１つの探索経路を算出する。図３−２及び図３−３の場合、情報探索部６は２つの探索経路を算出する。この際に情報探索部６は、ブロック内に情報ノードがあるか否かや関係リンクによりブロック間が接続されているか否かに関わらず最短の探索経路を算出する。
【００４９】
続いて情報探索部６は、以後の処理において利用するブロック間の探索経路を設定する（Ｓ３）。例えば図３−１のように算出した探索経路が１つの場合、情報探索部６は、当該探索経路を設定する。図３−２及び図３−３のように算出した探索経路が２つの場合、情報探索部６は、当該探索経路群から1つを選択して設定する。
【００５０】
情報探索部６は、選択した探索経路の始点ブロックから起点とする情報ノードを決定する（Ｓ４）。情報探索部６は、例えば入力装置２を介して入力されたキーワードと、各情報ノードの属性やキーワードを比較することにより決定処理を行う。
【００５１】
情報探索部６は、選択した探索経路の中で処理中のブロック（現在位置となるブロック）をカレントブロックとし、当該カレントブロックの周辺にあるブロックをターゲットブロックとして設定する（Ｓ５）。後述のＳ１２における迂回を１回も行なっていない場合、情報探索部６は、カレントブロックから結ばれた次のブロックをカレントブロックに設定する。迂回を行なっている場合、情報探索部６は、迂回方向と逆方向にあるブロック、または終点となるブロックに近づく方向にあるブロックをターゲットブロックに設定する。情報探索部６は、選択したカレントブロック内のカレントノード（処理対象としている情報ノード）からターゲットブロックまでの順方向の全ての経路を抽出する（Ｓ６）。情報探索部６は、Ｓ６において抽出した経路上の関係リンクの情報を全て保持する。図５は、カレントブロックとターゲットブロックとなるブロックとのリンク関係を示す概念図である。
【００５２】
情報探索部６は、Ｓ６において抽出した経路が１つ以上存在するか（すなわち１つ以上の順方向の関係リンクでカレントノードとターゲットノードが接続されているか）を判定する（Ｓ７）。抽出経路が０件であった場合、情報探索部６は、逆方向に関係リンクを辿る場合も含めてターゲットブロックまでの全ての経路を抽出する（Ｓ８）。順方向または逆方向の経路が存在する場合（Ｓ７：Ｙｅｓ，Ｓ９：Ｙｅｓ）、情報探索部６は、終点ブロックまで処理を続ける（Ｓ１４）。
【００５３】
順方向及び逆方向の探索経路がともに存在しなかった場合（Ｓ９：Ｎｏ）、ターゲットブロックへの関係リンクが存在しないことになる。この場合、上述のＳ２において抽出したブロック間を結ぶ探索経路が複数ある場合（Ｓ１０：Ｙｅｓ）には、情報探索部６は、探索対象として設定を行っていない探索経路を処理対象に設定して処理をやり直す（Ｓ１１）。
【００５４】
上述のＳ２において抽出したブロック間を結ぶ探索経路が一つの場合または処理済みではない探索経路が残っていない場合（Ｓ１０：Ｎｏ）、情報探索部６は、カレントブロックから垂直方向（抽象度軸方向）にターゲットブロックを設定する（Ｓ１２）。そして情報探索部６は、Ｓ１１において設定したターゲットブロックから経路を再算出する（Ｓ１３）。
【００５５】
情報探索部６は、終点ブロックに到達するまで上述のＳ５〜Ｓ１３の各処理を実行する（Ｓ１４）。終点ブロックに到達した場合（Ｓ１４：Ｙｅｓ）、情報探索部６は、検出した始点から終点までの探索経路を出力する（Ｓ１５）。
【００５６】
以下、上述のフローチャートに示す動作を、具体例（図６−１〜図６−９）を用いて説明する。図６−１は、リポジトリ７に登録された実際のデータであるものとする。この場合において、抽象度２／詳細度１のブロックが始点ブロックとして設定され、抽象度２／詳細度５のブロックが終点ブロックとして設定された場合の情報探索部６による探索について説明する。
【００５７】
図６−２は、上述のＳ２における最短ブロック間探索経路を示す図である。情報探索部６は、図示するように抽象度２／詳細度１のブロックから抽象度２／詳細度５のブロックを直線的に結ぶ探索経路を算出する。なお、図６−２以降の図では、便宜上、始点ブロックを１とした場合のブロック通過数を合わせて表示する。なお、この場合には最短探索経路は１つのみであるため、情報探索部６は、上述のＳ３において図６−２に示す探索経路をそのまま設定する。
【００５８】
図６−３は、カレントブロックが抽象度２／詳細度２のブロックである場合の探索処理について示す図である。図６−１に示すように、抽象度２／詳細度２のブロックと抽象度２／詳細度３のブロックには関連リンクが設定されていない。そのため、情報探索部６は、順方向の関係リンクが存在する探索経路が０であると判定する（Ｓ７）。また情報探索部６は、逆方向の関係リンクも存在しないと判定する（Ｓ９：Ｎｏ）また、最短経路は図６−１に示すように１つであるため（Ｓ１０：Ｎｏ）、情報探索部６は、垂直方向（抽象度軸方向）に探索を実行する（Ｓ１２）。
【００５９】
図６−４は、抽象度２／詳細度２のカレントブロックから垂直方向の探索処理を行った場合の状態を示す図である。情報探索部６は、垂直方向に探索を実行し、カレントブロックを抽象度１／詳細度２のブロックに設定する（Ｓ１２）。情報探索部６は、カレントブロックから順方向の関係リンクが存在する抽象度１／詳細度３のブロックをターゲットブロックとする（Ｓ６）。
【００６０】
図６−５は、図６−４の後の探索処理を示す図である。情報探索部６は、カレントブロック（抽象度１／詳細度３）から順方向に探索を実行し、抽象度１／詳細度４のブロックをターゲットブロックに設定する（Ｓ６）。
【００６１】
図６−６は、図６−５の後の探索処理を示す図である。図６−６に示すように情報探索部６は、カレントブロック（抽象度１／詳細度４）から抽象度１／詳細度５への関係リンクが無いと判断する（Ｓ７：Ｎｏ，Ｓ９：Ｎｏ）。
【００６２】
そこで情報探索部６は、図６−７に示すように垂直方向（抽象度方向）に探索を実行し、ターゲットブロックを抽象度２／詳細度４のブロックに設定する（Ｓ１２）。続いて図６−８に示すように情報探索部６は、抽象度２／詳細度４のブロックをカレントブロックとし、終点ブロックである抽象度２／詳細度５のブロックをターゲットブロックとして探索を終了する。情報探索部６は、探索経路を６−８に示すような画面情報でディスプレイ等に出力してもよく、ＣＳＶ（Comma-Separated Values）等のファイルフォーマットで探索経路にかかる各種情報をファイル出力してもよい。
【００６３】
また情報探索部６は、迂回を行った（抽象度方向に進んだ）後に迂回方向とは逆方向にターゲットブロックを設定する探索も行う。図６−９は、図６−４の状態の後の探索の一態様を示す図である。情報探索部６は、図示するように迂回方向とは逆方向（すなわちもとのカレントブロックの方向）にターゲットブロックを設定する。ここで一度通過した抽象度２／詳細度２のブロックが再びターゲットブロックとなるが、同一ブロックであっても異なる情報ノードを辿る経路であれば問題がない。しかしながら、図６−１からも明らかなように抽象度２／詳細度２のブロックから抽象度２／詳細度３のブロックへの関係リンクは存在しない。そのため、上述の図６−８に示す探索経路のみが抽出される。
【００６４】
情報探索部６は、以上の流れで探索処理を行う。なお、上述の処理の流れはあくまでも一例である。すなわち情報探索部６は、ある情報ノードから関係リンクを順方向、逆方向、詳細度方向、及び抽象度方向に辿ることにより起点から終点までの探索経路を算出すればよい。なお情報探索部６は、迂回を行った場合にはすぐに迂回とは逆方向に戻るように探索を行うことが多くのシステムの場合で望ましい。
【００６５】
また上述の説明では、始点及び終点をブロックで指定するものとしたが必ずしもこれに限られず、始点及び終点を情報ノードで指定しても良い。
【００６６】
続いて本実施の形態にかかるソフトウェア資産管理装置１の効果について説明する。リポジトリ７を構成する場合、その規模の大きさから関係リンクの設定ミスや情報ノードの登録漏れが生じる場合がある。またリポジトリ７の使用の初期段階では、全ての情報ノードや関係リンクを設定することが難しい場合が多くある。
【００６７】
上述のように情報探索部６は、関係リンクの正方向のみならず逆方向や、抽象度軸方向（縦方向）にも探索を行っている。これにより、情報ノードの登録が十分ではない場合や関係リンクの設定漏れがある状態であっても、必要な探索経路を抽出することができる。これによりユーザは、抽出した探索経路に関連付けられた実体情報を参照することができる。
【００６８】
また情報探索部６は、関係リンクを正方向かつ詳細度方向に進むことを優先し、関係リンクが存在しない場合には関係リンクの逆方向または抽象度方向にたどって探索を行なっている（Ｓ７の判定を行った後にＳ８〜Ｓ１２を行い、Ｓ６において１以上の経路を抽出した場合にはＳ８〜Ｓ１２は行わない。）。これにより、関係性が強い経路を優先して探索を行うことになり、より有益な探索経路を算出することができる。
【００６９】
＜実施の形態２＞
本実施の形態にかかるソフトウェア資産管理装置は、始点から終点までの探索経路が複数ある場合に、種々の基準で複数の探索経路に優先度をつけて表示、選択を行うことを特徴とする。以下、本実施の形態にかかるソフトウェア資産管理装置について実施の形態１と異なる点を説明する。
【００７０】
本実施の形態にかかるソフトウェア資産管理装置１の構成を図７を参照して説明する。図１の構成に加え、リポジトリ７は更にキーワード保持部９及びリンク重み付け保持部１０を有する。
【００７１】
以下、キーワード保持部９の保持するキーワード情報について説明する。リポジトリ７においては、各情報ノードにキーワードを付与することができる。図２−８及び図２−９を用いて、情報ノードとキーワードとの関係について説明する。
【００７２】
図２−８は、情報保持部８の２つのブロック（１−１及び１−２）に、それぞれＡＡ、ＢＢ、ＣＣ、ＤＤという情報ノードが登録されている様子を示している。ブロック１−１に含まれる情報ノードの情報実体（例えば機能記述）と、ブロック１−２に含まれる情報ノードの情報実体（例えばデータ関連図）とでは、同様の論理構成や用語等が用いられていることが少なくないため、このような事象が生じ得る。ここで、ブロック１−１における情報ノードＡＡと、ブロック１−２における情報ノードＡＡとは、何らかの意味的な関連を有していることが多い。そこで、リポジトリ７においては、このような意味的な関連を識別するためのいわばタグとして、これらの情報ノードに対し、同一のキーワードを付与することができる。
【００７３】
図２−９に、情報ノードとキーワードとの関連づけを具体的に実現するためのテーブル構造の一例を示す。図２−９の情報保持部８は、図２−２の情報保持部８に比べ、各情報ノード（レコード）にユニークな番号が与えられ、たとえ同一情報名の情報ノードが複数存在しても、それらを識別可能に構成されている点で相違する。この例では、情報名ＡＡが２か所、ＢＢが２か所、ＣＣが２か所、ＤＤが２か所に存在している。
【００７４】
キーワード管理部９は、少なくともキーワード名と、情報番号リストとを対応付ける１以上のレコードからなるテーブルである。情報番号リストは、キーワードによって関連付けられる複数の情報ノードを、情報保持部８における番号によって特定する。
【００７５】
本実施の形態にかかる情報探索部６は、始点から終点までの探索経路が複数ある場合に、この複数の探索経路の各々に優先度を設定する。以下、優先度の設定方法について説明する。
【００７６】
図８は、本実施の形態にかかる探索処理の流れを示すフローチャートである。Ｓ１〜Ｓ１４までの処理は実施の形態１と同一であるため、図示は省略する。また同一符号を付した処理は、実施の形態１と同一であるものとして説明は省略する。
【００７７】
情報探索部６は、終点ブロックまでの探索を終了した後（Ｓ１４：Ｙｅｓ）に始点から終点までを結ぶ探索経路が２以上あるか否かを判定する（Ｓ１６）。抽出した探索経路が２以上ではない場合（Ｓ１６：Ｎｏ）、情報探索部６は、探索結果の出力を行い（Ｓ１５）、処理を終了する。
【００７８】
一方、抽出した探索経路が２以上である場合（Ｓ１６：Ｙｅｓ）、情報探索部６は、探索経路の重なりに応じた、各探索経路の優先度設定を行うか否かを判定する（Ｓ１７）。当該判定は、例えば入力装置２から入力された探索条件に応じて行われる。すなわちユーザは、入力装置２を介して探索経路の重なりに応じた優先度設定を行うか否かを指定する。
【００７９】
情報探索部６は、以下の手法により探索経路の重なりに応じた、各探索経路の優先度設定を行う（Ｓ１８）。詳細を図９−１〜図９−６を参照して説明する。図９−１に示すように、始点ブロックから２つめのブロックにおいて詳細化軸方向の関係リンクが途切れていたものとする。
【００８０】
この際に情報探索部６は、図９−２〜図９−４に示すように合計で６つの探索経路を算出する。図９−５は、抽出した全ての探索経路を重ね合わせて表示した概念図である。情報探索部６は、図９−５に示すように各探索経路の重なり数を算出する。そして情報探索部６は、重なり数が多い探索経路（すなわち図９−６に示す経路）に対して大きな優先度を設定する。なお設定する優先度は、重なり数に応じて定めたものであれば任意の数値設定とすることができる。
【００８１】
再び図８のフローチャートを参照する。情報探索部６は、関係リンクの重み付けに応じた各探索経路の優先度設定を行うか否かを判定する（Ｓ１９）。当該判定は、例えば入力装置２から入力された探索条件に応じて行われる。
【００８２】
情報探索部６は、以下の手法により関係リンクの重み付けに応じた、各探索経路の優先度設定を行う（Ｓ２０）。情報探索部６は、図１０に示すような関係リンクの重み情報に基づいて各探索経路に含まれる関係リンクに重みを割り当て、各探索経路の重みの総和（累積加算値）を計算する。
【００８３】
以下、図１０に示す関係リンクの重み情報について説明する。図１０に示す関係リンクの重み情報は、リンク重み付け保持部１０に格納される。重みとは、情報の曖昧性を示す指標値である。原則として関係リンクを辿ることにより、リンク属性やリンクの向きに関わらず、情報の曖昧性は増加するものと規定する。すなわち、５つの関係リンクが探索経路内にある場合、最低でも曖昧性は５だけ増える。図１０に示す表は、この考えを基に、リンク属性やリンクの向きに応じて曖昧性の大きさを規定したものである。なお、図１０に示す重みの大きさはあくまで一例であり、ユーザが適宜設定変更できるようにしてもよい。
【００８４】
重みの大きさは、関係の強さを考慮して設定しており、重みが小さいほど関係性が強いことを示す。関係リンクには、リンク属性（どのような関係性を示すリンクであるかを示す属性）を設定することができる。例えば、リンク属性の「概念−詳細  関連」はis-a関係を示し、「抽象−具象  関係」は全体−部分の関係を示す。これらの関係は、例えば設計書等の登録情報から機械的に関係を抽出することができる強い関係性であるため、重みは最低の１としている。逆方向の重みとは、情報ノード間を結ぶ関係リンクの向きと逆方向に辿った場合の値を示す。逆方向に関係リンクを辿る場合、より関係の弱い方向に進むことになるため、重みは２倍の２としている。「抽象−具象  関係」と「概要−詳細  関係」は、どちらの情報ノードを起点として考えるか応じて向きが変わるため、関係リンクの向きは「無し」として扱っている。しかしながら、探索の指定の際に、詳細化方向への探索の場合には詳細化方向（詳細度が大きくなる方向）を順方向とすればよい。
【００８５】
リンク属性「同格関連」は、機能の説明と機能関連図との関連や、クラス図とオブジェクト図の関係のように、視点を変えた同一情報を示しているものである。当該関係は、設計書等の文書から機械的に抽出することが困難であるため、重みの値は２としている。なお、同格であるため逆方向の重みも２としている。
【００８６】
リンク属性「メッセージ」は、情報ノード間のデータやり取りを表す関係である。メッセージ関係は、関連情報と比べて曖昧性が大きく、重みを３としている。メッセージは、データ入出力関係を示しているのみであり、曖昧性に影響は与えない。そのため、逆方向の重みも同様に３としている。
【００８７】
リンク属性「シーケンス」は、実行順序を示す関係である。例えばプログラムの実行順序等を表す関係である。当該リンク属性は、ある情報ノードにかかる実行処理が行われたのちに実行処理が行われる関係のみを示すものである。そのため、情報ノード間の関係は最も疎であるものとし、重みを４としている。逆方向の重みは２倍の８としている。
【００８８】
情報探索部７は、この表（図１０）を参照して、抽出した探索経路の全ての関係リンクに対して重みを割り当てる。そして情報探索部７は、各探索経路の重みの総和を算出する。情報探索部７は、重みの総和を算出した後に、重みの総和が小さい順に高い優先度を割り当てる。
【００８９】
再び図８を参照する。情報探索部６は、キーワードに応じた各探索経路の優先度設定を行うか否かを判定する（Ｓ２１）。当該判定は、例えば入力装置２から入力された探索条件に応じて行われる。
【００９０】
情報探索部６は、以下の手法によりキーワードに応じた各探索経路の優先度設定を行う（Ｓ２２）。キーワードに応じた各探索経路の優先度設定について図１１−１〜図１１−３を参照して説明する。
【００９１】
図１１−１は、図８のＳ１４の処理が終わった時点の探索結果を示す図である。図示するように、探索経路が２つ抽出できたものとする。なお、各情報ノードに対してキーワードが付与されている。当該キーワードは、キーワード保持部９に格納されている。ユーザは、任意のタイミングにおいて入力装置２を介して情報ノードに対するキーワードを入力する。図１１−１の例では、各情報ノードに対して “Ａ”または“Ｂ”に関連するキーワードが付与されている。
【００９２】
情報探索部６は、各探索経路に含まれる情報ノードに付与されたキーワードを抽出する。図１１−２に示すように、情報探索部６は、始点となる情報ノード及び終点となる情報ノードに対し、共にキーワード“Ａ”が付与されている探索経路（図１１−３）を検出する。そのため情報探索部６は、当該探索経路（図１１−３）に対して高い優先度を付与する。なお情報探索部６は、始点となる情報ノードと終点となる情報ノードのみならず、中間に位置する情報ノード群に付与されたキーワードについても参照して優先度を定めてもよい。
【００９３】
なお情報探索部６は、上記の３つの優先度の設定手法の２以上の手法を用いる場合、各々の手法で算出した優先度を基に最終的な優先度を算出すればよい。例えば情報探索部６は、算出した優先度を足し合わせる、乗算する等の任意の方法により最終的な優先度を算出すればよい。
【００９４】
情報探索部６は、Ｓ１６〜Ｓ２２の処理の後に探索経路の表示出力を行う。この際に情報探索部６は、付与した優先度に応じた表示出力を行う。例えば情報探索部６は、最も優先度の高い（または優先度の上位Ｎ件の）探索経路のみをグラフ形式（例えば図２−７）等に示す表示形式）で出力装置３に出力してもよい。
【００９５】
また情報探索部６は、優先度に応じてソートを行い、並べ替えを行った探索経路をテキスト表示（またはファイル出力）してもよい。すなわち情報探索部６は、算出した優先度に応じた出力処理を行えばよい。
【００９６】
続いて本実施の形態にかかるソフトウェア資産管理装置１の効果について説明する。上述のように情報探索部６は、複数の探索経路を抽出した場合に、各探索経路に優先度を付与し、この優先度に応じた出力を行っている。これによりユーザは、より優先して参照すべき探索経路を把握できる。
【００９７】
情報探索部６は、上述の図９−１?図９−６に示すように探索経路の重なり度合いに応じて優先度を付与することができる。これによりユーザは、より一般的と思われる探索経路から優先して参照することが可能となる。
【００９８】
また情報探索部６は、図１０に示すように関係リンクの重み付けに応じて探索経路に優先度を付与することができる。重みは、図１０に示すように情報ノード間の関係性の強さに応じて定められる。これによりユーザは、関係性が密であると想定される探索経路から順に優先して参照することが可能となる。
【００９９】
情報探索部６は、図１１−１?図１１−３に示すように各情報ノードに付与されたキーワードを考慮した優先度の付与も行うことができる。キーワードは、各情報ノードの特徴等を示す情報である。そのためユーザは、キーワードに応じて探索経路内の各情報ノード同士の関連が強いと推定される探索経路から順に優先して参照することが可能となる。
【０１００】
また情報探索部６は、複数の手法で優先度を付与した場合（例えば関係リンクの重み付けに応じて探索経路の優先度を付与し、かつ探索経路の重なり度合いに応じて探索経路の優先度を付与する場合）には、両手法の優先度を考慮して（例えば優先度の足し合わせや乗算を行って）最終的な優先度を算出する。これによりユーザは、複数の観点から最も優先すべき探索経路を参照することができる。
【０１０１】
＜実施の形態３＞
本発明の実施の形態３にかかるソフトウェア資産管理装置１は登録されたソフトウェア資産を活用するための検索機能（更なる情報ノードの絞り込み機能）を持つことを特徴とする。本実施の形態にかかるソフトウェア資産管理装置１について、実施の形態２と異なる点を以下に説明する。
【０１０２】
はじめに実施の形態１及び２にかかるソフトウェア資産管理装置１では問題が生じ得るケースについて説明する。システムに関する設計情報等をリポジトリ７に登録した場合、システムの規模によっては登録する情報量が膨大となってしまう。リポジトリ７に膨大な登録がなされている状態で実施の形態１の検索が行われた場合、検索結果が例えば「終点ブロック内の特定情報ノードを起点として関係定義された（接続関係にある）全ての情報ノード」となってしまう。すなわち検索結果が膨大な数となってしまい、ユーザが本当に必要な情報ノードを特定するのに手間がかかる恐れがある。
【０１０３】
またシステムの実装は、開発担当者の技量に加え、実装上の好みや癖も反映される性質を持ち、品質上の欠点も開発者の癖が反映される。そのため、リポジトリ７内の関係リンクによる直接的な影響範囲の判定だけでは、問題を抽出しきれない場合がある。例えばプログラム上では呼出し関係のない類似した問題を抱えているコード箇所を抽出できない場合がある。
【０１０４】
このような問題に鑑みて、本実施の形態にかかるソフトウェア資産管理装置１は、情報探索部６が利用履歴等を考慮した絞り込みを行うことを特徴とする。以下、詳細に説明する。図１２は、本実施の形態にソフトウェア資産管理装置１の構成を示すブロック図である。
【０１０５】
本実施の形態にかかるソフトウェア資産管理装置１内のリポジトリ７は、実施の形態１の構成に加えて利用履歴保持部１１及び変更理由保持部１２を有する。
【０１０６】
利用履歴保持部１１は、リポジトリ７の利用（データの追加／参照／更新／削除）が行われた際の履歴を保持する。ここで参照以外のリポジトリ７の利用の操作（追加／更新／削除）は、一般的な構成管理ツールと同様にコミット操作により処理が確定される。このコミット時にコミット内容についてコメントが登録されるものとする。変更履歴保持部１２は、コミット時の更新理由の種別等を保持する。
【０１０７】
利用履歴保持部１１及び変更履歴保持部１２により、「利用（追加／参照／更新／削除）された情報ノード」、「コミット時（追加／更新／削除）に入力されたコメント文字列、及び指定（または抽出）されたキーワード」、「参照時に指定された検索条件文字列」等を管理し、システムの利用のされ方の特徴を把握できるようにする。利用履歴保持部１１及び変更履歴保持部１２の詳細構成例について図１３−１及び図１３−２を参照して説明する。
【０１０８】
利用履歴保持部１１は、利用履歴テーブル、情報ノード利用履歴テーブル、キーワード利用履歴テーブルの３種類のテーブルを管理する。利用履歴テーブルは、利用日時、コメント文字列、検索条件、更新理由（へのポインタ）を管理する。情報ノード利用履歴テーブルは、利用日時へのポインタと情報ノードのＩＤへのポインタを管理する。情報ノード履歴テーブルは、利用履歴テーブルと情報保持部８が管理するテーブルを関連付けるためのテーブルである。キーワード利用履歴テーブルは、利用日時へのポインタとキーワードへのポインタを管理する。キーワード利用履歴テーブルは、利用履歴テーブルとキーワード保持部９が管理するテーブルを関連付けるためのテーブルである。
【０１０９】
変更履歴保持部１２は、後輪理由テーブルでコミット時に入力された更新履歴を保持する。各更新履歴には、図示するように係数を割り当てる。係数が大きいほど、後述の検索結果の絞り込みの際に重要と判断される。
【０１１０】
次に利用履歴保持部１１や変更履歴保持部１２のデータを用いた情報探索部６による検索処理について図１４〜図１６を参照して説明する。図１４（１４−１〜１４−６）は、本実施の形態にかかる情報探索部６による検索処理の流れを示すフローチャートである。
【０１１１】
ユーザは、はじめに入力装置２を介して始点情報（始点となるブロック）、終点情報（終点となるブロック）を入力する（Ｓ３１）。例えばユーザは図１５−１において起点ブロックとして抽象度２／詳細度１を指定し、終点ブロックとして抽象度１／詳細度３を指定する。
【０１１２】
情報探索部６は、図４−１及び図４−２に示す手法により始点ブロックから終点ブロックに辿る探索経路を抽出し、抽出した探索経路に含まれる情報ノードを抽出する（Ｓ３２）。情報探索部６は、例えば図１５−２のように情報ノード間を辿って行く探索経路を抽出する。
【０１１３】
情報探索部６は、終点ブロック内の情報ノードを起点とし、当該情報ノードを終点ノードとする関係リンクを辿って行き、逆方向の関係リンクが出現するまで情報ノードを抽出する（Ｓ３２）。図１５−２の例では、情報探索部６は抽象度１／詳細度３にある情報ノードから探索をはじめ、当該情報ノードを終点とする関係リンクを辿る。そして情報探索部６は、この関係リンクの方向（対象としている情報ノードを終点とする関係リンクを辿る）を辿って行く。図１５−２の例では、情報探索部６は探索を開始してから３つめの情報ノードにたどり着いた時点でこの情報ノードを終点とする関係リンクが無いことを判定する。そのため情報探索部６は、３つの情報ノードを抽出する（Ｓ３２）。
【０１１４】
ユーザは、情報探索部６がＳ３２において抽出した情報ノードを基に、検索の起点とする情報ノードを選択する（Ｓ３３）。図１５−３は、各情報ノードを選択した場合の検索範囲の広さを示す図である。図示するように、選択する情報ノードによって検索範囲が変化する。
【０１１５】
情報探索部６は、Ｓ３３において指定された検索起点ノードから検索対象ブロック（図１３の例では、抽象度２／詳細度１、抽象度２／詳細度２、抽象度１／詳細度２、抽象度１／詳細度３の各ブロック）内で関係リンクが設置されている全ての情報ノードを抽出する（Ｓ３４）。図１６は、モジュールＡを起点とした場合に抽出される全ての情報ノードである。図中の斜線が付された情報ノードが全て抽出される。
【０１１６】
抽出ノードが０であった場合、処理が終了される（Ｓ３５：抽出ノード＝０）。抽出ノードが１以上であった場合（Ｓ３５：＞＝１）、情報探索部６はＳ３６以降の処理を実行する。
【０１１７】
ユーザは、コミット時に入力されるコメント（更新理由とは別に入力されるコメント）を解析するための解析ルールを設定する（Ｓ３６）。解析ルールとは、例えば“識別子＝値”のように“＝”で挟まれた左辺が識別子で右辺が値であるようなものであり、解析のための構文定義である。
【０１１８】
情報探索部６は、ユーザからの入力に応じて、抽出された情報ノード（Ｓ３４）に対するノード名やキーワードの一致検索による絞り込みを行う（Ｓ３７）。
【０１１９】
ユーザは、検索の目的に合わせて以後の絞り込みに利用する変更理由毎の係数を調整する（Ｓ３８）。図１３の例では、バグの修正の係数を５、機能強化の係数を２、と設定した場合の状況を示している。
【０１２０】
またユーザは、重要度で情報ノードの絞り込みを行う場合には、必要に応じて適用する係数を設定する（Ｓ３８）。以下、利用シナリオを説明する。例えばユーザはバグ修正のための修正個所の検索が多いと想定し、デフォルトの設定では更新理由の係数のみを適用する設定としている。これに対し、ユーザが変更理由よりも特定のキーワードに関連する情報ノードの利用を基に絞り込みを行いたい場合、キーワードの係数（図１３における係数１）の設定等も行う。
【０１２１】
情報探索部６は、Ｓ３７の絞り込みで抽出した全ての情報ノードに対し、Ｓ３８で設定した係数を用いて重要度を設定する。情報探索部６は、例えば更新回数（利用履歴テーブルに所定期間内に格納されたレコード数）と係数をかけ合わせて各情報ノードに対する重要度を算出する（Ｓ３９）。情報探索部６は、各情報ノードの重要度を出力装置３に表示する。
【０１２２】
ユーザは、重要度と共に表示された情報ノードから特定の情報ノードを選択する。そしてユーザは、必要な更新作業を行う（Ｓ４０）。たとえばユーザは、選択した情報ノードに関連付けられているプログラムのバグ修正を行う。ユーザは、更新作業の完了後に更新理由（図１３の“バグ修正”等）を入力する（Ｓ４１）。またユーザは、Ｓ３６で設定したコミットの解析ルールに従って各属性の値を入力する（Ｓ４２）。情報探索部６は、解析ルールに従って属性値を解析し（Ｓ４３）、入力に誤りがある場合（Ｓ４４：Ｙｅｓ，例えば“＝”がない等）には再度の入力を促す。入力に誤りがない場合（Ｓ４４：Ｎｏ）にはコミットの実行が確定する（Ｓ４５）。
【０１２３】
上述の動作をまとめると、情報探索部６は、探索経路に含まれる情報ノード（Ｓ３７で抽出した情報ノード）から各種係数と利用頻度を用いて情報ノード毎の重要度を算出し、その重要度をユーザに提示している。ユーザは重要度を基に情報ノードを選択して必要な処理を行うとともに、コミット時に更新理由や各属性値等を入力する。重要度を算出することにより、ユーザは修正対象となるような情報ノードを適切に把握することができる。
【０１２４】
ユーザは、類似検索を行うか否かを入力する（Ｓ４６）。情報探索部６は、コミットを行った情報ノードに類似する情報ノード（以下、類似情報ノードと記載する）を検索する。類似情報ノードとは、コミットした情報ノードと関係リンクによるノード間の関係は無いが類似している情報ノードである。なお以下の類似検索の処理は、コミットを行った情報ノードに類情報ノードを検索する事だけに限られず、ユーザが明示的に指定した情報ノードの類似情報ノードを検索する場合にも応用することができる。
【０１２５】
ユーザは、類似情報ノードの検索に当たり、コミット対象となった情報ノードの中から特定の情報ノード及びその情報ノードのリビジョンを選択する（Ｓ４７）。類似情報ノードの検索は、例えば「あるコミットで修正した情報ノードに対応するプログラムにバグがあるため、そのコミット時のリビジョンを選択し、同時期に作成したプログラムで類似する弱点を持っているプログラムに関する情報ノードを抽出する」ことを目的に行われる。
【０１２６】
Ｓ４７において選択した情報ノードが複数ある場合（Ｓ４８：Ｙｅｓ）、情報探索部６は絞り込み条件ＡＮＤまたはＯＲを選択する（Ｓ４９）。その後にユーザは、Ｓ４７で指定した情報ノードに対して、検索キーとなる属性値を抽出する期間を設定する（Ｓ５０）。期間を設定する理由は以下の通りである。例えばコミット対象となる情報ノードに関するプログラムにバグを入れてしまったリビジョンは１点に特定できる。しかしながら同じバージョン向けの開発として複数回のコミットや複数期日にわたってのコミットを行う場合がある。このようにコミットの行われるタイミングにタイムラグが生じる可能性があるため、ユーザは期間を指定する。
【０１２７】
その後にユーザは、どのような観点で類似と判定するかを指定する。詳細にはユーザは、情報ノードに関するどの属性値が同じであれば類似となるかを指定する。ユーザにより更新ユーザＩＤが指定された場合、情報探索部６はＳ４７で抽出した情報ノードの更新ユーザＩＤを読み出す（Ｓ５１）。また情報探索部６は、Ｓ４７で抽出した情報ノードの更新日時を読み出す（Ｓ５２）。情報探索部６は、Ｓ４７で抽出した情報ノードのその他の識別子の属性値（例えばバグの管理番号、開発管理番号、プロジェクト名等）を抽出する（Ｓ５３）。また情報探索部６は、キーワードを有効化する（キーワード利用履歴テーブルの読み出しを可能にする）。またユーザは、その他の属性値について必要に応じて係数設定を行う（Ｓ５４）。
【０１２８】
ユーザは、取得した属性値の中から絞り込みに使用する属性値を選択する（Ｓ５５）。その後に情報探索部６は、類似する情報ノードを検索する期間を絞り込む。例えば更新ユーザが同じ情報ノードを対象とする場合、該当する更新ユーザの在籍期間に合わせて情報ノードの検索期間を絞り込む。
【０１２９】
情報探索部６は、検索対象ブロック内（例えば図１３であれば抽象度２／詳細度１、抽象度２／詳細度２、抽象度１／詳細度２、抽象度１／詳細度３の各ブロック）の情報ノードを一つずつ取り出す（Ｓ５６）。この比較対象となる情報ノードを以下の説明では比較対象情報ノードとも記載する。そして情報探索部６は、比較対象情報ノードの最も古いリビジョンの各属性値を読み出す（Ｓ５７）。
【０１３０】
情報探索部６は、読み出した各属性値と、Ｓ４７で抽出した情報ノードの各属性値と、を指定された条件（対象となる期間、識別子（ユーザＩＤ、バグの管理番号、プロジェクト名））等について評価する（Ｓ５８）。情報探索部６は、両者が条件を満たす（例えば同じ値を持つ）と判定した場合（Ｓ５９：Ｙｅｓ）、比較対象情報ノード及びそのリビジョンを類似情報ノードとして記憶する（Ｓ６０）。
【０１３１】
情報探索部６は、比較した比較対象情報ノードのリビジョンよりも新しいリビジョンがあるかを判定する（Ｓ６１）。新しいリビジョンが存在する場合（Ｓ６１：Ｙｅｓ）、情報探索部６は比較対象情報ノードの新しいリビジョンについてＳ５８の評価を行う（Ｓ６２）。新しいリビジョンが存在しない場合（Ｓ６１：Ｎｏ）、情報探索部６は評価していない比較対象情報ノードが存在するかを判定する（Ｓ６３）。存在する場合（Ｓ６３：Ｙｅｓ）、情報探索部６は別の比較対象情報ノードを対象としてＳ５６から処理を再度実行する。評価していない比較対象情報ノードが存在しない場合（Ｓ６３：Ｎｏ）、情報探索部６は抽出した類似情報ノードを表示する（Ｓ６４）。この際に情報探索部６は、係数に基づいて重要度を算出し（例えば対応する係数１（図１３）と係数２（図１３）の合算値を重要度とする）、重要度順にソートして類似情報ノードを表示する（Ｓ６４）。ユーザは、検索条件を変更して再度の類似ノードの検索を行うかを設定する（Ｓ６５）。再度の検索を行う場合（Ｓ６５：Ｙｅｓ）、情報探索部６は新たに設定された条件でＳ４６から処理を実行する。再度の検索を行わない場合（Ｓ６５：Ｎｏ）、情報探索部６は処理を終了する。この後にユーザは、類似情報ノードを参照し、必要な処理（例えば類似するバグの修正作業等）を行う。
【０１３２】
続いて本実施の形態にかかるソフトウェア資産管理装置１の効果について説明する。上述のように情報探索部６は、属性値の一致（上述の利用履歴やユーザＩＤを用いた比較）を判定する類似検索を行うことにより、情報ノード間に関係リンクが設定されていない場合であっても、ある情報ノードに類似する情報ノードを抽出することができる。これにより、システム開発特性上の類似性を持つ情報ノードを適切に抽出することができ、システム開発の効率を向上させることができる。また、重要度を数値化することにより、ユーザはより容易に必要な情報を得ることができる。
【０１３３】
さらに、上述した実施の形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施の形態のみに限定されるものではなく、種々の変更が可能であることは勿論である。
【０１３４】
実施の形態１または２のソフトウェア資産管理装置１内の情報入力部５及び情報探索部６の任意のコンピュータ内で動作するプログラムとして実現することができる。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１３５】
ソフトウェア資産管理装置1内の情報入力部５及び情報探索部６処理をプログラムとして実行するコンピュータのハードウェア構成の一例を図１７に示す。当該コンピュータは、中央処理装置（ＣＰＵ, Central Processing Unit）１００と、メモリ１０１と、を含んでいる。ＣＰＵ１００及びメモリ１０１は、バスを介して補助記憶装置としてのハードディスク装置（ＨＤＤ）１０２に接続される。ハードディスク装置１０２等の記憶媒体にはオペレーティングシステムと協働してＣＰＵ１００等に命令を与え、上述したソフトウェア資産管理装置１の各処理を実施するためのコンピュータ・プログラムを記憶することができる。
【０１３６】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１３７】
（付記１）
抽象度や詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を示す有向リンクである関係リンクで設定した資産管理マトリクスを保持する情報保持部と、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力部と、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索部と、
を備えるソフトウェア資産管理装置。
【０１３８】
（付記２）
前記情報探索部は、算出した前記探索経路の各々について経路の重なり度合いを算出し、算出した重なり度合いの大きさに応じて優先度を設定する、ことを特徴とする付記１に記載のソフトウェア資産管理装置。
【０１３９】
（付記３）
前記資産管理マトリクス内の前記情報ノードに対するキーワードを保持するキーワード保持部を更に有し、
前記情報探索部は、算出した前記探索経路の各々について、経路に含まれる前記情報ノードの各々に付与されたキーワードの一致性に基づいて優先度を設定する、ことを特徴とする付記１に記載のソフトウェア資産管理装置。
【０１４０】
（付記４）
前記資産管理マトリクス内の前記関係リンクの属性や向きに応じた重み値を設定したテーブルを保持するリンク重み付け保持部を更に有し、
前記情報探索部は、算出した前記探索経路の各々について、経路に含まれる前記関係リンク各々の重み値を累積加算し、当該累積加算値が小さい順序で高い優先度を順に設定する、ことを特徴とする付記１に記載のソフトウェア資産管理装置。
【０１４１】
（付記５）
前記テーブルは、前記関係リンクを順方向に辿る場合の重み値よりも前記関係リンクを逆方向に辿る場合の重み値の方が小さく設定されていることを特徴とする付記４に記載のソフトウェア資産管理装置。
【０１４２】
（付記６）
前記情報探索部は、前記関係リンクを詳細度方向に順方向に辿り、順方向のリンクが無い場合には前記関係リンクを詳細度方向に逆方向に辿って前記探索経路を算出することを特徴とする付記１〜付記５のいずれか１項に記載のソフトウェア資産管理装置。
【０１４３】
（付記７）
前記情報探索部は、前記関係リンクを詳細度方向に辿り、詳細度方向にリンクが無い場合には前記関係リンクを抽象度方向にたどって前記探索経路を算出することを特徴とする付記１〜付記６のいずれか１項に記載のソフトウェア資産管理装置。
【０１４４】
（付記８）
前記情報探索部は、前記優先度の最も高い前記探索経路を表示出力することを特徴とする付記１〜付記７のいずれか１項に記載のソフトウェア資産管理装置。
【０１４５】
（付記９）
前記情報探索部は、前記優先度を用いて前記探索経路をソートして表示出力することを特徴とする付記１〜付記７のいずれか１項に記載のソフトウェア資産管理装置。
【０１４６】
（付記１０）
前記資産管理マトリクス内に含まれる前記情報ノードの各々の利用履歴を保持する利用履歴保持部を更に有し、
前記情報探索部は、前記利用履歴保持部の保持する利用履歴に基づいて、前記探索経路に含まれる情報ノードの各々についての重要度を算出してユーザに提示する、ことを特徴とする付記１〜９のいずれか１項に記載のソフトウェア資産管理装置。
【０１４７】
（付記１１）
前記資産管理マトリクス内に含まれる前記情報ノードの変更理由と当該変更理由の係数を関連付けて管理する変更履歴保持部を備え、
前記情報探索部は、前記利用履歴保持部の保持する利用履歴から前記探索経路に含まれる情報ノードの各々の利用回数を求め、各利用時の更新理由に対応する前記変更履歴保持部が保持する係数を累算することにより前記重要度を算出する、付記１〜１０のいずれか
１項に記載のソフトウェア資産管理装置。
【０１４８】
（付記１２）
前記情報探索部は、所定の情報ノードである対象情報ノードと、任意の情報ノードである比較対象情報ノードと、の属性値の一致性を比較し、当該比較により類似すると判定される場合に前記比較対象情報ノードを類似情報ノードとして抽出する、付記１〜付記１１のいずれか１項に記載のソフトウェア資産管理装置。
【０１４９】
（付記１３）
前記対象情報ノードは、直前にソフトウェア資産管理装置へのコミットの対象となった情報ノードであることを特徴とする、付記１２に記載のソフトウェア資産管理装置。
【０１５０】
（付記１４）
抽象度や詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を示す有向リンクである関係リンクで設定した資産管理マトリクスを保持するリポジトリ、に対する探索方法であって、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力ステップと、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索ステップと、
を実行するソフトウェア資産管理方法。
【０１５１】
（付記１５）
前記情報探索ステップでは、算出した前記探索経路の各々について経路の重なり度合いを算出し、重なり度合いが大きさに応じて前記探索経路の各々の優先度を設定する、ことを特徴とする付記１４に記載のソフトウェア資産管理方法。
【０１５２】
（付記１６）
前記リポジトリは、前記資産管理マトリックス内の前記情報ノードに対するキーワードを保持するキーワード保持部を更に有し、
前記情報探索ステップでは、算出した前記探索経路の各々について、経路に含まれる前記情報ノードの各々に付与されたキーワードの一致性に基づいて前記探索経路の各々の優先度を設定する、ことを特徴とする付記１４に記載のソフトウェア資産管理方法。
【０１５３】
（付記１７）
前記リポジトリは、前記資産管理マトリックス内の前記関係リンクの属性や向きに応じた重み値を設定したテーブルを保持するリンク重み付け保持部を更に有し、
前記情報探索ステップでは、算出した前記探索経路の各々について、前記関係リンクの重み付けを累積加算し、当該累積加算値が小さい順序で優先度を設定する、ことを特徴とする付記１４に記載のソフトウェア資産管理方法。
【０１５４】
（付記１８）
前記テーブルは、前記関係リンクを順方向に辿る場合の重み値よりも前記関係リンクを逆方向に辿る場合の重み値の方が小さく設定されていることを特徴とする付記１７に記載のソフトウェア資産管理方法。
【０１５５】
（付記１９）
前記情報探索ステップでは、前記関係リンクを詳細度方向に順方向に辿り、順方向のリンクが無い場合には前記関係リンクを詳細度方向に逆方向に辿って前記探索経路を算出することを特徴とする付記１４〜付記１８のいずれか１項に記載のソフトウェア資産管理方法。
【０１５６】
（付記２０）
前記情報探索ステップでは、前記関係リンクを詳細度方向に辿り、詳細度方向にリンクが無い場合には前記関係リンクを抽象度方向にたどって前記探索経路を算出することを特徴とする付記１４〜付記１９のいずれか１項に記載のソフトウェア資産管理方法。
【０１５７】
（付記２１）
前記情報探索ステップでは、前記優先度の最も高い前記探索経路を表示出力することを特徴とする付記１４〜付記２０のいずれか１項に記載のソフトウェア資産管理方法。
【０１５８】
（付記２２）
前記情報探索ステップでは、前記優先度を用いて前記探索経路をソートして表示出力することを特徴とする付記１４〜付記２０のいずれか１項に記載のソフトウェア資産管理方法。
【０１５９】
（付記２３）
前記リポジトリは、前記資産管理マトリクス内に含まれる前記情報ノードの変更理由と当該変更理由の係数を関連付けて管理する変更履歴保持部を備え、  
前記情報探索ステップでは、前記利用履歴保持部の保持する利用履歴から前記探索経路に含まれる情報ノードの各々の利用回数を求め、各利用時の更新理由に対応する前記変更履歴保持部が保持する係数を累算することにより前記重要度を算出する、付記１４〜付記２２のいずれか１項に記載のソフトウェア資産管理方法。
【０１６０】
（付記２４）
前記リポジトリは、前記資産管理マトリクス内に含まれる前記情報ノードの変更理由と当該変更理由の係数を関連付けて管理する変更履歴保持部を備え、
前記情報探索ステップでは、前記利用履歴保持部の保持する利用履歴から前記探索経路に含まれる情報ノードの各々の利用回数を求め、各利用時の更新理由に対応する前記変更履歴保持部が保持する係数を累算することにより前記重要度を算出する、付記２３に記載のソフトウェア資産管理方法。
【０１６１】
（付記２５）
前記情報探索ステップでは、所定の情報ノードである対象情報ノードと、任意の情報ノードである比較対象情報ノードと、の属性値の一致性を比較し、当該比較により類似すると判定される場合に前記比較対象情報ノードを類似情報ノードとして抽出する、付記１４〜付記２４のいずれか１項に記載のソフトウェア資産管理方法。
【０１６２】
（付記２６）
前記対象情報ノードは、直前にソフトウェア資産管理装置へのコミットの対象となった情報ノードであることを特徴とする、付記２５に記載のソフトウェア資産管理方法。
【０１６３】
（付記２７）
抽象度や詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を示す有向リンクである関係リンクで設定した資産管理マトリクスを保持するリポジトリ、に対する探索を実行させるプログラムであって、
コンピュータに、
探索開始点に関する始点情報と、探索終了点に関する終点情報と、の入力を受け付ける情報入力ステップと、
前記始点情報を基に導出される前記情報ノードから前記終点情報を基に導出される前記情報ノードまでの１以上の探索経路を、前記関係リンクを順方向または逆方向に辿ること、及び前記関係リンクを抽象度軸方向及び詳細度軸方向に辿ることにより算出する情報探索ステップと、
を実行させるソフトウェア資産管理プログラム。
【０１６４】
（付記２８）
前記情報探索ステップでは、算出した前記探索経路の各々について経路の重なり度合いを算出し、重なり度合いが大きさに応じて前記探索経路の各々の優先度を設定する、ことを特徴とする付記２７に記載のソフトウェア資産管理プログラム。
【０１６５】
（付記２９）
前記リポジトリは、前記資産管理マトリックス内の前記情報ノードに対するキーワードを保持するキーワード保持部を更に有し、
前記情報探索ステップでは、算出した前記探索経路の各々について、経路に含まれる前記情報ノードの各々に付与されたキーワードの一致性に基づいて前記探索経路の各々の優先度を設定する、ことを特徴とする付記２７に記載のソフトウェア資産管理プログラム。
【０１６６】
（付記３０）
前記リポジトリは、前記資産管理マトリックス内の前記関係リンクの属性や向きに応じた重み値を設定したテーブルを保持するリンク重み付け保持部を更に有し、
前記情報探索ステップでは、算出した前記探索経路の各々について、前記関係リンクの重み付けを累積加算し、当該累積加算値が小さい順序で優先度を設定する、ことを特徴とする付記２７に記載のソフトウェア資産管理プログラム。
【０１６７】
（付記３１）
前記テーブルは、前記関係リンクを順方向に辿る場合の重み値よりも前記関係リンクを逆方向に辿る場合の重み値の方が小さく設定されていることを特徴とする付記３０に記載のソフトウェア資産管理プログラム。
【０１６８】
（付記３２）
前記情報探索ステップでは、前記関係リンクを詳細度方向に順方向に辿り、順方向のリンクが無い場合には前記関係リンクを詳細度方向に逆方向に辿って前記探索経路を算出することを特徴とする付記２７〜付記３１のいずれか１項に記載のソフトウェア資産管理プログラム。
【０１６９】
（付記３３）
前記情報探索ステップでは、前記関係リンクを詳細度方向に辿り、詳細度方向にリンクが無い場合には前記関係リンクを抽象度方向にたどって前記探索経路を算出することを特徴とする付記２７〜付記３２のいずれか１項に記載のソフトウェア資産管理プログラム。
【０１７０】
（付記３４）
前記情報探索ステップでは、前記優先度の最も高い前記探索経路を表示出力することを特徴とする付記２７〜付記３３のいずれか１項に記載のソフトウェア資産管理プログラム。
【０１７１】
（付記３５）
前記情報探索ステップでは、前記優先度を用いて前記探索経路をソートして表示出力することを特徴とする付記２７〜付記３３のいずれか１項に記載のソフトウェア資産管理プログラム。
【０１７２】
（付記３６）
前記リポジトリは、前記資産管理マトリクス内に含まれる前記情報ノードの変更理由と当該変更理由の係数を関連付けて管理する変更履歴保持部を備え、  
前記情報探索ステップでは、前記利用履歴保持部の保持する利用履歴から前記探索経路に含まれる情報ノードの各々の利用回数を求め、各利用時の更新理由に対応する前記変更履歴保持部が保持する係数を累算することにより前記重要度を算出する、付記２７〜付記３５のいずれか１項に記載のソフトウェア資産管理プログラム。
【０１７３】
（付記３７）
前記リポジトリは、前記資産管理マトリクス内に含まれる前記情報ノードの変更理由と当該変更理由の係数を関連付けて管理する変更履歴保持部を備え、
前記情報探索ステップでは、前記利用履歴保持部の保持する利用履歴から前記探索経路に含まれる情報ノードの各々の利用回数を求め、各利用時の更新理由に対応する前記変更履歴保持部が保持する係数を累算することにより前記重要度を算出する、付記３６に記載のソフトウェア資産管理プログラム。
【０１７４】
（付記３８）
前記情報探索ステップでは、所定の情報ノードである対象情報ノードと、任意の情報ノードである比較対象情報ノードと、の属性値の一致性を比較し、当該比較により類似すると判定される場合に前記比較対象情報ノードを類似情報ノードとして抽出する、付記２７〜付記３７のいずれか１項に記載のソフトウェア資産管理方法。
【０１７５】
（付記３９）
前記対象情報ノードは、直前にソフトウェア資産管理装置へのコミットの対象となった情報ノードであることを特徴とする、付記３８に記載のソフトウェア資産管理プログラム。
【符号の説明】
【０１７６】
１  ソフトウェア資産管理装置
２  入力装置
３  出力装置
４  処理部
５  情報入力部
６  情報探索部
７  リポジトリ
８  情報保持部
９  キーワード保持部
１０  リンク重み付け保持部
１１  利用履歴保持部
１２  変更履歴保持部
１００  ＣＰＵ(Central Processing Unit)
１０１  メモリ
１０２  ハードディスク装置
【図１】
2014157598.tif 000003
【図２−１】
2014157598.tif 000004
【図２−２】
2014157598.tif 000005
【図２−３】
2014157598.tif 000006
【図２−４】
2014157598.tif 000007
【図２−５−１】
2014157598.tif 000008
【図２−５−２】
2014157598.tif 000009
【図２−５−３】
2014157598.tif 000010
【図２−６】
2014157598.tif 000011
【図２−７−１】
2014157598.tif 000012
【図２−７−２】
2014157598.tif 000013
【図２−７−３】
2014157598.tif 000014
【図２−７−４】
2014157598.tif 000015
【図２−７−５】
2014157598.tif 000016
【図２−７−６】
2014157598.tif 000017
【図２−７−７】
2014157598.tif 000018
【図２−８】
2014157598.tif 000019
【図２−９】
2014157598.tif 000020
【図３−１】
2014157598.tif 000021
【図３−２】
2014157598.tif 000022
【図３−３】
2014157598.tif 000023
【図４−１】
2014157598.tif 000024
【図４−２】
2014157598.tif 000025
【図５】
2014157598.tif 000026
【図６−１】
2014157598.tif 000027
【図６−２】
2014157598.tif 000028
【図６−３】
2014157598.tif 000029
【図６−４】
2014157598.tif 000030
【図６−５】
2014157598.tif 000031
【図６−６】
2014157598.tif 000032
【図６−７】
2014157598.tif 000033
【図６−８】
2014157598.tif 000034
【図６−９】
2014157598.tif 000035
【図７】
2014157598.tif 000036
【図８】
2014157598.tif 000037
【図９−１】
2014157598.tif 000038
【図９−２】
2014157598.tif 000039
【図９−３】
2014157598.tif 000040
【図９−４】
2014157598.tif 000041
【図９−５】
2014157598.tif 000042
【図９−６】
2014157598.tif 000043
【図１０】
2014157598.tif 000044
【図１１−１】
2014157598.tif 000045
【図１１−２】
2014157598.tif 000046
【図１１−３】
2014157598.tif 000047
【図１２】
2014157598.tif 000048
【図１３−１】
2014157598.tif 000049
【図１３−２】
2014157598.tif 000050
【図１４−１】
2014157598.tif 000051
【図１４−２】
2014157598.tif 000052
【図１４−３】
2014157598.tif 000053
【図１４−４】
2014157598.tif 000054
【図１４−５】
2014157598.tif 000055
【図１４−６】
2014157598.tif 000056
【図１５−１】
2014157598.tif 000057
【図１５−２】
2014157598.tif 000058
【図１５−３】
2014157598.tif 000059
【図１６】
2014157598.tif 000060
【図１７】
2014157598.tif 000061