(57)【要約】【課題】システム資産における関連する資産を容易且つ適切に分析できるようにする。【解決手段】ソフトウェア開発の複数の資産の中から分析要求に関連する資産を抽出するシステム資産分析装置１０において、関連する資産の対応関係を示す資産対応づけ表２５０を記憶する分析関連情報格納部１２２と、資産に対する分析要求を受け付ける入力受付部１３１と、分析要求に基づく語を含む第１資産を検索する自然言語関連性分析部１３４と、資産対応づけ情報表２５０に基づいて、検索された第１資産と関連する第２資産を特定し、第１資産及び第２資産に基づいて抽出結果に含める資産を特定する照合・統合部１３５と、特定された資産を含む結果を提示する分析結果提示部１３６と、を備えるように構成する。【選択図】図２
2020080013.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発の複数の資産の中から分析要求に関連する資産を抽出するシステム資産分析装置であって、
関連する資産の対応関係を示す対応づけ情報を記憶する記憶部と、
資産に対する分析要求を受け付ける要求受付部と、
前記分析要求に基づく語を含む第１資産を検索する検索部と、
前記対応づけ情報に基づいて、前記検索部により検索された第１資産と関連する第２資産を特定する資産特定部と、
前記第１資産及び前記第２資産に基づいて抽出結果に含める資産を特定する資産分析部と、
前記資産分析部により特定された前記資産を含む結果を提示する提示部と、
を備えるシステム資産分析装置。
【請求項２】
前記資産には、コンピュータ言語で記述された下流工程資産と、前記下流工程資産を作成するための基となった自然言語で記述された上流工程資産とを含み、
前記対応づけ情報は、前記上流工程資産と、前記下流工程資産とを対応づけた情報を含む
請求項１に記載のシステム資産分析装置。
【請求項３】
前記資産における語の出現頻度に基づいて、複数の前記資産同士の対応関係を決定して、前記対応づけ情報を生成する対応づけ情報生成部をさらに備える
請求項１又は請求項２に記載のシステム資産分析装置。
【請求項４】
前記情報生成部は、前記資産の複数の語の出現頻度に基づいて、複数の前記資産の特徴量を検出し、前記特徴量に基づいて前記資産同士の対応関係を決定する
請求項３に記載のシステム資産分析装置。
【請求項５】
前記提示部により抽出結果として提示する資産の種類の指定を受け付ける種類指定受付部をさらに備え、
前記資産分析部は、前記種類指定受付部が受け付けた種類の資産を分析結果に含める資産として特定する
請求項１から請求項４のいずれか一項に記載のシステム資産分析装置。
【請求項６】
前記検索部は、前記分析要求に基づく語と関連する関連語を特定し、前記分析要求に基づく語と、前記関連語とのいずれかを含む資産を検索する
請求項１から請求項５のいずれか一項に記載のシステム資産分析装置。
【請求項７】
前記記憶部は、複数の資産に含まれる複数の語の資産中での意味役割を示す意味役割情報をさらに記憶し、
前記検索部は、前記意味役割情報に基づいて、前記第１資産での前記分析要求に基づく語と同一又は類似の意味役割の前記第２資産中の語を関連語として検出し、前記関連語を含む第３資産を検索し、
前記資産分析部は、前記第１資産、前記第２資産、及び前記第３資産に基づいて抽出結果に含める資産を特定する
請求項６に記載のシステム資産分析装置。
【請求項８】
ソフトウェア開発の複数の資産の中から分析要求に関連する資産を抽出するシステム資産分析装置であって、
関連する資産の対応関係を示す対応づけ情報と、
資産に対する分析要求を受け付ける要求受付部と、
前記分析要求に基づく語を含む第１資産を検索する検索部と、
前記対応づけ情報に基づいて、前記検索部により検索された第１資産と関連する第２資産を特定する資産特定部と、
前記意味役割情報に基づいて、前記第１資産での前記分析要求に基づく語と同一又は類似の意味役割の前記第２資産の語を関連語として検出する関連語検出部と、
前記関連語を含む第３資産を検索する追加検索部と、
前記第１資産及び第３資産に基づいて抽出結果に含める資産を特定する資産分析部と、
前記資産分析部により特定された前記資産を含む結果を提示する提示部と、
を備えるシステム資産分析装置。
【請求項９】
ソフトウェア開発の複数の資産の中から分析要求に関連する資産を抽出するシステム資産分析装置によるシステム資産分析方法であって、
資産に対する分析要求を受け付け、
前記分析要求に基づく語を含む第１資産を検索し、
記憶部に記憶された関連する資産の対応関係を示す対応づけ情報に基づいて、前記検索部により検索された第１資産と関連する第２資産を特定し、
前記第１資産及び前記第２資産に基づいて分析結果に含める資産を特定し、
特定された資産を含む分析結果を提示する
システム資産分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを含むシステムの資産を分析する技術に関する。
【背景技術】
【０００２】
ソフトウェアを含むシステムにおいて、ある仕様等を変更したときは、影響しあう仕様等をもれなく把握し、あわせて変更することが必要となる。しかし、ソフトウェア開発が大規模かつ複雑になるにつれ、その影響範囲の特定に困難が伴うために、影響範囲の特定作業が品質および効率等の開発の成果を左右する事例が増えている。
【０００３】
そこで、従来、開発成果物としての設計ドキュメントないしはその内部の記述項目間の依存関係の把握を支援する方法が提供されている。
【０００４】
特許文献１は、変更対象のドキュメント類と相関関係を有するドキュメント類を検索するとともに特定することが可能な影響範囲検出装置および影響範囲の検出方法を提供している。
【０００５】
特許文献２では、設計文書（仕様書等）のファイル名を識別子として依存関係を持つファイル間の依存関係を記録し、対象のファイルを変更することによって影響を受ける可能性があるファイルを一覧化している。
【０００６】
特許文献３は、プログラム内部の情報を用いて依存関係を把握してプログラムモジュール間の影響強度を評価する手段を提供している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−４７８６１号公報
【特許文献２】特開２００９−２６５８３６号公報
【特許文献３】特開２０１０−２８２４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ソフトウェアを含むシステムの大規模化により、システムの構築や保守にかかるコストが増大し、保守開発等のチームの作業人員数も増える傾向にある。そのため、開発保守や改造作業において、工数や開発量の事前の見積り、見積りに基づく作業分担等の計画の妥当性は開発の成否を左右する要素となっている。ある仕様等を変更したときは、影響しあう仕様等をもれなく把握し、あわせて変更することが必要となる。ここで、開発成果物としての設計書や実装、その入力となった顧客要件や業務仕様等を記述した文書を、システムの資産と称する。長期間保守を繰り返してきたシステムになるほど、理解をしておくべきシステムの資産の累積の数、規模が増え、その影響範囲の特定に困難が伴うために、影響範囲の特定作業が品質及び効率等の開発の成果を左右する事例が増えている。
【０００９】
例えば、上下流の複数工程の成果物の間の依存関係の状態などを人間が把握して、適切な影響範囲を探し出そうとすると、分析者の労力や分析に要する時間を多く費やしてしまう。機能と実装をまたがって依存関係の状態を分析者（ユーザ）が自ら把握することは、機能と実装の双方への深い理解が必要になるため、資産の数、規模と複雑さの拡大に伴い、一層難しくなっている。
【００１０】
本発明は、上記事情に鑑みなされたものであり、その目的は、システム資産における関連する資産を容易且つ適切に分析することのできる技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、一観点に係るシステム資産分析装置は、ソフトウェア開発の複数の資産の中から分析要求に関連する資産を抽出するシステム資産分析装置であって、関連する資産の対応関係を示す対応づけ情報を記憶する記憶部と、資産に対する分析要求を受け付ける要求受付部と、分析要求に基づく語を含む第１資産を検索する検索部と、記対応づけ情報に基づいて、検索部により検索された第１資産と関連する第２資産を特定する資産特定部と、第１資産及び第２資産に基づいて抽出結果に含める資産を特定する資産分析部と、資産分析部により特定された前記資産を含む結果を提示する提示部と、を備える。
【発明の効果】
【００１２】
本発明によれば、システム資産における関連する資産を容易且つ適切に分析することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１実施例に係るシステム資産分析装置の全体構成図である。
【図２】図２は、第１実施例に係るシステム資産分析装置の一部の機能構成図である。
【図３】図３は、第１実施例に係るシステム開発の工程及び資産を説明する図である。
【図４】図４は、第１実施例に係る資産対応づけ表の構成図である。
【図５】図５は、第１実施例に係る語句出現表の構成図である。
【図６】図６は、第１実施例に係るシステム資産分析装置による分析処理のフローチャートである。
【図７】図７は、第１実施例に係る資産対応づけ情報を説明する図である。
【図８】図８は、第１実施例に係る関係資産抽出処理のフローチャートである。
【図９】図９は、第１実施例に係る自然言語関係性分析部による分析結果と、照合・統合部による抽出結果の一例を示す。
【図１０】図１０は、第２実施例に係る類似度表の構成図である。
【図１１】図１１は、第３実施例に係る資産対応づけ表の構成図である。
【図１２】図１２は、第３実施例に係る資産対応づけ表生成処理のフローチャートである。
【図１３】図１３は、第４実施例に係る照合・統合部により抽出された資産を説明する図である。
【図１４】図１４は、第４実施形態に係る表示画面例を説明する図である。
【図１５】図１５は、第５実施例に係る資産対応づけ表の構成図である。
【図１６】図１６は、第５実施例に係る意味役割表の構成図である。
【図１７】図１７は、第５実施例に係る分析処理のフローチャートである。
【発明を実施するための形態】
【００１４】
いくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
以下の説明では、「ＡＡＡ表」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ＡＡＡ表」を「ＡＡＡ情報」と呼ぶことができる。
【実施例１】
【００１６】
まず、第１実施例に係るシステム資産分析装置について説明する。
【００１７】
図１は、第１実施例に係るシステム資産分析装置の全体構成図である。
【００１８】
システム資産分析装置１０は、例えば、一般的なコンピュータにより構成され、ＣＰＵ１００と、主記憶装置１０１と、記憶部の一例としての外部記憶装置１０２と、読取装置１０４と、入出力装置１０５と、通信装置１０６と、これらを通信可能に接続するバス１０７とを備える。
【００１９】
ＣＰＵ１００は、主記憶装置１０１や外部記憶装置１０２に格納されたプログラムを実行することにより、各種処理を実行する。主記憶装置１０１は、例えば、ＲＡＭ（Random Access Memory）であり、ＣＰＵ１００で実行されるプログラムや、ＣＰＵ１００で使用される各種情報を記憶する。外部記憶装置１０２は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）で構成され、各種情報や、各種プログラムを記憶する。
【００２０】
読取装置１０４は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の可搬性を有する可搬型記憶媒体１０３から情報を読み出す。本実施形態では、可搬型記憶媒体１０３に記憶されたシステム資産分析プログラムが読取装置１０４により読み出されて、外部記憶装置１０２に格納される。入出力装置１０５は、情報を表示するディスプレイ（表示装置）や、ユーザからの入力を受け付けるキーボードやマウス等である。入出力装置１０５は、ユーザインターフェース機能を有するディスプレイのように、入出力装置が一体的に構成された装置であってもよく、あるいは、入力装置と出力装置とが独立して構成された装置であってもよい。通信装置１０６は、ＮＩＣ（Network Interface Card）等であり、システム資産分析装置１０を通信ネットワークに接続する。
【００２１】
なお、本実施例では、システム資産分析プログラムを、システム資産分析装置１０が単体で実行するものを例として説明するが、例えば、システム資産分析プログラムを、システム資産分析装置１０と、ネットワークを介して接続されたサーバとにより実行するようにしてもよい。
【００２２】
次に、システム資産分析装置１０における機能構成を説明する。
【００２３】
図２は、第１実施例に係るシステム資産分析装置の一部の機能構成図である。
【００２４】
システム資産分析装置１０の外部記憶装置１０２は、システム資産格納部１２１と、分析関連情報格納部１２２とを備える。
【００２５】
システム資産格納部１２１は、分析対象となるシステム開発における複数の資産（成果物ともいう）を格納する。システム開発における資産としては、例えば、システムに対する要求仕様情報、要求概念情報、機能仕様書情報、設計情報、カタログ項目情報、ソースコード等がある。分析関連情報格納部１２２は、システム資産の分析に必要な各種情報、例えば、分析に利用可能な外部ツールの情報や、後述する資産対応づけ表２５０（図４参照）、語句出現表２６０（図５参照）等を格納する。
【００２６】
主記憶装置１０１は、システム資産分析プログラム等のコンピュータプログラムを保有しており、このプログラムをＣＰＵ１００が実行することにより、各種処理機能部が構成される。主記憶装置１０１のシステム資産分析プログラムをＣＰＵ１００が実行することにより構成される処理機能部としては、要求受付部の一例としての入力受付部１３１と、前処理部１３２と、資産対応づけ情報取得部１３３と、検索部の一例としての自然言語関係性分析部１３４と、資産特定部及び資産分析部の一例としての照合・統合部１３５と、提示部の一例としての分析結果提示部１３６とがある。なお、これら機能部の処理は、ＣＰＵ１００が実行する処理ということができる。
【００２７】
入力受付部１３１は、入出力装置１０５を介して、関連する資産を分析するための分析要求をユーザから受け付ける。分析要求としては、関連する資産を分析するために用いる単語、語句、文、文章であってもよい。本実施例では、分析要求に基づく語、例えば、分析要求の語や、分析要求の文に含まれる語等を「指定語」と称する。本実施例では、この指定語をキーとして、関連する資産を検索したり、分析したり等する。なお、指定語としては、１つの語であってもよく、複数の語、すなわち、語句又は文であってもよい。
【００２８】
前処理部１３２は、システム資産格納部１２１から資産対応づけ情報取得部１３３及び自然言語関係性分析部１３４で処理するためのデータを取得し、それらデータに基づいて、語句出現表２６０や、資産対応づけ表２５０を生成し、外部記憶装置１０２に格納する。
【００２９】
資産対応づけ情報取得部１３３は、外部記憶装置１０２から資産対応づけ表２５０を取得する。自然言語関係性分析部１３４は、外部記憶装置１０２から語句出現表２６０を取得し、語句出現表２６０に基づいて、入力受付部１３１で受け付けた分析要求に基づく指定語を含む資産を検索する。
【００３０】
照合・統合部１３５は、資産対応づけ情報取得部１３３及び自然言語関係性分析部１３４で得られた結果を、照合・統合して、分析要求に関連する資産を特定し、特定した資産を分析結果とする。分析結果提示部１３６は、照合・統合部１３５による分析結果を、ユーザにわかりやすく可視化して入出力装置１０５に表示する。
【００３１】
ここで、システム開発における上流工程、下流工程の概念や、各工程において成果物として得られる資産について説明する。
【００３２】
図３は、第１実施例に係るシステム開発の工程及び資産を説明する図である。
【００３３】
システム開発における上流工程は、例えば自然言語等を使用した文書や図形など、一般の人が理解できる形で表現された、システムに対する要求や仕様を生成する工程を指す。上流工程で得られる成果物（資産）としては、漠然とした概念のレベルや、詳細な仕様書等のような具体化されたレベルがある。上流工程は、例えば、顧客の要求概念を分析して抽出する工程である上流工程１と、その要求を実現するための具体的な機能仕様書、設計情報、カタログ項目等を作成する工程である上流工程２とに分けることができる。上流工程１の成果物（資産）は、例えば、顧客の要求概念を列挙し明確化した文書情報（文書データ）であり、上流工程２の成果物（資産）は、要求を実現するための具体的な機能仕様書、設計書、カタログ項目等である。
【００３４】
システム開発における下流工程は、コンピュータを用いて上流工程の要求仕様を実現するためのソースコード等の実装、換言するとコンピュータ言語で表現された形式で表現されたデータを生成する工程を指す。また、下流工程に、そのソースコードを試験するテスト工程等を含めてもよい。ソースコードには、自然言語（日本語等）が補助的な説明等として記述されているものもある。下流工程の成果物（資産）は、ソースコード等である。なお、ソースコード中の一部分、例えばモジュールについても資産である。
【００３５】
次に、資産対応づけ表２５０について説明する。
【００３６】
図４は、第１実施例に係る資産対応づけ表の構成図である。
【００３７】
資産対応づけ表２５０は、システム開発における対応関係のある資産同士を対応づけて管理する資産対応づけ情報をテーブル形式としたものである。資産対応づけ表２５０の各エントリは、資産名（関数名）欄２５１と、資産名（仕様書項目名）欄２５２とを含む。資産名（関数名）欄２５１には、エントリに対応するソースコード中の関数のモジュール（資産の一例）の名称（関数名）が格納される。資産名（仕様書項目名）欄２５２には、エントリに対応する資産名（関数名）欄２５１に名称が格納されている下流工程のモジュールと対応関係がある上流工程の仕様書項目（資産の一例）の名称が格納される。なお、仕様書項目名に代えて、章番号等の仕様書の記載箇所を示すＩＤ情報としてもよい。
【００３８】
このエントリによると、資産名（関数名）欄２５１のモジュールは、資産名（仕様書項目名）欄２５２の仕様書項目に基づいて作成されたものであることがわかる。より具体的には、図４の一行目のエントリによると、下流工程の資産である関数ｆ１が、上流工程の資産である仕様書項目Ｓ１を実現するためのモジュールであることを示している。なお、図４の関数名ｆ、仕様書項目名Ｓとの対応関係の具体例は、あくまでも一例を示すものである。
【００３９】
資産対応づけ表２５０は、ユーザが予め作成した情報を外部からシステム資産分析装置１０に入力して分析関連情報格納部１２２に格納するようにしてもよく、システム資産分析装置１０の入出力装置１０５を利用してユーザが入力して作成するようにしてもよく、システム資産分析装置１０において、所定のアルゴリズムに従って作成するようにしてもよい。
【００４０】
なお、図４の資産対応づけ表２５０は、下流工程の資産と、上流工程の資産とのそれぞれに対応する欄を設けて対応関係を示しているが、これに限られず、複数の上流工程がある場合には、それぞれの上流工程ごとの資産に対応する欄を設けるようにして、下流工程の資産と、複数の上流工程のそれぞれの工程の資産とを対応づけるようにしてもよい。また、図４の資産対応づけ表２５０は、下流工程の資産と、上流工程の資産とを対応づけるようにしているが、同一階層の資産同士を対応づけるようにしてもよい。また、対応付ける資産の単位としては、ソースコード、仕様書の全体としてもよく、それらの一部分としてもよい。
【００４１】
次に、語句出現表２６０について説明する。
【００４２】
図５は、第１実施例に係る語句出現表の構成図である。
【００４３】
語句出現表２６０は、各資産における語の出現の有無を管理する表であり、例えば、行名称を各資産の名称、例えば、文書名、ソースコードファイル名、関数名等とし、列名称を複数の語のそれぞれとし、行名称及び列名称のそれぞれの交点のセルには、対応する資産における、対応する単語の出現有無が設定されている。具体的には、対応する資産において対応する単語が存在している場合には、存在していることを意味する「１」が設定され、存在していない場合には、存在しないことを意味する「０」が設定される。なお、図５に示す語句出現表２６０では、資産における単語の出現を管理するようにしているが、例えば、複数の語（語句、文等）を単位として、その単位の出現を管理するようにしてもよい。
【００４４】
次に、システム資産分析装置１０の処理動作について説明する。
【００４５】
図６は、第１実施例に係るシステム資産分析装置による分析処理のフローチャートである。
【００４６】
まず、入力受付部１３１は、入出力装置１０５により、ユーザから関連する資産を分析するための分析要求の入力を受け付ける（Ｓ１０１）。
【００４７】
次いで、前処理部１３２は、複数の資産（ソースコードや設計文書情報など）に対して、文字コード変換などの前処理を行う（Ｓ１０２）。
【００４８】
次いで、資産対応づけ情報取得部１３３は、資産対応づけ情報を取得（Ｓ１０３）し、自然言語関係性分析部１３４は、自然言語関係性を分析する処理を実行する（Ｓ１０４）。ステップＳ１０３とＳ１０４の処理は、並列的に実施してもよい。なお、資産対応づけ情報を使用しない場合には、ステップＳ１０３の処理を省いてもよい。
【００４９】
次いで、照合・統合部１３５は、ステップＳ１０３で得られた資産対応づけ情報と、ステップＳ１０４で得られた自然言語関係性の分析結果（第１資産を含む結果）とに基づいて、分析結果を統合する関係資産抽出処理（図８参照）を実行する（Ｓ１０６）。
【００５０】
次いで、分析結果提示部１３６は、関係資産抽出処理により得られた分析結果を提示する（Ｓ１０６）。具体的には、分析結果提示部１３６は、入出力装置１０５により分析結果を表示する。
【００５１】
ここで、ステップＳ１０３の処理について詳細に説明する。
【００５２】
図７は、第１実施例に係る資産対応づけ情報を説明する図である。
【００５３】
ステップＳ１０３では、資産対応づけ情報取得部１３３は、図４の資産対応づけ情報表２５０の情報に基づいて、図７に示す資産対応づけ情報を生成する。資産対応づけ情報は、図４の資産対応づけ情報表２５０と同義の情報であり、各資産をノードで表現し、資産間の対応関係を、ノード間をつなぐリンクで表現している。
【００５４】
次に、ステップＳ１０４の処理について詳細に説明する。なお、図５を参照して説明する。
【００５５】
自然言語関係性分析部１３４は、語句出現表２６０を参照して処理を行う。例えば、分析要求に基づく指定語が「年齢」である場合には、自然言語関係性分析部１３４は、語句出現表２６０の「年齢」を列名に持つ列２６１において、「１」が設定されているレコード（行）の名称を特定する。この例では、自然言語関係性分析部１３４は、レコードの名称として、Ｓ１，Ｓ２，Ｓ３，Ｓ４，ｆ１，ｆ２を特定する。ここで、これらの名称は、「年齢」を記述に含む資産の名称である。つまり、「年齢」という単語は、Ｓ１，Ｓ２，Ｓ３，Ｓ４，ｆ１，ｆ２に含まれていることを意味する。次いで、自然言語関係性分析部１３４は、Ｓ１，Ｓ２，Ｓ３，Ｓ４，ｆ１，ｆ２を指定語「年齢」と関係が強い資産であるとする分析結果とする。なお、指定語が「撤回」である場合には、同様な処理により、「撤回」を列名に持つ列２６２を参照し、「撤回」と関係が強い資産を分析結果とする。
【００５６】
次に、関係資産抽出処理（図６のステップＳ１０５）について詳細に説明する。
【００５７】
図８は、第１実施例に係る関係資産抽出処理のフローチャートである。なお、フローチャートの説明において、資産対応づけ表２５０が図４に示す状態であり、語句出現表２６０が図５に示す状態であり、指定語が年齢である場合の具体例を適宜説明する。図９は、第１実施例に係る自然言語関係性分析部による分析結果と、照合・統合部による抽出結果の一例を示す。
【００５８】
まず、照合・統合部１３５は、資産対応づけ情報取得部１３３の取得結果と、自然言語関係性分析部１３４で得られた分析結果とを入力する（Ｓ２０１）。
【００５９】
次いで、照合・統合部１３５は、自然言語関係性分析部１３４で得られた分析結果に含まれない資産のうちの関数名を取得する（Ｓ２０２）。例えば、自然言語関係性分析部１３４が図９（Ａ）に示す分析結果（Ｓ１，Ｓ２，Ｓ３，Ｓ４，ｆ１，ｆ２）を出力した場合には、照合・統合部１３５は、分析結果以外の関数名（この例ではｆ３，ｆ７）を取得する。
【００６０】
次に、照合・統合部１３５は、資産対応づけ表２５０を参照し、ステップＳ２０２で取得した関数名を含むレコードを各々抽出する（Ｓ２０３）。具体例においては、照合・統合部１３５は、関数名ｆ３，ｆ７を含むレコードを抽出する。これらレコードによると、関数名ｆ３の関数は、Ｓ５の仕様書項目に対応し、関数名ｆ７の関数は、Ｓ４の仕様書項目に対応する。
【００６１】
次いで、照合・統合部１３５は、関数名に対応づけられている仕様書項目名のそれぞれに対して、自然言語関係性分析部１３４による分析結果にあるか否かを判定する（Ｓ２０４）。具体例においては、照合・統合部１３５は、仕様書項目名Ｓ４，Ｓ５を分析結果（Ｓ１，Ｓ２，Ｓ３，Ｓ４，ｆ１，ｆ２）と比較して判定する。
【００６２】
この結果、仕様書項目名が分析結果にある場合（Ｓ２０４：ＹＥＳ）には、照合・統合部１３５は、自然言語関係性分析部１３４による分析結果の下端に、この仕様書項目名に対応する関数名（第２資産の一例）を追加し（Ｓ２０５）、この分析結果を分析結果提示部１３６に出力し（Ｓ２０６）、処理を終了する。具体例においては、仕様書項目名Ｓ４については、分析結果にあるので、Ｓ４に対応するｆ７を図９（Ｂ）に示すように分析結果に追加したものを抽出結果として出力する。ここで、図９（Ｂ）に示す抽出結果が、指定語「年齢」に関係がある（関係が強い）資産群である。
【００６３】
一方、仕様書項目名が分析結果にない場合（Ｓ２０４：ＮＯ）には、処理を終了する。具体例においては、仕様書項目名Ｓ５については、分析結果にないので、Ｓ５に対応するｆ３については、分析結果に追加されない。
【００６４】
上記した関係資産抽出処理によると、具体例に示すように、自然言語関係性分析部１３４による分析結果（図９（Ａ））に対して、関数名ｆ７を追加した抽出結果が、指定語「年齢」に関係がある（関係が強い）資産群として得られる。
【００６５】
例えば、ソースファイルの関数等の処理内容の説明を仕様書に自然言語で記述しているが、ソースファイル内においてコメントとしてその自然言語で記述していない場合においては、その自然言語を指定語とすると、自然言語関係性分析部１３４による分析結果には、ソースファイルが含まれない。これに対して、上記した関係資産抽出処理によると、仕様書とソースファイルとの対応関係から、このようなソースファイル（具体例におけるｆ７がこれに対応）を抽出結果に含めることができる。したがって、指定語に関係する改修作業等の影響範囲として把握が必要な資産（具体例のｆ７のような関数等の資産）を漏らさずに抽出結果に含めることができる。
【実施例２】
【００６６】
次に、第２実施例に係るシステム資産分析装置について説明する。なお、第２実施例については、第１実施例と異なる点を中心に説明するとともに、便宜的に、第１実施例に係る図面を参照して説明する。
【００６７】
第１実施例に係るシステム資産分析装置では、自然言語関係性分析部１３４が指示語と同一の語等を資産が含む場合に、この資産が指示語と「関係性がある（関係性が強い）」としていたが、第２実施例に係るシステム資産分析装置における自然言語関係性分析部１３４は、指示語と同一の語（語句、文等）でなくても、資産が所定の関連性がある語（例えば、類似性がある語（語句、文等））を含む場合にも、この資産が指定語と関連性があるとする。
【００６８】
第２実施例に係る自然言語関係性分析部１３４は、第１実施例の自然言語関係性分析部１３４と同様に、語句出現表２６０を参照するが、自然言語関係性分析部１３４は、語句出現表２６０に基づいて、類似度表２７０（図１０参照）を作成して参照することが特徴的である。
【００６９】
次に、類似度表２７０のデータ構造及び類似度表２７０の作成及び参照の流れについて説明する。
【００７０】
図１０は、第２実施例に係る類似度表の構成図である。
【００７１】
類似度表２７０は、或る指定語（図１０例では、「アッカイ」）についての１以上の単語との類似度を管理する表であり、各単語に対応するエントリを格納する。なお、図１０の類似度表２７０は、指定語と単語との類似度を管理するようにしているが、単語に限られず、語句や、文との類似度を管理するようにしてもよい。類似度表２７０のレコード（行）は、単語名欄２７１と、類似度欄２７２とを含む。単語名欄２７１には、分析要求における指定語となる可能性のある語、資産から抽出される語、語句出現表２６０の列名称の語等が格納される。類似度欄２７２には、単語名欄２７１に格納されている語と、特定の指定語との類似の度合いを示す類似度が格納される。類似度としては、例えば、編集距離としてもよく、別の類似指標を用いてもよい。さらに、例えば、指定語をカタカナ表記とし、単語を漢字表記とし、指定語と単語のカタカナ表記における編集距離を類似度としているが、漢字表記の編集距離としてもよく、ひらがな表記による編集距離としてもよく、ローマ字表記による編集距離としてもよく、英単語での編集距離としてもよい。
【００７２】
類似度表２７０においては、特定のレコード（例えば、最も下のレコード）の単語名欄２７１には、この類似度表２７０が対象とする特定の指定語（図１０では、「アッカイ」）が格納されており、このレコードにより、特定の指定語を確認することができる。
【００７３】
類似度表２７０によると、「撤回」という単語の指定語に対する類似度が「３」であることがわかる。この例では、類似度は、類似度の数値が小さいほど、類似していることを意味しているものとする。したがって、図１０の類似度表２７０によると、「撤回」の類似度の数値が最も小さいので、指定語「アッカイ」に最も類似していることがわかる。
【００７４】
自然言語関係性分析部１３４は、入力受付部１３１により入力された指定語と、複数の語との類似度を示す類似度表２７０を作成する。なお、指定語に対応する類似度表２７０が既に存在する場合には、類似度表２７０を作成しなくてもよい。
【００７５】
自然言語関係性分析部１３４は、指定語に対応する類似度表２７０を参照して、指定語に類似する単語（関連語の一例）を取得する。例えば、指定語が「アッカイ」であり、図１０に示す類似度表２７０が作成されている場合には、自然言語関係性分析部１３４は、指定語の「アッカイ」に類似する単語として「撤回」を取得する。
【００７６】
この後、自然言語関係性分析部１３４は、指定語のアッカイと同様に、「撤回」についても指定語と同様な自然言語関係性の分析を行う。具体的には、自然言語関係性分析部１３４は、図５に示す語句出現表２６０を参照し、「撤回」を列名に持つ列２６２に「１」が記入されているレコード（行）の名称（Ｓ２，Ｓ３，ｆ３）を分析結果とする。すなわち、「撤回」という単語は、Ｓ２，Ｓ３，ｆ３に含まれているとの分析結果を生成する。なお、本実施例では、自然言語関係性分析部１３４は、指定語による分析結果と、関連語による分析結果とを合わせものを分析結果とする。
【００７７】
この例によると、「テッカイ」の誤記として、「アッカイ」が分析要求に指定されてしまった場合であっても、「テッカイ」や「撤回」を用いて分析等が行われて、分析結果が生成されるので、分析要求における誤記等の表記揺らぎをも許容して、ユーザが所望する資産を適切に抽出することができる。
【００７８】
また、資産内に「テッカイ」の誤記である「アッカイ」が含まれ、指定語を「撤回」とした場合においても、上記同様な処理により、「アッカイ」が含まれている資産を適切に抽出することができる。
【実施例３】
【００７９】
次に、第３実施例に係るシステム資産分析装置について説明する。なお、第３実施例については、第１実施例と異なる点を中心に説明するとともに、便宜的に、第１実施例に係る図面を参照して説明する。
【００８０】
第３実施例に係るシステム資産分析装置は、第１実施例に係る前処理部１３２に、資産対応づけ表を自動で作成する機能を備えるようにすることにより、作成効率を向上させるものである。以下、第３実施例に係る前処理部を便宜的に前処理部１３２として説明する。
【００８１】
システム資産分析装置の前処理部１３２は、資産に記述されている自然言語の出現頻度や位置の特徴を数値化した特徴量を算定し、算定した特徴量に基づいて資産間の類似性を評価し、相互に類似する資産を特定して部分集合として集め、部分集合に基づいて、資産対応づけ表２８０（図１１参照）を生成する。ここで、前処理部１３２が、対応づけ情報生成部に相当する。
【００８２】
図１１は、第３実施例に係る資産対応づけ表の構成図である。
【００８３】
資産対応づけ表２８０は、システム開発における対応関係のある資産同士を対応づけて管理する資産対応づけ情報をテーブル形式としたものである。資産対応づけ表２８０の各エントリは、資産名（関数名）欄２８１と、資産名（類似資産名）欄２８２とを含む。資産名（関数名）欄２８１には、エントリに対応するソースコード中の関数のモジュール（資産の一例）の名称（関数名）が格納される。資産名（類似資産名）欄２８２には、エントリに対応する資産名（関数名）欄２８１に名称が格納されている下流工程のモジュールと対応関係がある１以上の資産名が格納される。なお、図１１に示す例では、資産名（類似資産名）欄２８２には、下流工程のモジュールの資産名、すなわち、関数名だけが格納されているが、上流工程の仕様書項目（資産の一例）の名称を格納するようにしてもよい。
【００８４】
前処理部１３２による資産対応づけ表生成処理の処理動作について説明する。
【００８５】
図１２は、第３実施例に係る資産対応づけ表生成処理のフローチャートである。
【００８６】
まず、前処理部１３２は、システム資産格納部１２１から分析対象となる複数の資産（関数、仕様書等）を受け付け（Ｓ４０１）、資産内の語句の出現頻度を示す語句出現表を作成する（Ｓ４０２）。ここで、ステップＳ４０２で作成される語句出現表は、図５に示す語句出現表２６０における各セルの値を、「１」，「０」ではなく、資産における対応する語の出現頻度（出現回数）を格納するようにしたものである。
【００８７】
次いで、前処理部１３２は、分析対象の資産の中から処理対象の１つの資産を決定し、この処理対象の資産に対応する語句出現表の１つの行を取得し（Ｓ４０３）、取得した行の各語の出現頻度に基づいて、資産における各語の重要度を算出し、資産の特徴量を算出する（Ｓ４０４）。ここで、各語の重要度としては、公知であるＴＦ−ＩＤＦ法におけｔｆ−ｉｄｆ値としてもよい。また、資産の特徴量は、例えば、各語の重要度を構成要素とするベクトルである。なお、資産の特徴量は、これに限られない。
【００８８】
次いで、前処理部１３２は、特徴量を未算出の資産があるか否かを判定し（Ｓ４０５）、特徴量を未算出の資産がある場合（Ｓ４０５：Ｙｅｓ）には、処理をステップＳ４０３に進めて、未算出の資産に対する特徴量を算出する処理を行う。
【００８９】
一方、特徴量を未算出の資産がない、すなわち、分析対象の全ての資産に対して特徴量を算出した場合（Ｓ４０５：Ｎｏ）には、前処理部１３２は、分析対象の全ての資産から全ての２つの資産の組み合わせを導出する（Ｓ４０６）。
【００９０】
次いで、前処理部１３２は、導出した２つの資産の組み合わせの中の一組の資産を以下の処理対象として取得する（Ｓ４０７）。次いで、前処理部１３２は、処理対象の一組の資産間の類似度を算出する（Ｓ４０８）。ここで、資産間の類似度としては、例えば、各資産の特徴量であるベクトル間の余弦としてもよい。
【００９１】
次いで、前処理部１３２は、算出された類似度が所定の基準類似度よりも高いか否かを判定し（Ｓ４０９）、算出された類似度が所定の基準類似度よりも高い場合（Ｓ４０９：Ｙｅｓ）には、これら資産同士が類似していると考えられるので、資産対応づけ表２８０に、この組の資産を追加し（Ｓ４１０）、処理をステップＳ４１１に進める。一方、算出された類似度が所定の基準類似度よりも高くない場合（Ｓ４０９：Ｎｏ）には、この組の資産同士が類似していないと考えられるので、前処理部１３２は、処理をステップＳ４１１に進める。
【００９２】
ステップＳ４１１では、前処理部１３２は、未処理の資産の組み合わせがあるか否かを判定し、未処理の資産の組み合わせがある場合（Ｓ４１１：Ｙｅｓ）には、未処理の資産の組に対して同様な処理を実行させるために、処理をステップＳ４０７に進める。一方、未処理の資産の組み合わせがない場合（Ｓ４１１：Ｎｏ）には、全ての資産の組み合わせに対して類似しているか否かを判定したことを意味しているので、前処理部１３２は、処理を終了する。
【００９３】
この資産対応づけ表生成処理によると、図１１に示すような資産対応づけ表２８０を、ユーザの入力による設定によらず、生成することができる。
【実施例４】
【００９４】
次に、第４実施例に係るシステム資産分析装置について説明する。なお、第４実施例に係るシステム資産分析装置は、第１乃至第３実施例に係る照合・統合部１３５により、ユーザが必要とする資産に限定して分析結果を表示するようにして、出力に係る処理効率及びユーザの視認性を向上させるようにしたものである。なお、便宜的に、第１実施例に係る図面を参照して説明する。
【００９５】
第４実施例に係るシステム資産分析装置における入力受付部１３１は、更に、出力する対象とする資産種別をユーザから受け付ける。照合・統合部１３５は、分析結果の中から入力受付部１３１により受け付けた資産種別の資産のみを抽出する。ここで、入力受付部１３１が種類指定受付部に相当する。
【００９６】
照合・統合部１３５により抽出された資産の範囲について説明する。
【００９７】
図１３は、第４実施例に係る照合・統合部により抽出された資産を説明する図である。図１３（Ａ）は、出力対象の資産種別を受け付けていない場合の資産を示し、図１３（Ｂ）は、資産種別として「関数」を受け付けた場合の資産を説明する図である。
【００９８】
入力受付部１３１が出力対象の資産種別を受け付けていない場合には、図１３（Ａ）に示すように、資産として、仕様書Ｓ１〜Ｓ４と、関数ｆ１，ｆ２，ｆ７が抽出される一方、資産種別として「関数」が受け付けられた場合には、図１３（Ｂ）に示すように、仕様書が表示されずに、関数ｆ１，ｆ２，ｆ７のみが抽出されることとなる。これにより、関連する関数の検索を行うユーザにとって不要な仕様書名等の情報が分析結果に追加されてしまうことを回避できる。
【００９９】
次に、分析結果提示部１３６により表示される分析結果の表示画面例について説明する。
【０１００】
図１４は、第４実施例に係る表示画面例を説明する図である。なお、図１４の画面表示例は、図１３の検出結果とは別の例となっている。
【０１０１】
例えば、入力受付部１３１により、対象とする資産種別が受け付けられていない場合には、照合・統合部１３５の結果においては、資産種別が限定されていないので、分析結果提示部１３６は、資産のネットワーク図として、実線５００に囲まれる図（上流工程の資産及び下流工程の資産を含む図）を表示する。また、入力受付部１３１により、対象とする資産種別として「仕様書」が受け付けられている場合には、照合・統合部１３５の結果においては、仕様書のみの資産に限定されることとなるので、分析結果提示部１３６は、資産のネットワーク図として、破線５０２に囲まれる図を表示する。また、入力受付部１３１により、対象とする資産種別として「関数」が受け付けられている場合には、照合・統合部１３５の結果においては、関数のみの資産に限定されることとなるので、分析結果提示部１３６は、資産のネットワーク図として、破線５０１に囲まれる図を表示する。
【０１０２】
本実施例に係るシステム資産分析装置によると、選択された種類の資産のみが表示されるので、ユーザにとって不要な資産の情報が表示されることを回避できるので、ユーザは視認性よく効率的に必要な情報を把握することができる。
【実施例５】
【０１０３】
次に、第５実施例に係るシステム資産分析装置について説明する。なお、第５実施例に係るシステム資産分析装置は、第１乃至第４実施例に係るいずれかの自然言語関係性分析部１３４において、関連する資産として対応づけられている各資産において、各資産での語の意味役割に基づいて、同一又は類似の関連語を解析し、意味役割に基づく解析によって得られた関連語を用いて検索された資産も分析結果に追加するようにしたものである。ここで、自然言語関係性分析部１３４が、関連語検出部及び追加検索部に相当する。
【０１０４】
システム資産分析装置の分析関連情報格納部１２２は、資産対応づけ表２５０Ａと、意味役割情報の一例としての意味役割表２９０とを格納する。
【０１０５】
図１５は、第５実施例に係る資産対応づけ表の構成図である。
【０１０６】
資産対応づけ表２５０Ａは、第１実施例の資産対応づけ表２５０と構成は同じであるが、表中の値は、第５実施例における具体例の説明用の値となっている。
【０１０７】
図１６は、第５実施例に係る意味役割表の構成図である。
【０１０８】
意味役割表２９０は、複数の資産における語に対応するエントリを複数格納している。意味役割表２９０のエントリは、資産名欄２９１と、種別欄２９２と、Ｎｏ欄２９３と、意味（観点、属性）欄２９４とを含む。
【０１０９】
資産名欄２９１には、エントリに対応する語が含まれている資産名が格納される。種別欄２９２には、エントリに対応する語の種別が格納される。例えば、エントリに対応する語が仕様書の記述であれば、種別は、仕様書となり、エントリに対応する語が設計書の記述であれば、種別は、設計書となり、エントリに対応する語がソースコードにおける自然言語による説明（コメント）である場合には、種別は、コードの説明であり、エントリに対応する語がソースコードのプログラム言語による語であれば、種別は、コードとなる。Ｎｏ欄２９３には、エントリに対応する語が含まれている資産における文を特定する番号（文番号）が格納される。すなわち、同一資産における同一の文に存在する語については、Ｎｏ欄２９３の値が同じになる。
【０１１０】
意味（観点、属性）欄２９４には、エントリに対応する語と、その語の文章中の意味役割に関する情報が格納される。本実施例では、意味（観点、属性）欄２９４は、条件欄２９５と、効果欄２９６と、その他２９７とを含む。条件欄２９５には、エントリに対応する語であり、且つ文章では条件としての意味役割を有する語が格納される。効果欄２９６には、条件を満たした場合における効果の内容が格納される。その他欄２９７には、例えば、ソースコードにおけるコメントの記載が格納される。
【０１１１】
意味役割表２９０は、ユーザが予め作成してもよく、システム資産分析装置により資産を解析して作成されるようにしてもよい。
【０１１２】
図１７は、第５実施例に係る分析処理のフローチャートである。なお、図６と同様なステップには、同一符号を付し、重複する説明を省略する。また、資産対応づけ表２５０Ａが図１５に示す状態であり、意味役割表２９０が図１６に示す状態である場合として、具体的な例を説明する。
【０１１３】
ステップＳ５０１では、自然言語関連性分析部１３４は、意味役割表２９０に基づいて、指定語が検出された資産における指定語の意味役割を特定し、この意味役割と同一又は類似の意味役割を持つ語（関連語の一例）を、指定語が検出された資産と対応づけがされている資産から特定する。例えば、指定語が「支給種別」である場合には、資産Ｓ２が検索により得られ、資産対応づけ表２５０Ａにより、資産Ｓ２に関連する資産として、資産ｆ２０が特定される。資産Ｓ２において「支給種別」は意味役割が条件であるので、資産ｆ２０において意味役割が条件である「ＷＲＫ−シキュ−Ｃ−１」（エントリ２９０−４）は、同義である可能性が高く、関連語として抽出される。なお、意味役割が同じであるだけで関連語として判定してもよいが、より精度を上げることを目的として、他の内容を加味してもよい。例えば、指定語と類似している表現を含んでいるか、同一の文に存在する他の条件となる語が同一又は類似しているか、条件を満たした場合の効果が、指定語に対応する条件を満たした場合の効果と同一又は類似しているか等の少なくともいずれか１つを考慮してもよい。具体例で考慮すると、この例では、「シキュ」と、「支給」（シキュウ）と類似している、また、それぞれが含まれる文における別の条件「１４」（エントリ２９０−２，２９０−５）が類似している、また、それぞれの条件を満たした場合の効果が「割引」（ワリビキ）と「ｗａｒｉ」（ワリ）でカタカナの編集距離が近く、類似していることからも、「支給種別」と、「ＷＲＫ−シキュ−Ｃ−１」とは類似している可能性が高く、関連語として適していると判断できる。
【０１１４】
次いで、自然言語関連性分析部１３４は、ステップＳ５０１で特定した関連語を用いて、資産を検索する（Ｓ５０２）。この検索により検出された資産が第３資産に相当する。例えば、関連語として、「ＷＲＫ−シキュ−Ｃ−１」が特定された場合には、自然言語関連性分析部１３４は、「ＷＲＫ−シキュ−Ｃ−１」を用いて資産を検索し、結果として、資産ｆ２１が検出され、すでに照合・統合部１３５により抽出されている結果（Ｓ２，ｆ２０）に対して、資産ｆ２１を追加する。これにより、分析結果提示部１３６により、分析結果として、Ｓ２，ｆ２０，ｆ２１が提示されることとなる。
【０１１５】
実施例５に係るシステム資産分析装置によると、対応する資産同士における意味役割を考慮して、指定語に対応する関連語を特定することができるので、関連する資産をより適切に抽出することができる。
【０１１６】
なお、第５実施例では、指定語に関連する関連語を文章における意味役割を用いて特定するようにしているが、関連語を特定するための意味役割のカテゴリとしては、意味役割表２９０の「条件」や「効果」に限られず、他のカテゴリであってもよい。
【０１１７】
他の意味役割のカテゴリとしては、例えば、以下のようなものがある。
例１：動作主格、経験者格、道具格、対象格、源泉格、目標格、場所格、時間格（フィルモアの深層格（チェールズＪ．フィルモア：格文法の原理，三省堂，１９７５））による意味役割
例２：談話構造としてみた場合の意味役割（談話単位間の談話関係）。
−ＴＥＭＰＯＲＡＬ（時間）・・・「前」，「後」など
−ＣＯＮＴＩＮＧＥＮＣＹ（関係可能性）・・・原因（「理由」，「結果」）、認識的原因（「根拠」）、条件、認識的条件（「関連」など）
−ＣＯＭＰＡＲＩＳＯＮ（比較）
−ＥＸＰＡＮＳＩＯＮ（展開）・・・例示、選択、換言、例外、列挙など
例３：５Ｗ１Ｈ（Ｗｈｅｎ、Ｗｈｅｒｅ、Ｗｈｏ、Ｗｈａｔ、Ｗｈｙ、Ｈｏｗ）
【０１１８】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【０１１９】
例えば、上記実施形態において、ＣＰＵが行っていた処理の一部又は全部を、専用のハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア（例えば可搬型の記憶メディア）であってもよい。
【符号の説明】
【０１２０】
１０…システム資産分析装置、１００…ＣＰＵ、１０１…主記憶装置、１０２…外部記憶装置、１０３…可搬型記憶媒体、１０４…読取装置、１０５…入出力装置、１０６…通信装置、１２１…システム資産格納部、１２２…分析関連情報格納部、１３１…入力受付部、１３２…前処理部、１３３…資産対応づけ情報取得部、１３４…自然言語関係性分析部、１３５…照合・統合部、１３６…分析結果提示部
【図１】
2020080013.tif 000003
【図２】
2020080013.tif 000004
【図３】
2020080013.tif 000005
【図４】
2020080013.tif 000006
【図５】
2020080013.tif 000007
【図６】
2020080013.tif 000008
【図７】
2020080013.tif 000009
【図８】
2020080013.tif 000010
【図９】
2020080013.tif 000011
【図１０】
2020080013.tif 000012
【図１１】
2020080013.tif 000013
【図１２】
2020080013.tif 000014
【図１３】
2020080013.tif 000015
【図１４】
2020080013.tif 000016
【図１５】
2020080013.tif 000017
【図１６】
2020080013.tif 000018
【図１７】
2020080013.tif 000019