特許第6209931号(P6209931)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6209931ソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6209931
(24)【登録日】2017年9月22日
(45)【発行日】2017年10月11日
(54)【発明の名称】ソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20171002BHJP
【FI】
   G06F17/30 419B
   G06F17/30 170A
   G06F17/30 210A
   G06F17/30 350C
【請求項の数】10
【全頁数】26
(21)【出願番号】特願2013-218189(P2013-218189)
(22)【出願日】2013年10月21日
(65)【公開番号】特開2015-82121(P2015-82121A)
(43)【公開日】2015年4月27日
【審査請求日】2016年9月5日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】野村 芳明
【審査官】 山本 俊介
(56)【参考文献】
【文献】 特開2008−059428(JP,A)
【文献】 特開平10−105390(JP,A)
【文献】 特開2004−139304(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持するリポジトリと、
前記資産管理マトリクス内の前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードのリンク数をカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する情報分析部と、
を備えるソフトウェア資産活用装置。
【請求項2】
前記情報分析部は、
前記資産管理マトリクス内における前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードのリンク数をカウントする関係リンクカウント部と、
前記関係リンクカウント部のカウント結果を基に、始点の前記情報ノード毎に終点の前記情報ノードに設定されたキーワードの割合を算出し、当該割合に基づいて前記資産管理マトリクスに含まれる各キーワード対の関連度を算出する関連度算出部と、
前記関連度算出部が算出した各キーワード対の関連度と閾値を比較して表記ゆれの可能性が高いキーワード対を抽出する関連度検査部と、
を備える請求項1に記載のソフトウェア資産活用装置。
【請求項3】
前記関係リンクには、上下構造にかかる関係性を示す有向の下位構造属性リンクが少なくとも存在し、
前記関係リンクカウント部は、前記下位構造属性リンクのカウント数を他の属性を持つ前記関係リンクよりも多くカウントする、ことを特徴とする請求項2に記載のソフトウェア資産活用装置。
【請求項4】
前記関係リンクカウント部は、前記関係リンクの属性に応じて、カウント数を変化させる、ことを特徴とする請求項2に記載のソフトウェア資産活用装置。
【請求項5】
前記関連度検査部が抽出したキーワード対の表記を統合するように前記リポジトリが更新される、ことを特徴とする請求項2〜請求項4のいずれか1項に記載のソフトウェア資産活用装置。
【請求項6】
前記関連度検査部は、前記閾値よりも大きい関連度を持つキーワード対を関連度の大きい順にソートして表示したインターフェイス画面を生成する、ことを特徴とする請求項2〜5のいずれか1項に記載のソフトウェア資産活用装置。
【請求項7】
前記情報分析部は、予め指定されたキーワード対については関連度の算出処理から除外する、ことを特徴とする請求項1〜請求項6のいずれか1項に記載のソフトウェア資産活用装置。
【請求項8】
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスに対し、
前記資産管理マトリクス内の前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードのリンク数をカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する情報分析ステップ、を有する
ソフトウェア資産活用方法。
【請求項9】
前記情報分析ステップでは、
前記資産管理マトリクス内における前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードのリンク数をカウントする関係リンクカウントステップと、
前記関係リンクカウントステップでのカウント結果を基に、始点の前記情報ノード毎に終点の前記情報ノードに設定されたキーワードの割合を算出し、当該割合に基づいて前記資産管理マトリクスに含まれる各キーワード対の関連度を算出する関連度算出ステップと、
前記関連度算出ステップで算出した各キーワード対の関連度と閾値を比較して表記ゆれの可能性が高いキーワード対を抽出する関連度検査ステップと、
を備える請求項8に記載のソフトウェア資産活用方法。
【請求項10】
請求項8または請求項9に記載のソフトウェア資産活用方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムに関する。
【背景技術】
【0002】
企業等が情報システムの設計、構築、運用を行うためには、様々な情報、例えば、情報システム(以下、単にシステムと呼ぶ)が利用される業務の内容(業務プロセス)を定義づける情報(業務定義情報)、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報等が必要である。これらの情報を、総じてソフトウェア資産と呼ぶ。
【0003】
以前より、このようなソフトウェア資産を管理、活用するための種々のツールが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−256197号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
企業等は、長期にわたりシステムを利用してゆく中で、企業等の活動の目的等に鑑み、システムの拡張や改造を積み重ねることが多い。その結果、システムは、新旧様々なソフトウェア、ハードウェア及び開発技術が混在して複雑に絡み合った状態となり、ソフトウェア資産全体の把握が困難な状況となる。このことは、システムの拡張や改造等(リニューアル)を難しくしており、企業等は、活動の目的や要求の変化に合わせた最適かつ最善なシステムの変更を迅速に行えず、ビジネス機会を逃す等の問題に直面している。
【0006】
従来のソフトウェア資産管理ツールは、かかる問題に十分対応できていない。その要因は、例えば以下のとおりである。
【0007】
業務プロセスと、システムの実装(例えば設計、ソースコード、運用仕様等)との関係は、必ずしも全て文書として明文化されているとは限らず、暗黙知として形成されている場合が多い。これらの暗黙知は、従来のソフトウェア管理ツールでは管理することができない。そのため、システムリニューアルにあたり、例えば改造による業務等への影響範囲を特定するための調査に多大な時間がかかる。さらに、事前に影響範囲を洗い出すことができない場合には、システムリニューアル終盤の評価フェーズで問題が検出されることになり、無駄な時間やコストが発生する。
【0008】
また、システムの設計仕様と、システムの実装(例えばソースコード、運用仕様等)とが一致していない、あるいは設計書自体が存在しない場合がある。このような場合、システムリニューアルにあたり、ソースコードを直接解読して改造すべき箇所や改造による影響範囲を特定する作業が必要となり、多大な時間や費用を要する。
【0009】
仮にシステムリニューアルに成功したとしても、従来のソフトウェア管理ツールは、その過程で得られた情報を、再利用可能あるいはメンテナンス可能な形式で保管しておくための有効な手段を用意していない。そのため、後に再びシステムリニューアルが必要になった場合に再度同様の問題が発生する可能性が高い。したがって、長期的に見て、リニューアルコストを十分抑制できていない。
【0010】
既存のソフトウェア資産ツールは、大規模システムにかかるソフトウェア資産を管理しようとする際に、登録する情報に対し、アクセスを容易にするためにキーワードを関連付ける場合がある。しかしながらキーワードと情報を関連付けて登録する際の登録者の相違、キーワード命名規則の不徹底、設定ミス等によってキーワードを適切に設定できない場合がある。このような場合、あるキーワードによって抽出されるべき情報群が正確に取得できない場合がある。
【0011】
例えば、キーワードとして「ジェネレータ」を用いた情報抽出を行った場合、キーワードとして「ジェネレーター」、「生成器」、「生成部」「generator」が関連付けられている情報が取得できない場合がある。ここでキーワードの類似性を示す辞書等を用いた表記ゆれの検出処理を行うことが考えられる(例えば特許文献1)。
【0012】
しかしながら大規模なソフトウェア資産を扱うリポジトリでは、別の情報群について付されるべきキーワード同士にも類似の文字列が割り当てられる場合がある。また同一のキーワードが付されるべきケースであっても、登録者の情報の解釈ミス等により全く関係の無いキーワードが設定される場合もある。このようなリポジトリに対して、上述の表記ゆれの検出手法、すなわちキーワードを単なる文字列として扱う表記ゆれ検出手法では検出精度が十分ではないという問題があった。
【0013】
本発明は、このような問題点を解決するためになされたものであり、ソフトウェア資産を管理するリポジトリにおけるキーワードの表記ゆれを精度良く検出することができるソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【0014】
本発明にかかるソフトウェア資産活用装置の一態様は、
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持するリポジトリと、
前記資産管理マトリクス内の前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードをカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する情報分析部と、
を備える、ものである。
【0015】
本発明にかかるソフトウェア資産活用方法の一態様は、
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスについて、
前記資産管理マトリクス内の前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードをカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する情報分析ステップ、を有する、ものである。
【0016】
本発明にかかるプログラムの一態様は、
上述のソフトウェア資産活用方法を、コンピュータに実行させるためのプログラムである。
【発明の効果】
【0017】
本発明は、ソフトウェア資産を管理するリポジトリにおけるキーワードの表記ゆれを精度良く検出することができるソフトウェア資産活用装置、ソフトウェア資産活用方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0018】
図1】実施の形態1にかかるソフトウェア資産活用装置100の構成を示す図である。
図2】実施の形態1にかかる情報分析部7の構成を示す図である。
図3】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図4】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図5】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図6】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図7】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図8】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図9】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図10】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図11】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図12】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図13】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図14】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図15】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図16】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図17】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図18】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図19】実施の形態1にかかるソフトウェア資産活用装置100におけるソフトウェア資産の管理方法を示す図である。
図20】実施の形態1にかかる情報保持部8とキーワード保持部9の保持するデータ例を概念的に示した図である。
図21】実施の形態1にかかるリポジトリ4のテーブル構造を示す図である。
図22】実施の形態1にかかるリポジトリ4のテーブル構造を示す図である。
図23】実施の形態1にかかる関係リンクカウント部71のカウント結果を示す図である。
図24】実施の形態1にかかる関連度算出部72の処理結果を示す図である。
図25】実施の形態1にかかる関連度算出部72の処理結果を示す図である。
図26】実施の形態1にかかる関連度検査部73の処理結果を示す図である。
図27】実施の形態1にかかる情報分析部7によるキーワードの表記ゆれの検査の処理の流れを示すフローチャートである。
図28】実施の形態1にかかる情報保持部8とキーワード保持部9の保持するデータ例を概念的に示した図である。
図29】その他の実施の形態にかかる関係リンクカウント部71のカウント結果を示す図である。
図30】その他の実施の形態にかかる関連度算出部72の処理結果を示す図である。
図31】その他の実施の形態にかかる関連度算出部72の処理結果を示す図である。
図32】その他の実施の形態にかかる関連度検査部73の処理結果を示す図である。
図33】その他の実施の形態にかかる関係リンクカウント部71のカウント結果を示す図である。
図34】その他の実施の形態にかかる関連度算出部72の処理結果を示す図である。
図35】その他の実施の形態にかかる関連度算出部72の処理結果を示す図である。
図36】その他の実施の形態にかかる関連度検査部73の処理結果を示す図である。
図37】本発明にかかるソフトウェア資産活用装置100の構成を示す図である。
【発明を実施するための形態】
【0019】
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。図1に、本実施の形態にかかるソフトウェア資産活用装置100の基本構成を示す。ソフトウェア資産活用装置100は、ソフトウェア資産を構成する情報を保持するためのリポジトリ4、リポジトリ4に対する情報の入力、抽出、分析等を行う処理装置3を有する。また、利用者が処理部に対する入力操作を行うための入力装置1、処理装置3の処理結果等を利用者に提示する出力装置2を備えていることが好ましい。
【0020】
入力装置1は、利用者から処理装置3への入力インターフェースであり、例えばリポジトリ4に格納する情報を入力するための手段として機能する。例えば、キーボード、マウス、通信インターフェース等であってよい。
【0021】
出力装置2は、処理装置3から利用者への出力インターフェースであり、各種処理結果の出力に用いられる。例えば、リポジトリ4に格納された情報を外部へ取り出すための手段として機能する。例えば、ディスプレイ、プリンタ、通信インターフェース等であってよい。
【0022】
処理装置3は、リポジトリ4に対して情報を格納する情報入力部5、リポジトリ4内の情報を、様々な条件、形式に従って抽出する情報抽出部6、抽出した情報を所定の手法で分析する情報分析部7を有する。
【0023】
リポジトリ4は、例えば、ソフトウェア資産を構成する情報を格納する情報保持部8、各情報に対して付与されるキーワードを保持するキーワード保持部9、ソフトウェア資産を構成する情報間の関係性に関する情報を格納するリンクテーブル10を有する。リポジトリ4は、ソフトウェア資産活用装置100が有する図示しない記憶装置内に設けられた、論理的な記憶手段である。
【0024】
(リポジトリ)
ここで、図3乃至図19を用いて、リポジトリ4が、どのような概念に基づいてソフトウェア資産を管理するかについて説明する。
【0025】
上述のように、ソフトウェア資産は様々な情報の集合であるが、これらソフトウェア資産を構成する個々の情報単位を情報ノードと呼ぶ。例えば、業務定義情報、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報等を構成する、意味を持つ情報のまとまり(情報単位)が、情報ノードである。文書化されたソフトウェア資産が存在する場合は、その文書データの全部または一部が、情報ノードの実体である。一方、文書化されていない情報についても、文書データ等の実体を有しない情報ノードを作成することができる。例えば、A機能について記載した文書が存在しなくても、情報システムにA機能が必要である場合は、利用者はA機能の名称を冠した、いわば空の情報ノードを作成し、リポジトリ4に格納できる。
【0026】
(マトリクスとブロック)
リポジトリ4は、これらの情報ノードそれぞれを、「抽象度」と「詳細度」の2つの評価基準により分類したうえで格納する。「抽象度」「詳細度」には、それぞれ複数の段階(レベル)が設けられる。情報ノードは、それら複数のレベルのいずれかに割り当てられる。すなわち、リポジトリ4は、情報ノードを、「抽象度」「詳細度」の2軸によって定義されるマトリクス上のいずれかの位置に割り当てて格納する。
【0027】
図3に、本実施の形態が想定するマトリクスを例示する。この例では、マトリクスの縦軸が「抽象度」、横軸が「詳細度」を示す。「抽象度」「詳細度」は、原点から遠ざかるほど大きくなる。すなわち、より原点から離れた位置には、より抽象的又は詳細な内容を含む情報ノードが格納される。本実施の形態では、「抽象度」「詳細度」のレベルを、レベル番号によって識別することとする。すなわち、「抽象度」「詳細度」の最も小さいレベルを、レベル番号「1」と呼ぶ。以降、「抽象度」「詳細度」が大きくなるに従って、昇順のレベル番号「2」「3」・・で呼称する。
【0028】
なお、マトリクスの縦横のサイズ(レベル数)は固定的ではなく、管理対象のソフトウェア資産の規模や複雑さ等に応じて、利用者が自由に設定する事が可能である。
【0029】
情報ノードが割り当てられるマトリクス上の位置を、ブロックと呼ぶ。本実施の形態では、個々のブロックを「抽象度レベル番号−詳細度レベル番号」の形式で、2つの数字の組によって特定する。例えば、図3において、情報ノードXが割り当てられたブロックは「1−2」である。
【0030】
(抽象度と詳細度)
ここで、「抽象度」「詳細度」の意義について説明する。「抽象度」とは、情報ノードを、情報の内容と、システムの実装と、の依存度の強さによって分類する尺度である。例えば、業務定義情報、システム設計情報、ソースコード、テスト仕様情報、運用仕様情報の5種類の情報ノードを、5段階の抽象度レベル1乃至5に分類する場合、実装への依存度が最も低い業務定義情報を、最も高い抽象度レベル(抽象度レベル=5)に割り当てる。以降、実装への依存度が高まる順に、システム設計情報には抽象度レベル=4を、ソースコードには抽象度レベル=3、テスト仕様情報には抽象度レベル=2、運用仕様情報には抽象度レベル=1を割り当てる。
【0031】
「詳細度」とは、情報ノードを、設計の詳細度によって分類する尺度である。例えば、図5に示すように、システム設計情報として、AA機能の概要を自然言語で記述した機能記述と、AA機能におけるデータ遷移を例えばDFD(Data Flow Diagram)等で記述したデータ関連図と、の2種類の情報ノードを、2段階の詳細度レベル1乃至2に割り当てる場合、設計の詳細度が最も高いデータ関連図を、最も高い詳細度レベル(詳細度レベル=2)に割り当てる。一方、設計の詳細度が比較的低い機能記述には詳細度レベル=1を割り当てる。
【0032】
なお、リポジトリ4においては、詳細度が異なるが、同等の抽象度を有する情報ノードには同じ抽象度レベルを、抽象度が異なるが、同等の詳細度を有する情報ノードには同じ詳細度レベルを割り当てることが好ましい。
【0033】
図4に、リポジトリ4を具体的に実現するためのテーブル構造の一例を示す。ソフトウェア資産活用装置100は、例えば図示しない記憶装置上の記憶領域に、上記テーブル構造を有する情報保持部8を備えることができる。情報保持部8は、リポジトリ4に格納された情報ノードを識別するための情報名、情報ノードの位置を示すブロック、及び情報ノードの実体(情報実体。例えば文書データ等)の実際の保存場所を示す情報実体の場所、を少なくとも要素とする複数のレコードを保持できる。本実施の形態では、情報ノードの実体を、情報保持部8の外部の任意の保存場所に保存することとしている。なお、情報ノードの実体を、情報保持部8のレコード内に保持することとしても構わない。
【0034】
(キーワード)
リポジトリ4においては、各情報ノードにキーワードを付与することができる。図5及び図6を用いて、情報ノードとキーワードとの関係について説明する。
【0035】
図5は、情報保持部8の2つのブロック(1−1及び1−2)に、それぞれAA、BB、CC、DDという情報ノードが登録されている様子を示している。ブロック1−1に含まれる情報ノードの情報実体(例えば機能記述)と、ブロック1−2に含まれる情報ノードの情報実体(例えばデータ関連図)とでは、同様の論理構成や用語等が用いられていることが少なくないため、このような事象が生じ得る。ここで、ブロック1−1における情報ノードAAと、ブロック1−2における情報ノードAAとは、何らかの意味的な関連を有していることが多い。そこで、リポジトリ4においては、このような意味的な関連を識別するためのいわばタグとして、これらの情報ノードに対し、同一のキーワードを付与することができる。
【0036】
図6に、情報ノードとキーワードとの関連づけを具体的に実現するためのテーブル構造の一例を示す。図6の情報保持部8は、図4の情報保持部8に比べ、各情報ノード(レコード)にユニークな番号が与えられ、たとえ同一情報名の情報ノードが複数存在しても、それらを識別可能に構成されている点で相違する。この例では、情報名AAが2か所、BBが2か所、CCが2か所、DDが2か所に存在している。
【0037】
キーワード保持部9は、少なくともキーワード名と、情報番号リストとを対応付ける1以上のレコードからなるテーブルである。情報番号リストは、キーワードによって関連付けられる複数の情報ノードを、情報保持部8における番号によって特定する。
【0038】
(関係リンク)
リポジトリ4は、個々の情報ノードの関係性に関する情報を保持することができる。この関係性を、関係リンクと称する。
【0039】
関係リンクは、ある情報ノードと、当該情報ノードと同一ブロック、抽象度レベルのみが異なるブロック、及び詳細度レベルのみが異なるブロックに存在する他の情報ノードと、の間で設定することができる。
【0040】
本実施の形態では、少なくとも以下の4種類の関係リンクを設定できる。同格関係は、同一の対象又は事象等を、別の目的や観点等に基づいて表現した情報ノード同士を関係づける関係リンクである。下位関係は、ある上位概念たる情報ノードと、当該情報ノードの下位概念や構成部品である情報ノードを関係づける関係リンクである。詳細化関係は、ある情報ノードと、当該情報ノードをより詳細化した情報ノードとを関係づける関係リンクである。具体化関係は、抽象的な概念を示す情報ノードと、当該情報ノードをより具体化した情報ノードとを関係づける関係リンクである。以上の他、情報ノード間でのデータの関連性や処理順序等を表現するため、任意の関係リンクを設定することもできる。
【0041】
なお、詳細化関係は、詳細度レベルが異なる情報ノード同士で設定されても良く、同一の詳細度レベルの情報ノード同士で設定されても良い。また、具体化関係は、抽象度レベルが異なる情報ノード同士で設定されても良く、同一の抽象度レベルの情報ノード同士で設定されても良い。なお、リポジトリ4は、詳細化関係又は具体化関係が、詳細度レベル又は抽象度レベルを跨ぐものであるか否かを示すフラグを、それぞれ保持していることが好ましい。
【0042】
図7は、ある仮想の企業の組織構造及び業務構造を、下位関係、及び「関連」の2つの関係リンクを用いて示したものである。ここで、「関連」とは、ある業務に関連する入出力情報を示す関係リンクであるものとする。この図は、以下の事実を示す。この企業は、「業務フロー」に関するソフトウェア資産(例えば文書化されたマニュアル等)を有する。この「業務フロー」の中には、「販売部門」にかかる業務フローが含まれる。「販売部門」の業務フローは、「受注」「在庫確認」「出荷指示」の3つの業務からなる。それぞれの業務における入出力情報は、「注文書」「製造指示」「出荷指示」である。
【0043】
図8は、図7の関係リンクを具体的に実現するためのテーブル構造の一例である。図8の情報保持部8は、図6の情報保持部8と比較して、「出リンク」「入リンク」要素を有している点で相違する。ここで「出リンク」は、その情報ノードを始点とする関係リンクを、リンクテーブル10(後述)で定義された番号によって特定している。また、「入リンク」は、その情報ノードを終点とする関係リンクを、リンクテーブル10(後述)で定義された番号によって特定している。
【0044】
なお、出リンク及び入リンク要素は、情報保持部8の構成上、必須の要素ではない。当該要素は、後述のリンクテーブル10が有する要素と重複しており、リンクテーブル10を情報ノードの番号で検索すれば取得することが可能である。しかしながら、実際の運用においては、リポジトリ4に登録される情報量が増加するほど、リンクテーブル10の検索時間が増大し、ソフトウェア資産活用装置100全体の性能に大きな影響を及ぼすことが予想される。よって、高速化の手段として、情報保持テーブルに出リンク及び入リンク要素を直接持つことは有効である。
【0045】
リンクテーブル10は、複数の情報ノード間に張られた関係リンクを定義、保存するためのテーブルである。リンクテーブル10は、少なくとも番号、属性、始点情報、終点情報を要素とする、1以上のレコードを有する。番号は、関係リンクを一意に特定するための識別子である。属性は、関係リンクの種類を示す。始点情報は、関係リンクの始点となる情報ノードを、情報保持部8で定義された番号によって特定している。終点情報は、関係リンクの終点となる情報ノードを、情報保持部8で定義された番号によって特定している。
【0046】
図9〜11は、ある仮想の企業の組織構造及び業務構造を、同格関係、及び詳細化関係の2つの関係リンクを用いて示したものである。両端が矢印の線は、同格関係を示す。同格関係は、同じブロックの中で、本質的に同じ意味内容を有する情報ノード間に設定されている。片方が矢印の線は、詳細化関係を示す。この例において、詳細化関係は、詳細化レベルの異なるブロックに位置する情報ノード間に設定されている。
【0047】
図12は、ある仮想の企業の組織構造及び業務構造を、具体化関係の関係リンクを用いて示したものである。片方が矢印の線は、具体化関係を示す。この例において、具体化関係は、抽象化レベルの異なるブロックに位置する情報ノード間に設定されている。
【0048】
図13〜19は、ある仮想の企業の組織構造及び業務構造に関するソフトウェア資産全体を、リポジトリ4に登録した例を示している。上述の図7図9〜11、図12は、この図13〜19の一部分を抜き出したものである。
【0049】
利用者は、所定のユーザインタフェースを介し、入力装置1を利用して、処理装置3に、情報ノード、キーワード、関係リンクにかかるデータを入力する。処理装置3の情報入力部5は、これらの入力を受け付けると、リポジトリ4の情報保持部8、キーワード保持部9、リンクテーブル10等に、それぞれデータを格納する処理を行う。
【0050】
上述の図13〜19に示すように、リポジトリ4には膨大なデータサイズの情報ノードが格納される。そのため、キーワードを用いて正確に情報ノードにアクセスできることが重要となる。以下、キーワードに関する処理を行う情報分析部7の詳細構成を図2を参照して説明する。
【0051】
情報分析部7は、関係リンクカウント部71、関連度算出部72、関連度検査部73、及び検査設定保持部74を有する。情報分析部7の各処理部は、キーワードの表記ゆれを検出する各種の処理を行う。各処理部の処理を図20図22も参照して説明する。図20は、情報保持部8とキーワード保持部9の保持するデータ例を概念的に示した図である。図20において「ジェネレータ」というキーワードが付された情報ノードを線囲みにし、「ジェネレーター」というキーワードが付された情報ノードを太線囲みにし、「共通部品」というキーワードが付された情報ノードを点線囲みにしている。図21及び図22は、図20に対応する各テーブルを示す図である。なお、以下の説明では情報保持部8が保持するテーブルを情報保持テーブルと記載し、キーワード保持部9が保持するテーブルをキーワード管理テーブルと記載し、リンクテーブル10が保持するテーブルをリンクテーブルと記載する。
【0052】
関係リンクカウント部71は、リンクテーブル及びキーワード管理テーブルを参照し、各リンクの始点情報ノードに設定されたキーワードと終点情報ノードに設定されたキーワードのリンク数をカウントする。図21及び図22を対象とした関係リンクカウント部71のカウント結果を図23に示す。関係リンクカウント部71は、例えば始点情報ノードに設定されたキーワード「ジェネレータ」から終点情報ノードに設定されたキーワード「ジェネレータ」へのリンク数として「5」(リンクテーブル内のNo.4、No.5、No.8、No.9、No.14)を算出する。同様に関係リンクカウント部71は、例えば始点情報ノードに設定されたキーワード「ジェネレータ」から終点情報ノードに設定されたキーワード「ジェネレーター」のリンク数として「3」(リンクテーブル内のNo.1、No.2、No.7)を算出する。
【0053】
関連度算出部72は、関係リンクカウント部71が算出したカウント結果(図23)を参照し、始点情報ノードに設定されたキーワード毎に、終点情報ノードに設定されたキーワードの割合を算出する。図24図23に示すカウント結果から算出した割合を示す。例えば関連度算出部72は、始点情報ノードに設定されたキーワード「ジェネレータ」について、終点情報ノードに設定されたキーワード「ジェネレータ」の割合を45.6%(5/(5+3+3))、終点情報ノードに設定されたキーワード「ジェネレーター」の割合を27.2%(3/(5+3+3))、終点情報ノードに設定されたキーワード「共通部品」の割合を27.2%(3/(5+3+3))、と算出する。関連度算出部72は、始点情報ノードに設定されたキーワード「ジェネレーター」、「共通部品」についても同様に算出する。
【0054】
関連度算出部72は、算出したキーワードの割合(図24)を用いて、各キーワード間の関連度を算出する。関連度算出部72は、以下の関係式を用いて各キーワード間の関連度を算出する。以下の式は、キーワード間の結びつきの強さを図ることを意図したものである。
キーワード「A」とキーワード「B」の関連度=(キーワード「A」を始点としキーワード「B」を終点とするキーワードの割合+キーワード「B」を始点としキーワード「A」を終点とするキーワードの割合)/2
【0055】
図25図24に示すキーワード割合から算出した各キーワード間(キーワード対)の関連度を示す。例えば関連度算出部72は、キーワード対「ジェネレータ」−「ジェネレーター」の関連度を51.1%((27.2+75)/2)、キーワード対「ジェネレータ」−「共通部品」の関連度を32.4%((27.2+37.5)/2)、キーワード対「ジェネレーター」−「共通部品」の関連度を18.8%((25+12.5)/2)、と算出する。
【0056】
なお関連度算出部72は、単純な平均を算出するのではなく、例えばキーワード対の文字列の類似度等も考慮して関連度を算出してもよい。詳細には関連度算出部72は、キーワード対の文字列が類似している場合には関連度が平均値よりも高くなるように重み付けをして算出処理を行ってもよい。すなわち関連度算出部72は、算出したキーワードの割合(図24)を考慮してキーワード対の関連度を算出するものであれば良い。
【0057】
検査設定保持部74は、関連度算出部72が算出する各キーワード間の関連度と比較する閾値を保持する。当該閾値は、デフォルト値が設定されており、利用者によって設定変更が適宜可能である構成であれば良い。
【0058】
関連度検査部73は、関連度算出部72が算出した各キーワード間(キーワード対)の関連度と、検査設定保持部74が保持する閾値と、を比較する。そして関連度検査部73は、閾値以上の関連度を持つキーワード対を抽出し、抽出したキーワード対を利用者に提示する。
【0059】
図26は、図25から抽出したキーワード対を示すインターフェイス例である。本例では、閾値が30%であるものとする。関連度検査部73は、閾値30%以上の関連度を持つキーワード対を抽出してソートし、各キーワード対に対して行う処置を選択可能なインターフェイス画面を表示している。当該インターフェイス画面は、出力装置2により利用者に提示される。
【0060】
キーワード対に対する処置として、「修正」、「除外」、「保留」が挙げられる。「修正」とは、二つのキーワードをどちらかに統一する修正を行うことを意味する。「修正」が選択された場合、リポジトリ4の各テーブルが書き換えられる。当該書き換え処理は、関連度検査部73が行ってもよく、他の処理部が行ってもよい。ここで利用者がどちらのキーワードに統一すべきかをインターフェイス画面上から選択できるようにしてよい。「除外」が選択された場合、以降の情報分析部7内の各処理部の処理から当該キーワード対が処理対象から除外される。除外対象のキーワード対は、検査設定保持部74が保持し、関連度算出部72は当該キーワード対に関する関連度の算出を行わない。「保留」が選択された場合、当該キーワード対に対する処理は行わない。この場合、閾値を設定し直して再検査すること等の対応が考えられる。
【0061】
上述の図26においてキーワード対「ジェネレータ」と「ジェネレーター」については修正の必要が必要であったものとする。またキーワード対「ジェネレータ」と「共通部品」については修正の必要が不要であったものとする。利用者は、前者のキーワード対に対して「修正」を選択し、後者のキーワード対に対して「除外」を選択することにより自動的にキーワードの表記ゆれの対応が終了する。
【0062】
続いて図27のフローチャートを参照して、情報分析部7によるキーワードの表記ゆれの検査の処理の流れについて改めて説明する。
【0063】
関係リンクカウント部71は、リンクテーブル及びキーワード管理テーブルを参照し、各リンクの始点に設定されたキーワードと終点に設定されたキーワードのリンク数をカウントする(S1)。カウント結果は、例えば上述の図23のようになる。
【0064】
関連度算出部72は、カウント結果を参照し、始点に設定されたキーワード毎に、終点に設定されたキーワードの割合(図24)を算出する(S2)。関連度算出部72は、算出したキーワードの割合(図24)を用いて、各キーワード間の関連度(図25)を算出する(S3)。
【0065】
関連度検査部73は、関連度算出部72が算出した各キーワード間(キーワード対)の関連度と、検査設定保持部74が保持する閾値と、を比較する(S4)。そして関連度検査部73は、閾値以上の関連度を持つキーワード対を抽出し、抽出したキーワード対をソートして利用者に提示する(S4、S5)。
【0066】
続いて本実施の形態にかかるソフトウェア資産活用装置100の効果について説明する。上述のように情報分析部7は、情報ノード間の関係リンクの結びつきの関係を分析し、分析結果に応じてキーワードの表記ゆれの発生確率を検出している。関連リンクは、情報ノード間の関係を示すリンクである。そのため情報ノード間の関係を考慮することにより、単純な文字列比較よりも精度の高いキーワードの表記ゆれを実現することができる。
【0067】
またソフトウェア資産活用装置100は、表記ゆれの可能性が高いキーワード対を検出し、それらに対する処置を提供している。上述の「修正」処置を行うことにより機械的にキーワードの統一を図ることができる。また上述の「除外」処置を行うことにより、修正の必要のないキーワード対が再度表示されることを回避でき、キーワード対の修正ミスが行われることが無くなる。また関連度検査部73が抽出したキーワード対をソートするため、利用者は修正の可能性が高いキーワード対を認識することができる。
【0068】
<その他の実施の形態>
上述した実施の形態1に記載のアルゴリズムに加えて、関係リンクの属性を考慮することにより表記ゆれの検査精度を更に高めることが可能である。以下に、検査精度を向上させる2つの例を説明する。
【0069】
はじめに第1の変形例について説明する。上述のように関係リンクには、属性(下位構造、詳細化、具体化、関連)が割り当てられている。ここで下位構造属性を持つ関係リンクは、情報ノードの親子関係を示すリンクであり、情報ノード間の関連性が非常に密着であることを示している。そこで、関係リンクカウント部71は、下位構造属性を持つ関係リンクに着目してカウント処理を行う。
【0070】
図28は、情報保持部8とキーワード保持部9の保持するデータ例を概念的に示した図である。図28において、下位構造属性を示す関係リンクを太い矢印で示している。関連リンクカウント部71は、下位構造属性の関係リンクに関するカウント数を他のカウント数の2倍にしてカウント処理を行う。
【0071】
図29図32は、下位構造属性の関係リンクのカウント値を2、その他の関係リンクのカウント値を1とした場合の処理結果(カウント結果、算出割合、関連度、及び抽出したキーワード対を示し、図23図26に対応する。)を示す。関係リンクカウント部71は、例えば始点に設定されたキーワード「ジェネレータ」から終点に設定されたキーワード「ジェネレータ」のリンク数として「6」(リンクテーブル(図22)内のNo.4、No.5、No.8、No.9(カウント値=2)、No.14)を算出する(図29)。なお、関連リンクカウント部71のカウント処理以外は、実施の形態1と同様である。
【0072】
図32に示すように、キーワード対「ジェネレータ」−「ジェネレーター」の関連度が図26と比べて上昇し、キーワード対「ジェネレータ」−「共通部品」の関連度が図26と比べて低くなっており、検査精度が向上している。
【0073】
続いて第2の変形例について説明する。第2の例では、関係リンクの属性毎にカウント値を割り振る。具体的に下位構造属性を持つ関係リンクのカウント値は=3、詳細化属性を持つ関係リンクのカウント値=2、具体化属性を持つ関係リンクのカウント値=2、関連属性を持つ関係リンクのカウント値=1とする。当該カウント値は、情報ノード間の結びつきの強さを考慮して設定する。関係リンクカウント部71は、当該カウント値を基にカウント処理を行う。
【0074】
図33図36は、上述のカウント値の割り振りを用いた場合の処理結果(カウント結果、算出割合、関連度、及び抽出したキーワード対を示し、図23図26に対応する。)を示す。関係リンクカウント部71は、例えば始点に設定されたキーワード「ジェネレータ」から終点に設定されたキーワード「ジェネレータ」のリンク数として「12」(リンクテーブル(図22)内のNo.4(カウント値=3)、No.5(カウント値=3)、No.8(カウント値=2)、No.9(カウント値=2)、No.14(カウント値=2))を算出する(図32)。なお、関連リンクカウント部71のカウント処理以外は、実施の形態1と同様である。
【0075】
図36に示すように、キーワード対「ジェネレータ」−「ジェネレーター」の関連度が図26と比べて上昇し、キーワード対「ジェネレータ」−「共通部品」の関連度が図26と比べて低くなっており、検査精度が向上している。
【0076】
上述した実施の形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施の形態のみに限定されるものではなく、種々の変更が可能であることは勿論である。
【0077】
ソフトウェア資産活用装置100内の任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0078】
最後に本発明にかかるソフトウェア資産活用装置100の概要について図37を参照して改めて説明する。リポジトリ4は、抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持する。詳細にはリポジトリ4は、前述の情報保持部8、キーワード保持部9、リンクテーブル10等を用いて資産管理マトリクスに関する各種データを管理する。
【0079】
情報分析部7は、資産管理マトリクス内の関係リンクの各々の始点の情報ノードと終点の情報ノードに設定されたキーワードをカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する。
【0080】
ソフトウェア資産活用装置100は、関係リンクを用いた分析を行うことにより、単なる文字列比較よりもキーワードの表記ゆれを精度良く検出する事ができる。
【0081】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0082】
<付記1>
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスを保持するリポジトリと、
前記資産管理マトリクス内の前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードをカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する情報分析部と、
を備えるソフトウェア資産活用装置。
【0083】
<付記2>
前記情報分析部は、
前記資産管理マトリクス内における前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードをカウントする関係リンクカウント部と、
前記関係リンクカウント部のカウント結果を基に、始点の前記情報ノード毎に終点の前記情報ノードに設定されたキーワードの割合を算出し、当該割合に基づいて前記資産管理マトリクスに含まれる各キーワード対の関連度を算出する関連度算出部と、
前記関連度算出部が算出した各キーワード対の関連度と閾値を比較して表記ゆれの可能性が高いキーワード対を抽出する関連度検査部と、
を備える付記1に記載のソフトウェア資産活用装置。
【0084】
<付記3>
前記関係リンクには、上下構造にかかる関係性を示す有向の下位構造属性リンクが少なくとも存在し、
前記関係リンクカウント部は、前記下位構造属性リンクのカウント数を他の属性を持つ前記関係リンクよりも多くカウントする、ことを特徴とする付記2に記載のソフトウェア資産活用装置。
【0085】
<付記4>
前記関係リンクカウント部は、前記関係リンクの属性に応じて、カウント数を変化させる、ことを特徴とする付記2に記載のソフトウェア資産活用装置。
【0086】
<付記5>
前記関連度検査部が抽出したキーワード対の表記を統合するように前記リポジトリが更新される、ことを特徴とする付記2〜付記4のいずれか1項に記載のソフトウェア資産活用装置。
【0087】
<付記6>
前記関連度検査部は、前記閾値よりも大きい関連度を持つキーワード対を関連度の大きい順にソートして表示したインターフェイス画面を生成する、ことを特徴とする付記2〜5のいずれか1項に記載のソフトウェア資産活用装置。
【0088】
<付記7>
前記情報分析部は、予め指定されたキーワード対については関連度の算出処理から除外する、ことを特徴とする付記1〜付記6のいずれか1項に記載のソフトウェア資産活用装置。
【0089】
<付記8>
抽象度及び詳細度によって区分分けされたブロックに対し、ソフトウェア資産を構成する個々の情報単位である情報ノードを配置し、各情報ノード間の関係性を関係リンクによって設定した資産管理マトリクスについて、
前記資産管理マトリクス内の前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードをカウントし、当該カウントに応じて各キーワード対の関連度を算出し、当該関連度に応じて各キーワード対の表記ゆれの発生確率を算出する情報分析ステップ、を有する
ソフトウェア資産活用方法。
【0090】
<付記9>
前記情報分析ステップでは、
前記資産管理マトリクス内における前記関係リンクの各々の始点の前記情報ノードと終点の前記情報ノードに設定されたキーワードをカウントする関係リンクカウントステップと、
前記関係リンクカウントステップでのカウント結果を基に、始点の前記情報ノード毎に終点の前記情報ノードに設定されたキーワードの割合を算出し、当該割合に基づいて前記資産管理マトリクスに含まれる各キーワード対の関連度を算出する関連度算出ステップと、
前記関連度算出ステップで算出した各キーワード対の関連度と閾値を比較して表記ゆれの可能性が高いキーワード対を抽出する関連度検査ステップと、
を備える付記8に記載のソフトウェア資産活用方法。
【0091】
<付記10>
前記関係リンクには、上下構造にかかる関係性を示す有向の下位構造属性リンクが少なくとも存在し、
前記関係リンクカウントステップでは、前記下位構造属性リンクのカウント数を他の属性を持つ前記関係リンクよりも多くカウントする、ことを特徴とする付記9に記載のソフトウェア資産活用方法。
【0092】
<付記11>
前記関係リンクカウントステップでは、前記関係リンクの属性に応じて、カウント数を変化させる、ことを特徴とする付記9に記載のソフトウェア資産活用方法。
【0093】
<付記12>
前記関連度検査ステップで抽出したキーワード対の表記を統合するように前記リポジトリが更新される、ことを特徴とする付記9〜付記11のいずれか1項に記載のソフトウェア資産活用方法。
【0094】
<付記13>
前記情報分析ステップでは、予め指定されたキーワード対については関連度の算出処理から除外する、ことを特徴とする付記9〜付記12のいずれか1項に記載のソフトウェア資産活用方法。
【0095】
<付記14>
付記8〜付記13のいずれか1項に記載のソフトウェア資産活用方法を、コンピュータに実行させるためのプログラム。
【符号の説明】
【0096】
100 ソフトウェア資産活用装置
1 入力装置
2 出力装置
3 処理装置
4 リポジトリ
5 情報入力部
6 情報抽出部
7 情報分析部
71 関係リンクカウント部
72 関連度算出部
73 関連度検査部
74 検査設定保持部
8 情報保持部
9 キーワード保持部
10 リンクテーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37