(57)【特許請求の範囲】
【請求項１】
ソフトウェアのソースコードと、前記ソフトウェアの構成要素間の依存関係の種類である依存種類毎に前記依存種類の重要度である重みを示す重み情報と、の入力を受け付ける入力部と、
前記入力部に入力されたソースコードおよび重み情報を記憶する記憶部と、
前記記憶部内のソースコードから、前記構成要素の組み合わせと、前記構成要素間の依存関係の数である依存頻度と、前記依存種類と、の対応関係を前記構成要素の組み合わせ毎に依存関係情報として抽出する依存関係抽出部と、
前記依存関係情報と前記重み情報とを用いて前記依存頻度に前記重みに応じた重み付けを行うことにより、前記構成要素の組み合わせと当該構成要素間の依存種類との組み合わせに応じた依存強度を算出する依存強度算出部と、
前記構成要素間における依存強度と、当該依存強度の前記組み合わせ内における出現頻度との対応関係を算出し、算出した対応関係に基づいて、所定値以上の出現頻度に対応する依存強度の値を前記依存強度の閾値に設定する閾値設定部と、
前記構成要素の組み合わせの中から前記依存強度が前記閾値以上となるものを抽出し、抽出した構成要素の組み合わせに含まれる構成要素のうち前記ソースコードの修正対象に直接的または間接的に依存し前記ソースコードの修正対象から辿ることのできる構成要素の範囲を、前記ソースコードを修正した際の影響範囲として抽出する影響範囲抽出部と、
を備え、
前記入力部は、前記閾値の算出に用いる構成要素の範囲を算出範囲情報として入力し、
前記記憶部は、前記算出範囲情報を記憶し、
前記閾値設定部は、前記算出範囲情報で指定された構成要素の範囲に対して前記対応関係を算出し、算出した対応関係に基づいて前記閾値を設定することを特徴とするソフトウェア評価装置。
【請求項２】
前記入力部は、前記閾値を算出する際に用いる閾値算出方法の算出テンプレートとして、前記ソフトウェアの特徴に応じた算出テンプレートを複数入力し、
前記記憶部は、前記算出テンプレートを記憶し、
前記閾値設定部は、前記影響範囲の抽出対象となるソフトウェアに応じた算出テンプレートを用いて、前記閾値を設定することを特徴とする請求項１に記載のソフトウェア評価装置。
【請求項３】
前記依存強度算出部が算出した依存強度のうち、前記閾値より大きい依存強度を抽出する抽出部と、
前記抽出部が抽出した依存強度を表示する表示部と、
をさらに備えることを特徴とする請求項１または２に記載のソフトウェア評価装置。
【請求項４】
ソフトウェアのソースコードと、前記ソフトウェアの構成要素間の依存関係の種類である依存種類毎に前記依存種類の重要度である重みを示す重み情報と、の入力を受け付ける入力ステップと、
前記ソースコードおよび前記重み情報を記憶する記憶ステップと、
前記ソースコードから、前記構成要素の組み合わせと、前記構成要素間の依存関係の数である依存頻度と、前記依存種類と、の対応関係を前記構成要素の組み合わせ毎に依存関係情報として抽出する依存関係抽出ステップと、
前記依存関係情報と前記重み情報とを用いて前記依存頻度に前記重みに応じた重み付けを行うことにより、前記構成要素の組み合わせと当該構成要素間の依存種類との組み合わせに応じた依存強度を算出する依存強度算出ステップと、
前記構成要素間における依存強度と、当該依存強度の前記組み合わせ内における出現頻度との対応関係を算出し、算出した対応関係に基づいて、所定値以上の出現頻度に対応する依存強度の値を前記依存強度の閾値に設定する閾値設定ステップと、
前記構成要素の組み合わせの中から前記依存強度が前記閾値以上となるものを抽出し、抽出した構成要素の組み合わせに含まれる構成要素のうち前記ソースコードの修正対象に直接的または間接的に依存し前記ソースコードの修正対象から辿ることのできる構成要素の範囲を、前記ソースコードを修正した際の影響範囲として抽出する影響範囲抽出ステップと、
を含み、
前記入力ステップでは、前記閾値の算出に用いる構成要素の範囲を算出範囲情報として入力し、
前記記憶ステップでは、前記算出範囲情報を記憶し、
前記閾値設定ステップでは、前記算出範囲情報で指定された構成要素の範囲に対して前記対応関係を算出し、算出した対応関係に基づいて前記閾値を設定することを特徴とするソフトウェア評価方法。
【請求項５】
システムのソースコードと、前記システムの構成要素間の依存関係の種類である依存種類毎に前記依存種類の重要度である重みを示す重み情報と、の入力を受け付ける入力部と、
前記入力部に入力されたソースコードおよび重み情報を記憶する記憶部と、
前記記憶部内のソースコードから、前記構成要素の組み合わせと、前記構成要素間の依存関係の数である依存頻度と、前記依存種類と、の対応関係を前記構成要素の組み合わせ毎に依存関係情報として抽出する依存関係抽出部と、
前記依存関係情報と前記重み情報とを用いて前記依存頻度に前記重みに応じた重み付けを行うことにより、前記構成要素の組み合わせと当該構成要素間の依存種類との組み合わせに応じた依存強度を算出する依存強度算出部と、
前記構成要素間における依存強度と、当該依存強度の前記組み合わせ内における出現頻度との対応関係を算出し、算出した対応関係に基づいて、所定値以上の出現頻度に対応する依存強度の値を前記依存強度の閾値に設定する閾値設定部と、
前記構成要素の組み合わせの中から前記依存強度が前記閾値以上となるものを抽出し、抽出した構成要素の組み合わせに含まれる構成要素のうち前記ソースコードの修正対象に直接的または間接的に依存し前記ソースコードの修正対象から辿ることのできる構成要素の範囲を、前記ソースコードを修正した際の影響範囲として抽出する影響範囲抽出部と、
を備え、
前記入力部は、前記閾値の算出に用いる構成要素の範囲を算出範囲情報として入力し、
前記記憶部は、前記算出範囲情報を記憶し、
前記閾値設定部は、前記算出範囲情報で指定された構成要素の範囲に対して前記対応関係を算出し、算出した対応関係に基づいて前記閾値を設定することを特徴とするシステム評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの構造分析や影響範囲分析に利用可能なソフトウェア評価装置およびソフトウェア評価方法、システムの構造分析や影響範囲分析に利用可能なシステム評価装置に関するものである。
【背景技術】
【０００２】
ソフトウェア（Ｓ／Ｗ）アーキテクチャ評価技術の１つとして、ＤＳＭ（Design  Structure  Matrix）を用いた方法がある。このＤＳＭでは、「関数の呼び出し」や「変数の参照」等により、サービス提供者と使用者との間に発生する依存をソースコードから求めている。このようなＤＳＭは、複雑なプロセスのタスク間の依存関係を簡潔に表現し、タスクの関連性を分析するのに適している。
【０００３】
例えば、ＤＳＭをＳ／Ｗに応用し、プログラムの構成要素間の依存関係をその発生頻度（依存強度）で重み付けを行い、表形式で表示することで、複雑なＳ／Ｗのアーキテクチャ構造を簡潔に表現することができる。
【０００４】
特許文献１に記載の情報フロー・モデルの作成方法では、ＤＳＭの依存関係に重み付けしておき、この重み付けされたＤＳＭを、予めパターン化しておいた情報フロー・モデルに写像することで、大規模なプロセスのシミュレーションに使用する情報フロー・モデルを簡易に作成している。
【０００５】
また、特許文献２に記載のプロジェクト管理方法では、プロジェクトに含まれる複数のタスク間の依存性を示す依存度（プロジェクトへの影響度）をマトリクス形式で表したＤＳＭで作成し、ＤＳＭに重み付けを行ってプロジェクト管理での後戻り・並列工程のリスクを定量化している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１４１３１４号公報
【特許文献２】特開２００３−０３０３９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、Ｓ／Ｗの依存関係には依存関係が「関数の呼び出し」や「変数の参照」等のように複数種類存在し、それぞれ意味が異なり、同じ依存頻度でも依存種類によって依存の強さが異なることが経験的にわかっている。例えば、「関数の呼び出し２回」と「変数の参照２回」では、同じ２回の依存でも「関数の呼び出し２回」の方が、依存が強いことが経験上わかっている。
【０００８】
そのため、上記前者および後者の従来技術のように、依存の発生頻度のみから算出した依存強度からは依存の強さは判断できないという問題があった。例えば、あるモジュール（提供者）と他モジュール（使用者）との間の結合の度合を正確に把握することや、ソースコード修正影響の範囲を機械的に特定することは難しい。このように、依存関係の種類が複数存在し、それぞれによって依存の強さが異なる場合、依存の強さを判断することは困難であった。
【０００９】
本発明は、上記に鑑みてなされたものであって、ソフトウェアを正確かつ容易に評価することができるソフトウェア評価装置およびソフトウェア評価方法、システムを正確かつ容易に評価することができるシステム評価装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、ソフトウェアのソースコードと、前記ソフトウェアの構成要素間の依存関係の種類である依存種類毎に前記依存種類の重要度である重みを示す重み情報と、の入力を受け付ける入力部と、前記入力部に入力されたソースコードおよび重み情報を記憶する記憶部と、前記記憶部内のソースコードから、前記構成要素の組み合わせと、前記構成要素間の依存関係の数である依存頻度と、前記依存種類と、の対応関係を前記構成要素の組み合わせ毎に依存関係情報として抽出する依存関係抽出部と、前記依存関係情報と前記重み情報とを用いて前記依存頻度に前記重みに応じた重み付けを行うことにより、前記構成要素の組み合わせと当該構成要素間の依存種類との組み合わせに応じた依存強度を算出する依存強度算出部と、前記構成要素間における依存強度と、当該依存強度の前記組み合わせ内における出現頻度との対応関係を算出し、算出した対応関係に基づいて、所定値以上の出現頻度に対応する依存強度の値を前記依存強度の閾値に設定する閾値設定部と、前記構成要素の組み合わせの中から前記依存強度が前記閾値以上となるものを抽出し、抽出した構成要素の組み合わせに含まれる構成要素のうち前記ソースコードの修正対象に直接的または間接的に依存し前記ソースコードの修正対象から辿ることのできる構成要素の範囲を、前記ソースコードを修正した際の影響範囲として抽出する影響範囲抽出部と、を備え、前記入力部は、前記閾値の算出に用いる構成要素の範囲を算出範囲情報として入力し、前記記憶部は、前記算出範囲情報を記憶し、前記閾値設定部は、前記算出範囲情報で指定された構成要素の範囲に対して前記対応関係を算出し、算出した対応関係に基づいて前記閾値を設定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ソフトウェアを正確かつ容易に評価することが可能になるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る影響度分析装置の構成を示すブロック図である。
【図２】図２は、依存関係リストの構成例を示す図である。
【図３】図３は、依存種類テーブルの構成例を示す図である。
【図４】図４は、重み付依存関係リストの構成例を示す図である。
【図５】図５は、実施の形態１に係る重み付ＤＳＭの構成例を示す図である。
【図６】図６は、図５に示した重み付ＤＳＭをファイル単位で示した図である。
【図７】図７は、重み付依存強度の算出処理手順を示すフローチャートである。
【図８】図８は、依存種類を考慮せずに作成されたＤＳＭの構成例を示す図である。
【図９】図９は、依存種類を考慮せずに作成されたＤＳＭをファイル単位で示した図である。
【図１０】図１０は、実施の形態２に係る影響度分析装置の構成を示すブロック図である。
【図１１】図１１は、依存強度に対する出現頻度を示す図である。
【図１２】図１２は、実施の形態３に係る影響度分析装置の構成を示すブロック図である。
【図１３】図１３は、実施の形態４に係る影響度分析装置の構成を示すブロック図である。
【図１４】図１４は、実施の形態５に係る影響度分析装置の構成を示すブロック図である。
【図１５】図１５は、重みの算出方法の一例を説明するための図である。
【図１６】図１６は、実施の形態６に係る影響度分析装置の構成を示すブロック図である。
【図１７】図１７は、実施の形態６に係る重み付ＤＳＭの構成例を示す図である。
【図１８】図１８は、影響度分析装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態に係るソフトウェア評価装置、ソフトウェア評価方法およびシステム評価装置を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１は、実施の形態１に係る影響度分析装置の構成を示すブロック図である。影響度分析装置１０１は、ソフトウェア（Ｓ／Ｗ）構成要素間（依存関係）の種類毎に設定された重み付け（重要度）に応じたＳ／Ｗ構成要素の影響度に関する分析を行うコンピュータなどの装置である。影響度分析装置１０１は、Ｓ／Ｗの構造分析や影響範囲分析に利用可能なようＳ／Ｗ構造を可視化する。影響度分析装置１０１は、Ｓ／Ｗ構造を評価する際に、ＤＳＭ（Design  Structure  MatrixまたはDependency  Structure  Matrix）（設計構造行列）を用いる。
【００１５】
影響度分析装置１０１は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部（影響範囲抽出部）９と、出力部２０２と、表示部２０３と、を備えている。
【００１６】
入力部２０１は、ソースコード１やＳ／Ｗ構成要素１１を外部装置などから入力して記憶部Ｍに送る。また、入力部２０１は、ユーザから入力される依存種類テーブル４、閾値Ｔを記憶部Ｍに送る。ソースコード１は、Ｓ／Ｗ（コンピュータプログラム）の元となる文字の羅列（コンピュータに対する一連の指示）である。
【００１７】
閾値Ｔは、Ｓ／Ｗ構成要素が所定値以上の影響度（後述する重み付依存強度）を有するか否かの判断基準となる値であり、ユーザによってＳ／Ｗ構成要素毎に設定される。重み付ＤＳＭ８は、依存元のＳ／Ｗ構成要素と、依存先のＳ／Ｗ構成要素と、の組み合わせ（Ｓ／Ｗ構成要素間）毎に算出された重み付依存強度を示す情報である。Ｓ／Ｗ構成要素１１は、Ｓ／Ｗ構成要素のうち依存関係の判定対象となるＳ／Ｗ構成要素（ユーザ所望のＳ／Ｗ構成要素）であり、ユーザによって指定される。
【００１８】
依存関係抽出部２は、ソースコード１からＳ／Ｗ構成要素間の依存関係を抽出し、依存関係リスト３を作成する。依存関係抽出部２は、作成した依存関係リスト３を記憶部Ｍに記憶させる。図２は、依存関係リストの構成例を示す図である。依存関係リスト３は、依存元のＳ／Ｗ構成要素と、依存先のＳ／Ｗ構成要素と、依存種類と、依存頻度と、が対応付けされた情報（依存関係情報）である。
【００１９】
依存元のＳ／Ｗ構成要素は、依存関係のある関数のうち依存元となる関数（Ｓ／Ｗ構成要素）であり、依存先のＳ／Ｗ構成要素は、依存関係のある関数のうち依存先となる関数（Ｓ／Ｗ構成要素）である。
【００２０】
依存種類は、依存関係の種類であり、例えば、「インクルード」、「マクロ」、「関数の呼び出し」などである。依存頻度は、依存関係の回数である。例えば、依存関係リスト３の行１３では、file1.cppのfunc関数からfile2.cppのexp1関数への「関数の呼び出し」という依存頻度が４回あることを示している。
【００２１】
重み付依存強度算出部５は、依存関係抽出部２で作成された依存関係リスト３と、依存種類テーブル４と、を用いて、依存関係リスト３を重み付依存関係リスト６に変換する。重み付依存強度算出部５は、変換した重み付依存関係リスト６を記憶部Ｍに記憶させる。
【００２２】
図３は、依存種類テーブルの構成例を示す図である。依存種類テーブル４は、依存種類と、重みと、が対応付けされた情報（重み情報）であり、ユーザによって設定される。重みは、依存種類に設定されている重み付けである。本実施の形態では、依存種類毎に重みが設定されている。例えば、依存種類テーブル４の行１５では、「関数の呼び出し」という依存種類の重みが、０．９であることを示している。
【００２３】
図４は、重み付依存関係リストの構成例を示す図である。図４では、図２の依存関係リスト３と、図３の依存種類テーブル４と、を用いて作成された重み付依存関係リスト６の構成例を示している。重み付依存関係リスト６は、依存元のＳ／Ｗ構成要素と、依存先のＳ／Ｗ構成要素と、依存種類と、重み付依存強度と、が対応付けされた情報である。
【００２４】
重み付依存強度は、依存種類の重みを考慮した依存頻度である。重み付依存強度は、例えば、依存関係リスト３の依存頻度と、依存種類テーブル４の重みと、を掛け合わせることによって算出される。
【００２５】
図２に示した依存関係リスト３の行１３では、file1.cppのfunc関数からfile2.cppのexp1関数へ「関数の呼び出し」が設定されている。そして、依存関係リスト３の行１３での依存頻度が４回あり、図３に示した依存種類テーブル４の行１５での「関数の呼び出し」の重みが０．９である。したがって、重み付依存強度算出部５は、依存頻度（４回）×重み（０．９）＝重み付依存強度によって、重み付依存強度＝３．６を算出する。これにより、重み付依存関係リスト６の行１６では、file1.cppのfunc関数からfile2.cppのexp1関数への「関数の呼び出し」という依存関係の重み付依存強度が３．６となる。このように、本実施の形態では、依存種類毎に、重み付依存強度が算出される。
【００２６】
重み付ＤＳＭ生成部７は、重み付依存強度算出部５が作成した重み付依存関係リスト６（処理結果）に基づいて、重み付ＤＳＭ８を生成する。また、重み付ＤＳＭ生成部７は、重み付ＤＳＭ８を用いて、後述のファイル単位重み付ＤＳＭ４０を生成する。重み付ＤＳＭ生成部７は、生成した重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０を記憶部Ｍに記憶させる（ファイル単位重み付ＤＳＭ４０は、図１内に図示せず）。
【００２７】
図５は、実施の形態１に係る重み付ＤＳＭの構成例を示す図である。図５では、図４の重み付依存関係リスト６を用いて作成された重み付ＤＳＭ８の構成例を示している。重み付ＤＳＭ８は、Ｓ／Ｗ構成要素間毎に算出された重み付依存強度を示す情報である。図５の重み付ＤＳＭ８では、列方向に依存元のＳ／Ｗ構成要素が並べられ、行方向に依存先のＳ／Ｗ構成要素が並べられている。そして、依存元のＳ／Ｗ構成要素と、依存先のＳ／Ｗ構成要素と、の組み合わせである、依存元のＳ／Ｗ構成要素と依存先のＳ／Ｗ構成要素との交点の位置に、重み付依存強度の値が入れられている。例えば、範囲２４Ａ内のセル１７では、file1.cppのfunc関数（依存元）からfile2.cppのexp1関数（依存先）への重み付依存強度が３．６であることを示している。
【００２８】
重み付ＤＳＭ生成部７は、重み付依存関係リスト６から各依存関係を重み付ＤＳＭ８内の該当するセルに加算していくことで、重み付ＤＳＭ８を生成する。例えば、セル１７は、依存元がfile1.cppのfunc関数、依存先がfile2.cppのexp1関数である図４に示した行１６の値である。
【００２９】
図６は、図５に示した重み付ＤＳＭをファイル単位で示した図である。ファイル単位重み付ＤＳＭ４０は、図５に示した重み付ＤＳＭ８をファイル単位で示した情報である。ファイル単位重み付ＤＳＭ４０では、依存元のＳ／Ｗ構成要素と、依存先のＳ／Ｗ構成要素と、の組み合わせ毎に算出された重み付依存強度を、ファイル単位で表現している。したがって、ファイル単位重み付ＤＳＭ４０は、依存元のファイと、依存先のファイルと、の組み合わせ毎に算出された重み付依存強度を示す情報である。
【００３０】
図５に示した重み付ＤＳＭ８には、依存元のファイとしてfile1.cpp、file2.cpp、file2.h、file3.h、file4.hのファイルがあり、依存先のファイとしてfile1.cpp、file2.cpp、file2.h、file3.h、file4.hのファイルがある。このため、ファイル単位重み付ＤＳＭ４０では、file1.cpp、file2.cpp、file2.h、file3.h、file4.hと、file1.cpp、file2.cpp、file2.h、file3.h、file4.hと、の組み合わせ毎に算出された重み付依存強度を示している。
【００３１】
例えば、図５に示した重み付ＤＳＭ８では、依存元のfile1.cppのファイルとして、file1.cpp、file1.cpp/main()、file1.cpp/func()がある。また、依存先のfile2.hのファイルとして、file2.h、file2.h/exp1(int)がある。そして、これらの組み合わせのうち、依存元のfile1.cppと、依存先のfile2.hと、の組み合わせに対する重み付依存強度として０．３が設定され、依存元のfile1.cpp/func()と、依存先のfile2.h/exp1(int)と、の組み合わせに対する重み付依存強度として０．４が設定されている。このため、ファイル単位重み付ＤＳＭ４０では、依存元のfile1.cppのファイルと、依存先のfile2.hのファイルと、の組み合わせに対する重み付依存強度として、０．３＋０．４＝０．７が設定されている。
【００３２】
影響度分析部９は、ファイル単位重み付ＤＳＭ４０（重み付ＤＳＭ８）内のＳ／Ｗ構成要素のうち、Ｓ／Ｗ構成要素１１に依存するＳ／Ｗ構成要素であって重み付依存強度が閾値Ｔを超えるＳ／Ｗ構成要素を抽出し、抽出したＳ／Ｗ構成要素を用いて影響範囲リスト１２を作成する。影響度分析部９は、作成した影響範囲リスト１２を記憶部Ｍに記憶させる。影響範囲リスト１２は、Ｓ／Ｗ構成要素１１に依存するＳ／Ｗ構成要素であって重み付依存強度が閾値Ｔを超えるＳ／Ｗ構成要素のリストである。影響範囲リスト１２は、ソースコードを修正した場合の影響の範囲として、閾値Ｔを超える重み付依存強度を有したＳ／Ｗ構成要素が登録される。
【００３３】
記憶部Ｍは、ソースコード１、依存種類テーブル４、閾値Ｔ、Ｓ／Ｗ構成要素１１、依存関係リスト３、重み付依存関係リスト６、重み付ＤＳＭ８、影響範囲リスト１２を記憶するメモリなどである。
【００３４】
出力部２０２は、依存関係リスト３、重み付依存関係リスト６、重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０、影響範囲リスト１２を外部装置などに出力する。なお、出力部２０２からは、ソースコード１、依存種類テーブル４、閾値Ｔ、Ｓ／Ｗ構成要素１１を出力してもよい。
【００３５】
表示部２０３は、依存関係リスト３、重み付依存関係リスト６、重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０、影響範囲リスト１２、ソースコード１、依存種類テーブル４、閾値Ｔ、Ｓ／Ｗ構成要素１１などを表示する液晶モニタなどの装置である。
【００３６】
つぎに、Ｓ／Ｗの影響度の分析処理手順（影響範囲リスト１２の作成処理手順）について説明する。入力部２０１へは、予めソースコード１、依存種類テーブル４、閾値Ｔが入力される。入力部２０１は、ソースコード１、依存種類テーブル４、閾値Ｔを記憶部Ｍに記憶させる。
【００３７】
依存関係抽出部２は、ソースコード１から依存関係を抽出し、依存関係リスト３を作成する。そして、依存関係抽出部２は、作成した依存関係リスト３を記憶部Ｍに記憶させる。さらに、重み付依存強度算出部５は、依存関係抽出部２で作成された依存関係リスト３と、依存種類テーブル４と、を用いて、依存関係リスト３を重み付依存関係リスト６に変換する。重み付依存強度算出部５は、変換した重み付依存関係リスト６を記憶部Ｍに記憶させる。
【００３８】
ここで、重み付依存強度算出部５による重み付依存強度の算出処理手順について説明する。図７は、重み付依存強度の算出処理手順を示すフローチャートである。重み付依存強度算出部５は、依存関係リスト３内の全てのＳ／Ｗ構成要素（依存元のＳ／Ｗ構成要素と依存先のＳ／Ｗ構成要素の組）に対して、重み付依存関係リスト６への変換を行ったか否かを判定する（ステップＳ１０１）。
【００３９】
依存関係リスト３内の全てのＳ／Ｗ構成要素に対して、重み付依存関係リスト６への変換を行っている場合（ステップＳ１０１、Ｙｅｓ）、全依存関係の重み付依存強度の算出処理が完了しているので終了する。
【００４０】
一方、依存関係リスト３内の全てのＳ／Ｗ構成要素に対して、重み付依存関係リスト６への変換を行っていない場合（ステップＳ１０１、Ｎｏ）、重み付依存強度の算出処理が終わっていない依存関係があるので、重み付依存強度の算出処理を行う。すなわち、ステップＳ１０２〜Ｓ１０５の処理を実行する。
【００４１】
具体的には、重み付依存強度算出部５は、重み付依存強度の算出処理が未実施の依存関係から１つの依存関係（依存元のＳ／Ｗ構成要素と依存先のＳ／Ｗ構成要素の組）を選択する（ステップＳ１０２）。そして、重み付依存強度算出部５は、選択した依存関係の依存種類に一致する依存種類を依存種類テーブル４から検索し、依存種類に対応する重みを求める（ステップＳ１０３）。さらに、重み付依存強度算出部５は、選択した依存関係の依存頻度と、取得した重みと、を掛け合わせて重み付依存強度を計算する（ステップＳ１０４）。
【００４２】
そして、重み付依存強度算出部５は、算出した重み付依存強度と、ステップＳ１０２の処理で選択した依存関係（依存元のＳ／Ｗ構成要素および依存先のＳ／Ｗ構成要素の組と、依存種類）と、を重み付依存関係リスト６に追加する（ステップＳ１０５）。この後、依存関係リスト３内の全てのＳ／Ｗ構成要素に対して、重み付依存関係リスト６への変換を行なうまで、ステップＳ１０１〜Ｓ１０５の処理が繰り返される。
【００４３】
重み付依存関係リスト６が作成された後、重み付ＤＳＭ生成部７は、重み付依存関係リスト６に基づいて、重み付ＤＳＭ８を生成する。また、重み付ＤＳＭ生成部７は、重み付ＤＳＭ８を用いてファイル単位重み付ＤＳＭ４０を生成する。重み付ＤＳＭ生成部７は、生成した重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０を記憶部Ｍに記憶させる。
【００４４】
表示部２０３は、重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０、影響範囲リスト１２などを表示する。この後、ユーザによって入力部２０１からＳ／Ｗ構成要素１１が入力され、記憶部Ｍで記憶される。
【００４５】
影響度分析部９は、ファイル単位重み付ＤＳＭ４０内のＳ／Ｗ構成要素のうち、Ｓ／Ｗ構成要素１１に依存するＳ／Ｗ構成要素であって重み付依存強度が閾値Ｔを超えるＳ／Ｗ構成要素を抽出し、抽出したＳ／Ｗ構成要素を用いて影響範囲リスト１２を作成する。
【００４６】
Ｓ／Ｗ構成要素１１では、例えば、ユーザによって図６のファイル単位重み付ＤＳＭ４０のＳ／Ｗ構成要素「file4.h」が指定される。この場合、影響度分析部９は、Ｓ／Ｗ構成要素「file4.h」に直接的または間接的に依存するＳ／Ｗ構成要素であって、閾値Ｔ＝３．０を超えるＳ／Ｗ構成要素を抽出する。まず、影響度分析部９は、「file4.h」に依存するＳ／Ｗ構成要素であって、閾値Ｔ＝３．０を超えるＳ／Ｗ構成要素を抽出する。ファイル単位重み付ＤＳＭ４０に登録されているＳ／Ｗ構成要素のうち、Ｓ／Ｗ構成要素「file4.h」に依存しているものは、行１８より「file1.cpp」（依存強度：２．７）と「file2.cpp」（依存強度：３．９）である。このため。影響度分析部９は、例えば、Ｓ／Ｗ構成要素「file4.h」の影響範囲が閾値Ｔ＝３．０である場合、閾値Ｔ＝３．０を超える「file2.cpp」を抽出する。
【００４７】
さらに、影響度分析部９は、抽出した「file2.cpp」に依存するＳ／Ｗ構成要素であって、閾値Ｔ＝３．０を超えるＳ／Ｗ構成要素を抽出する。ファイル単位重み付ＤＳＭ４０に登録されているＳ／Ｗ構成要素「file2.cpp」に依存しているものは、行１９より「file1.cpp」（依存強度：３．６）である。このため、影響度分析部９は、「file2.cpp」に依存している「file1.cpp」を抽出する。そして、抽出した「file1.cpp」に依存しているＳ／Ｗ構成要素で閾値Ｔ＝３．０を超えるものはないので、影響範囲リスト１２には「file1.cpp」、「file2.cpp」の２つが登録されることとなる。
【００４８】
このように、影響度分析部９は、ユーザによって指定されたＳ／Ｗ構成要素に依存するＳ／Ｗ構成要素を抽出し、抽出したＳ／Ｗ構成要素に依存するＳ／Ｗ構成要素を抽出するという処理を繰り返す。換言すると、影響度分析部９は、Ｓ／Ｗ構成要素に依存するＳ／Ｗ構成要素を順番に辿っていく。そして、影響度分析部９は、抽出したＳ／Ｗ構成要素を影響範囲リスト１２に登録することによって、影響範囲リスト１２を作成する。
【００４９】
影響度分析部９は、作成した影響範囲リスト１２を記憶部Ｍに記憶させる。表示部２０３は、重み付依存関係リスト６、重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０、影響範囲リスト１２などを表示する。また、出力部２０２は、必要に応じて、重み付依存関係リスト６、重み付ＤＳＭ８、影響範囲リスト１２などを外部装置などに出力する。
【００５０】
ここで、本実施形態の重み付ＤＳＭ８と、従来手法により生成したＤＳＭと、の相違点について説明する。図８は、依存種類を考慮せずに作成されたＤＳＭの構成例を示す図である。ＤＳＭ５１は、従来手法によって作成されたＤＳＭであり、関数や変数といったＳ／Ｗ構成要素を最小粒度で表現したＤＳＭである。ＤＳＭ５１では、列方向に依存元のＳ／Ｗ構成要素が並べられ、行方向に依存先のＳ／Ｗ構成要素が並べられている。そして、依存元のＳ／Ｗ構成要素と、依存先のＳ／Ｗ構成要素と、の組み合わせである、依存元のＳ／Ｗ構成要素と依存先のＳ／Ｗ構成要素との交点の位置に、依存強度（依存頻度）の値が入れられている。このＤＳＭ５１における依存頻度は、依存種類や重み付を考慮せずに算出された依存頻度である。例えば、セル１４では、file1.cppのfunc関数からfile2.cppのexp1関数への依存強度が４であることを示している。
【００５１】
図９は、依存種類を考慮せずに作成されたＤＳＭをファイル単位で示した図である。ファイル単位ＤＳＭ５２は、図８に示したＤＳＭ５１をファイル単位で示したものである。このように、従来のＤＳＭ５１やファイル単位ＤＳＭ５２は、依存種類や重み付を考慮せずに作成されているので、依存の強さを判断することは困難である。
【００５２】
このように、実施の形態１によれば、依存種類毎の重みを考慮してＤＳＭ（重み付ＤＳＭ８、ファイル単位重み付ＤＳＭ４０）を作成している。このため、数値による依存強度の強弱把握、修正影響範囲を自動検出でき、属人性排除によるアーキテクチャ解析技術の高度化および解析作業の効率化が可能となる。したがって、Ｓ／Ｗを正確かつ容易に評価することが可能になるという効果を奏する。
【００５３】
実施の形態２．
つぎに、図１０および図１１を用いてこの発明の実施の形態２について説明する。前述の実施の形態１では、影響度分析部９に入力する閾値Ｔが、ユーザによって与えられていた。本実施の形態では、閾値Ｔを、重み付ＤＳＭ８を元に自動調整（算出）する。
【００５４】
図１０は、実施の形態２に係る影響度分析装置の構成を示すブロック図である。図１０の各構成要素のうち図１に示す実施の形態１の影響度分析装置１０１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００５５】
実施の形態２に係る影響度分析装置１０２は、影響度分析装置１０１が有する機能に加えて閾値自動調整部（閾値設定部）２０を有している。具体的には、影響度分析装置１０２は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、出力部２０２と、表示部２０３と、閾値自動調整部２０と、を備えている。
【００５６】
閾値自動調整部２０は、記憶部Ｍに接続されており、記憶部Ｍ内の重み付ＤＳＭ８を用いて記憶部Ｍ内に閾値Ｔを設定する。閾値自動調整部２０は、重み付ＤＳＭ８から依存情報（依存強度毎の出現頻度）を抽出し、依存情報に基づいて統計的に閾値Ｔを算出する。本実施の形態の影響度分析部９は、閾値自動調整部２０が算出した閾値Ｔを用いて影響範囲リスト１２を作成する。
【００５７】
つぎに、閾値Ｔの自動調整方法の一例を、実施の形態１の図５に示した重み付ＤＳＭ８を用いて説明する。図１１は、依存強度に対する出現頻度を示す図である。図１１では、依存強度と出現頻度との関係を示しており、横軸が依存強度であり縦軸が出現頻度（系列２）である。
【００５８】
系列１は、Ｓ／Ｗ構成要素の個数であり、系列２は、Ｓ／Ｗ構成要素の割合である。具体的には、系列１は、横軸に示す依存強度の範囲に含まれるＳ／Ｗ構成要素の重み付ＤＳＭ８内での個数であり、系列２は、横軸に示す依存強度の範囲に含まれるＳ／Ｗ構成要素が重み付ＤＳＭ８の全体に占める割合（個数の割合）である。例えば、図５の重み付ＤＳＭ８には、依存強度が０．５以内であるＳ／Ｗ構成要素が１０個ある。また、重み付ＤＳＭ８には、依存強度の登録されているＳ／Ｗ構成要素が全部で１５個ある。したがって、依存強度が登録されているＳ／Ｗ構成要素のうち、依存強度が０．５以内のＳ／Ｗ構成要素は１０／１５＝０．６７であり、全体の約６７％である。これにより、系列２として６７％が示されている。また、依存強度の０〜１．０は、出現頻度が約０．８７（８７％）である。
【００５９】
例えば、出現頻度が８０％を超える依存強度を閾値Ｔに設定する場合、閾値自動調整部２０は、図１１の関係に基づいて、閾値Ｔを１．０に設定する。このように、依存強度に対する出現頻度の関係を用いて閾値Ｔを自動調整しておくので、影響度分析部９は、所定値以上の出現頻度があるＳ／Ｗ構成要素を抽出することが可能となる。なお、閾値自動調整部２０は、依存強度に対する出現頻度の関係を用いた方法以外の方法で閾値Ｔを自動調整してもよい。
【００６０】
このように、実施の形態２によれば、依存強度に対する出現頻度の関係を用いて閾値Ｔを自動調整するので、属人性を排除した閾値Ｔの自動設定が可能となる。したがって、Ｓ／Ｗアーキテクチャ解析技術の高度化および解析作業の高効率化が可能となる。
【００６１】
実施の形態３．
つぎに、図１２を用いてこの発明の実施の形態３について説明する。前述の実施の形態２では、閾値自動調整部２０が、Ｓ／Ｗ全体の依存関係の統計データから閾値Ｔの自動設定を行っていた。本実施の形態では、閾値Ｔを自動調整する際に用いるＳ／Ｗ構成要素の範囲を指定しておく。
【００６２】
図１２は、実施の形態３に係る影響度分析装置の構成を示すブロック図である。図１２の各構成要素のうち図１に示す実施の形態１の影響度分析装置１０１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００６３】
実施の形態３に係る影響度分析装置１０３は、影響度分析装置１０１が有する機能に加えて算出範囲付閾値自動調整部２２を有している。具体的には、影響度分析装置１０３は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、出力部２０２と、表示部２０３と、算出範囲付閾値自動調整部２２と、を備えている。
【００６４】
入力部２０１へは、予め算出範囲２３が入力され、記憶部Ｍで記憶される。算出範囲２３は、閾値Ｔの自動算出に用いるＳ／Ｗ構成要素の一覧（算出範囲情報）である。したがって、本実施の形態では、算出範囲２３で指定されたＳ／Ｗ構成要素の依存情報（依存強度毎の出現頻度）を用いて閾値Ｔが算出される。
【００６５】
算出範囲付閾値自動調整部２２は、算出範囲２３で指定されたＳ／Ｗ構成要素の範囲にある依存情報を重み付ＤＳＭ８から抽出し、抽出した依存情報を用いて閾値Ｔを算出する。例えば、図５に示した重み付ＤＳＭ８から閾値Ｔを算出する際に、算出範囲２３として以下のＳ／Ｗ構成要素を指定した場合には、範囲２４Ａの依存強度が閾値Ｔの算出に用いられる。
算出範囲２３：
File1.cpp、file1.cpp/main()、file1.cpp/func()
file2.cpp、file2.cpp/exp1(int)
file2.h、file2.h/exp1(int)
【００６６】
算出範囲付閾値自動調整部２２は、算出した閾値Ｔを記憶部Ｍに記憶させる。影響度分析部９は、算出範囲付閾値自動調整部２２が算出した閾値Ｔを用いて影響範囲リスト１２を作成する。
【００６７】
このように、実施の形態３によれば、閾値Ｔの算出に用いるＳ／Ｗ構成要素を算出範囲２３によって詳細に設定することができる。そして、算出範囲２３で指定されたＳ／Ｗ構成要素の範囲にある依存情報を用いて閾値Ｔを算出するので、閾値Ｔの確からしさを向上させることが可能となる。
【００６８】
実施の形態４．
つぎに、図１３を用いてこの発明の実施の形態４について説明する。前述の実施の形態２では、閾値自動調整部２０が、１つの計算方法によって閾値Ｔの自動設定を行っていた。本実施の形態では、Ｓ／Ｗの特徴に合わせた閾値算出方法のテンプレートを準備しておき、閾値自動調整部２０がテンプレートに応じた閾値Ｔを算出する。
【００６９】
図１３は、実施の形態４に係る影響度分析装置の構成を示すブロック図である。図１３の各構成要素のうち図１に示す実施の形態１の影響度分析装置１０１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００７０】
実施の形態４に係る影響度分析装置１０４は、影響度分析装置１０１が有する機能に加えてテンプレート使用閾値自動調整部２５を有している。具体的には、影響度分析装置１０３は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、出力部２０２と、表示部２０３と、テンプレート使用閾値自動調整部２５と、を備えている。
【００７１】
入力部２０１へは、予め算出テンプレート２６が入力され、記憶部Ｍで記憶される。算出テンプレート２６は、閾値Ｔの算出に用いる閾値算出方法（閾値Ｔの調整方法）を複数保持している。したがって、この算出テンプレート２６内に設定されている閾値算出方法を切り替えることで、閾値Ｔの算出方法を切り替えることができる。閾値算出方法は、Ｓ／Ｗの言語の特性やＳ／Ｗの組成に応じて種々設定される。
【００７２】
テンプレート使用閾値自動調整部２５は、重み付ＤＳＭ８から依存情報を抽出し、ユーザなどによって指定された算出テンプレート２６内の閾値算出方法を用いて閾値Ｔを算出する。
【００７３】
このように、実施の形態４によれば、Ｓ／Ｗの言語の特性やＳ／Ｗの組成に応じて閾値算出方法を選択できるので、Ｓ／Ｗに応じた閾値算出方法を設定することが可能となる。したがって、閾値Ｔの確からしさを向上させることが可能となる。
【００７４】
実施の形態５．
つぎに、図１４および図１５を用いてこの発明の実施の形態５について説明する。前述の実施の形態１では、ユーザによって依存種類テーブル４が与えられていた。本実施の形態では、依存種類テーブル４を過去の解析データに基づいて自動調整する。
【００７５】
図１４は、実施の形態５に係る影響度分析装置の構成を示すブロック図である。図１４の各構成要素のうち図１に示す実施の形態１の影響度分析装置１０１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００７６】
実施の形態５に係る影響度分析装置１０５は、影響度分析装置１０１が有する機能に加えて解析データ蓄積装置（蓄積部）２７、重み自動調整部（重み情報生成部）２８を有している。具体的には、影響度分析装置１０５は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、出力部２０２と、表示部２０３と、解析データ蓄積装置２７と、重み自動調整部２８と、を備えている。
【００７７】
解析データ蓄積装置２７は、Ｓ／Ｗの解析（影響範囲リスト１２の作成）を行うたびに、依存種類テーブル４に関する情報（蓄積データ）を蓄積する。なお、解析データ蓄積装置２７は、重み付ＤＳＭ８を参照して依存種類テーブル４に関する情報を蓄積してもよい。
【００７８】
重み自動調整部２８は、解析データ蓄積装置２７に蓄積された蓄積データに基づいて各依存種類の重みを算出し、依存種類テーブル４を生成する。重み自動調整部２８では、蓄積データから所定の算式によって重みを算出し、これにより依存種類テーブル４を生成する。そして、必要に応じてユーザにより重みの補正が行なわれる。
【００７９】
重み自動調整部２８による重みの算出方法の一例について説明する。図１５は、重みの算出方法の一例を説明するための図である。ここでは、直近５回のＳ／Ｗ解析（重み付依存関係リスト６の作成）に用いた重みの平均値に基づいて、次に用いる重みを算出する場合について説明する。図１５では、直近５回分の依存種類テーブル４の重みの設定値と、この設定値を用いて算出された重みと、を依存種類毎に示している。
【００８０】
重み１〜重み５は、直近５回のＳ／Ｗ解析に用いた重みである。また、重み６は、重み１〜重み５の平均値であり、次のＳ／Ｗ解析に設定される重みである。したがって、重み自動調整部２８によって自動調整された重みは、列２９の重みとなる。これにより、重み自動調整部２８は、依存種類テーブル４に重み６を設定しておく。そして、次のＳ／Ｗ解析では、重み６が設定された依存種類テーブル４を用いて、依存関係リスト３を重み付依存関係リスト６に変換する。
【００８１】
なお、直近Ｎ回（Ｎは自然数）のＳ／Ｗ解析に用いた重みの平均値に基づいて次に用いる重みを算出する場合、初回〜（Ｎ−１）回目のＳ／Ｗ解析を行う際には、ユーザによって与えられた依存種類テーブル４が用いられる。
【００８２】
このように、実施の形態５によれば、過去の解析データから自動で依存種類の重みを設定できるので、さらに属人性排除によるＳ／Ｗアーキテクチャ解析技術の高度化および解析作業の高効率化が可能となる。
【００８３】
実施の形態６．
つぎに、図１６および図１７を用いてこの発明の実施の形態６について説明する。前述の実施の形態１では、重み付ＤＳＭ８によって全ての依存情報を表示していた。本実施の形態では、閾値Ｔ以下の依存情報を表示しないよう依存情報のフィルタリングを行う。
【００８４】
図１６は、実施の形態６に係る影響度分析装置の構成を示すブロック図である。図１６の各構成要素のうち図１に示す実施の形態１の影響度分析装置１０１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００８５】
実施の形態６に係る影響度分析装置１０６は、影響度分析装置１０１が有する機能に加えて依存強度フィルタリング部（抽出部）３０を有している。具体的には、影響度分析装置１０６は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、出力部２０２と、表示部２０３と、依存強度フィルタリング部３０と、を備えている。
【００８６】
依存強度フィルタリング部３０は、閾値Ｔを元に閾値Ｔよりも小さい重み付依存強度を重み付ＤＳＭ８から非表示にする。換言すると、依存強度フィルタリング部３０は、閾値Ｔと重み付ＤＳＭ８内の重み付依存強度を比較し、閾値Ｔよりも小さい重み付依存強度を重み付ＤＳＭ８から除外する。表示部２０３は、依存強度フィルタリング部３０で除外されなかった重み付依存強度を重み付ＤＳＭ８として表示する。
【００８７】
ここで、依存情報のフィルタリングについて説明する。図１７は、実施の形態６に係る重み付ＤＳＭの構成例を示す図である。図１７では、図５の重み付ＤＳＭ８に対して依存情報（重み付依存強度）のフィルタリングが行われた重み付ＤＳＭ８の構成例を示している。
【００８８】
例えば、閾値Ｔが１．０の場合、フィルタリングを行った後の重み付ＤＳＭ８は、図１７に示した重み付ＤＳＭ８となる。具体的には、図５の重み付ＤＳＭ８から、閾値Ｔが１．０未満の重み付依存強度が非表示にされて、新たな重み付ＤＳＭ８が表示部２０３で表示される。例えば、範囲２４Ｂでは、セル１７の重み付依存強度のみが残され、他の重み付依存強度は非表示にされる。
【００８９】
このように、実施の形態６によれば、閾値Ｔよりも小さい重み付依存強度を重み付ＤＳＭ８から非表示にするので、重み付依存強度の弱い依存関係見る必要がなくなる。このため、非表示にされた依存関係よりも依存関係の強い依存関係に容易に着目することが可能となり、その結果、解析作業の高効率化が可能となる。
【００９０】
なお、実施の形態１〜６で説明した影響度分析装置１０１〜１０６の機能を組み合わせてもよい。例えば、影響度分析装置１０２と影響度分析装置１０５の機能を組み合わせた影響度分析装置は、入力部２０１と、記憶部Ｍと、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、出力部２０２と、表示部２０３と、閾値自動調整部２０と、解析データ蓄積装置２７と、重み自動調整部２８と、を備える構成となる。
【００９１】
つぎに、影響度分析装置１０１〜１０６のハードウェア構成について説明する。なお、影響度分析装置１０１〜１０６は、それぞれ同様のハードウェア構成を有しているので、ここでは影響度分析装置１０１のハードウェア構成について説明する。
【００９２】
図１８は、影響度分析装置のハードウェア構成を示す図である。影響度分析装置１０１は、ＣＰＵ（Central  Processing  Unit）９１、ＲＯＭ（Read  Only  Memory）９２、ＲＡＭ（Random  Access  Memory）９３、表示部９４、入力部９５を有している。影響度分析装置１０１では、これらのＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、表示部９４、入力部９５がバスラインＢを介して接続されている。
【００９３】
ＣＰＵ９１は、コンピュータプログラムである影響度分析プログラム９０を用いてパターンの判定を行う。表示部９４は、液晶モニタなどの表示装置であり、ＣＰＵ９１からの指示に基づいて、依存関係リスト３、重み付依存関係リスト６、重み付ＤＳＭ８、影響範囲リスト１２などを表示する。入力部９５は、マウスやキーボードを備えて構成され、使用者から外部入力される指示情報（Ｓ／Ｗの影響度分析に必要なパラメータ等）を入力する。入力部９５へ入力された指示情報は、ＣＰＵ９１へ送られる。
【００９４】
影響度分析プログラム９０は、ＲＯＭ９２内に格納されており、バスラインＢを介してＲＡＭ９３へロードされる。ＣＰＵ９１はＲＡＭ９３内にロードされた影響度分析プログラム９０を実行する。具体的には、影響度分析装置１０１では、使用者による入力部９５からの指示入力に従って、ＣＰＵ９１がＲＯＭ９２内から影響度分析プログラム９０を読み出してＲＡＭ９３内のプログラム格納領域に展開して各種処理を実行する。ＣＰＵ９１は、この各種処理に際して生じる各種データをＲＡＭ９３内に形成されるデータ格納領域に一時的に記憶させておく。
【００９５】
影響度分析装置１０１で実行される影響度分析プログラム９０は、依存関係抽出部２と、重み付依存強度算出部５と、重み付ＤＳＭ生成部７と、影響度分析部９と、を含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。
【００９６】
なお、上記した実施の形態１〜６では、Ｓ／Ｗ（Ｓ／Ｗ構成要素）の評価を行う場合について説明したが、システム（システム構成要素）の評価を行ってもよい。システム構成要素は、例えばＳ／Ｗ構成要素以外の互いに依存関係のある構成要素であり、プロセスを構成するタスクなどである。システム構成要素の評価を行なう場合、例えば、依存関係抽出部２は、システムのソースコードから依存関係リストを抽出する。
【産業上の利用可能性】
【００９７】
以上のように、本発明に係るソフトウェア評価装置およびソフトウェア評価方法は、ソフトウェアの構造分析や影響範囲分析に適し、本発明に係るシステム評価装置は、システムの構造分析や影響範囲分析に適している。
【符号の説明】
【００９８】
１  ソースコード
２  依存関係抽出部
３  依存関係リスト
４  依存種類テーブル
５  重み付依存強度算出部
６  重み付依存関係リスト
７  重み付ＤＳＭ生成部
８  重み付ＤＳＭ
９  影響度分析部
１２  影響範囲リスト
２０  閾値自動調整部
２２  算出範囲付閾値自動調整部
２３  算出範囲
２５  テンプレート使用閾値自動調整部
２６  算出テンプレート
２７  解析データ蓄積装置
２８  重み自動調整部
３０  依存強度フィルタリング部
４０  ファイル単位重み付ＤＳＭ
１０１〜１０６  影響度分析装置
２０１  入力部
２０２  出力部
２０３  表示部
Ｍ  記憶部
Ｔ  閾値
【図１】
0005687122.tif 000002
【図２】
0005687122.tif 000003
【図３】
0005687122.tif 000004
【図４】
0005687122.tif 000005
【図５】
0005687122.tif 000006
【図６】
0005687122.tif 000007
【図７】
0005687122.tif 000008
【図８】
0005687122.tif 000009
【図９】
0005687122.tif 000010
【図１０】
0005687122.tif 000011
【図１１】
0005687122.tif 000012
【図１２】
0005687122.tif 000013
【図１３】
0005687122.tif 000014
【図１４】
0005687122.tif 000015
【図１５】
0005687122.tif 000016
【図１６】
0005687122.tif 000017
【図１７】
0005687122.tif 000018
【図１８】
0005687122.tif 000019