(57)【要約】【課題】実際に影響があるかどうかを検証する作業の工数を低減できる、アプリケーションプログラムの影響範囲抽出方法および影響範囲抽出プログラムを提供する。【解決手段】アプリケーションプログラムの修正前構造情報と修正後構造情報の差分を求め、その構成要素と項目等を修正履歴情報として保持し、この修正履歴情報から（第１の構成要素、第１の項目）と（第２の構成要素、第２の項目）の組み合わせを作成し、作成した各組み合わせに対して、静的解析情報テーブルを参照して、（第１の構成要素、第１の項目）と（第２の構成要素、第２の項目）間が辿れるかどうかを検査し、（第１の構成要素、第１の項目）と（第２の構成要素、第２の項目）間が辿れる場合に、そのレコード数を二項間距離情報とし、この二項間距離情報と修正履歴情報からアプリケーションプログラムを修正した場合における影響範囲を抽出する。【選択図】図１１
2014002565.tif 000002
【特許請求の範囲】
【請求項１】
影響分析装置における、静的解析を用いてアプリケーションプログラムの修正に伴う影響範囲を抽出するアプリケーションプログラムの影響範囲抽出方法であって、
前記影響分析装置は、入力部、表示部およびアプリケーションプログラムの修正前構造情報を記憶する記憶部を具備し、
前記入力部を介して前記アプリケーションプログラムの修正後構造情報を取得し前記記憶部に格納し、
前記修正前構造情報と前記修正後構造情報の差分を抽出し、その構成要素と項目と当該アプリケーションプログラムの情報とをそれぞれ対応付けて修正履歴情報テーブルに格納し、
前記修正履歴情報テーブルから、（第１の構成要素、第１の項目）と（第２の構成要素、第２の項目）の組み合わせを作成し、
作成した各組み合わせに対して、静的解析情報テーブルを参照して、前記（第１の構成要素、第１の項目）と前記（第２の構成要素、第２の項目）間が辿れるかどうかを検査し、
前記（第１の構成要素、第１の項目）と前記（第２の構成要素、第２の項目）間が辿れる場合に、そのレコード数を二項間距離情報とし、前記（第１の構成要素、第１の項目）と前記（第２の構成要素、第２の項目）と前記二項間距離情報とをそれぞれ対応付けて二項間距離情報テーブルに格納し、
前記修正履歴情報テーブルおよび前記二項間距離情報テーブルの情報に基づいて、前記アプリケーションプログラムを修正した場合における影響範囲を抽出し、前記表示部に表示する、
ことを特徴とするアプリケーションプログラムの影響範囲抽出方法。
【請求項２】
前記入力部を介して構成要素および項目を取得し、
前記取得した構成要素および項目に基づいて前記修正履歴情報テーブルを検索して、該当する複数のレコードの情報（アプリケーションプログラムの情報、構成要素、項目）を取得し、
前記取得した（構成要素、項目）の組の集合から２つの組を取り出して、複数の（第３の構成要素、第３の項目、第４の構成要素、第４の項目）の組み合わせを作成し、
前記作成した各組み合わせに対して、前記修正履歴情報テーブルを参照して、同一アプリケーションプログラムについて修正回数を計算し、
前記二項間距離情報テーブルから当該組み合わせを構成する二項間の距離情報を取得し、
前記計算した修正回数と前記取得した二項間距離情報から二項間の関連の強さを評価し、前記影響範囲を抽出し、前記表示部に表示する、
ことを特徴とする請求項１に記載のアプリケーションプログラムの影響範囲抽出方法。
【請求項３】
前記計算した修正回数と前記取得した二項間距離情報から、（任意の第１の設定値×前記修正回数×１/前記二項間距離情報）＋（任意の第２の設定値×前記修正回数）を計算し、この計算結果に基づいて前記二項間の関連の強さを評価する、
ことを特徴とする請求項２に記載のアプリケーションプログラムの影響範囲抽出方法。
【請求項４】
コンピュータに、請求項１乃至請求項３のいずれか１項に記載のアプリケーションプログラムの影響範囲抽出方法を実行させる影響範囲抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムの修正に伴う影響範囲を抽出する方法および影響範囲抽出プログラムに関する。
【背景技術】
【０００２】
アプリケーションプログラムを修正する際、修正の影響範囲を把握することは保守工数を見積もる上で重要である。修正の影響範囲を調べる方法においては、通常、アプリケーションプログラムの要素間での呼出し関係や参照関係による関連情報を抽出する静的解析を基としたツールが用いられる。
【０００３】
アプリケーションプログラムの修正に伴う影響範囲を抽出する方法の例として、アプリケーションプログラムを変更する上での検証方法を記載した影響度分析図と、実際に変更作業にかかった時間を蓄積した過去作業記憶部により、影響分析を行い、影響一覧と変更作業の見積り工数を出力するする方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５７５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に開示の技術では、過去の修正履歴は持っているが、その情報は個々の修正対象の工数確認に利用されていて、影響のある関連情報は保持していない。そのため、修正対象の抽出は静的解析のみで行っている。静的解析の結果を基とした影響範囲の抽出では、実際に影響範囲があるかどうかを検証する作業が必要であるが、解析結果として関連箇所の出力が出過ぎてしまい収拾がつかない。
【０００６】
本発明は、実際に影響があるかどうかを検証する作業の工数を低減できる、アプリケーションプログラムの影響範囲抽出方法および影響範囲抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の代表的な一例は以下の通りである。すなわち、本発明は、影響分析装置における、静的解析を用いてアプリケーションプログラムの修正に伴う影響範囲を抽出するアプリケーションプログラムの影響範囲抽出方法である。前記影響分析装置は、入力部、表示部およびアプリケーションプログラムの修正前構造情報を記憶する記憶部を具備する。影響分析装置により、前記入力部を介して前記アプリケーションプログラムの修正後構造情報を取得し前記記憶部に格納し、前記修正前構造情報と前記修正後構造情報の差分を抽出し、その構成要素と項目と当該アプリケーションプログラムの情報とをそれぞれ対応付けて修正履歴情報テーブルに格納し、前記修正履歴情報テーブルから、（第１の構成要素、第１の項目）と（第２の構成要素、第２の項目）の組み合わせを作成し、作成した各組み合わせに対して、静的解析情報テーブルを参照して、前記（第１の構成要素、第１の項目）と前記（第２の構成要素、第２の項目）間が辿れるかどうかを検査し、前記（第１の構成要素、第１の項目）と前記（第２の構成要素、第２の項目）間が辿れる場合に、そのレコード数を二項間距離情報とし、前記（第１の構成要素、第１の項目）と前記（第２の構成要素、第２の項目）と前記二項間距離情報とをそれぞれ対応付けて二項間距離情報テーブルに格納し、前記修正履歴情報テーブルおよび前記二項間距離情報テーブルの情報に基づいて、前記アプリケーションプログラムを修正した場合における影響範囲を抽出し、前記表示部に表示する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、アプリケーションプログラム修正時の影響範囲を従来よりも絞り込んだ形で抽出できるので、実際に影響があるかどうかを検証する作業の工数を低減できる。
【図面の簡単な説明】
【０００９】
【図１】影響分析装置１のハードウェア構成例を示す図である。
【図２】影響分析装置１が具備する静的解析情報テーブル１３１のデータ構成例を示す図である。
【図３】影響分析装置１が具備する保守案件情報テーブル１３２のデータ構成例を示す図である。
【図４】影響分析装置１が具備する修正履歴情報テーブル１３３のデータ構成例を示す図である。
【図５】影響分析装置１が具備する二項間距離情報テーブル１３４のデータ構成例を示す図である。
【図６】影響分析装置１が具備するメニュー画面表示機能１１１の処理を示すフローチャートである。
【図７】影響分析装置１が具備する保守案件情報登録機能１１２の処理を示すフローチャートである。
【図８】影響分析装置１が具備する修正履歴情報記録機能１１３の処理を示すフローチャートである。
【図９】影響分析装置１が具備する修正履歴情報記録機能１１３の影響範囲抽出処理Ｓ８０７の処理を示すフローチャートである。
【図１０】影響分析装置１が具備する影響範囲分析機能１１４の処理を示すフローチャートである。
【図１１】影響分析装置１が具備する影響範囲分析機能１１４の影響範囲抽出処理Ｓ１００３の処理を示すフローチャートである。
【図１２】影響分析装置１の表示部１０２に表示されるメニュー画面例を示す図である。
【図１３】影響分析装置１の表示部１０２に表示される保守案件情報登録画面例を示す図である。
【図１４】影響分析装置１の表示部１０２に表示される修正履歴情報記録画面例を示す図である。
【図１５】影響分析装置１の表示部１０２に表示される影響範囲分析画面例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施例について、図面を参照して詳細に説明する。
【００１１】
図１は、本実施例に係わる影響分析装置１のハードウェア構成例を示す図である。影響分析装置１は、記憶部１０１、表示部１０２と、入力部１０３と、制御部１０４と、ディスク１０５とを具備する。各部は、バス（ＢＵＳ）によって接続されている。記憶部１０１は、メニュー画面表示機能１１１、保守案件情報登録機能１１２、修正履歴情報記録機能１１３および影響範囲分析機能１１４からなるプログラム１１０と、修正前構造情報格納領域１２１および修正後構造情報格納領域１２２からなるデータ１２０が格納されている。ディスク１０５は、静的解析情報テーブル１３１と、保守案件情報テーブル１３２、修正履歴情報テーブル１３３、二項間距離情報テーブル１３４が格納されている。プログラム１１０は、制御部１０４により記憶部１０１から図示していないメモリにロードされ実行される。なお、後述の図６から図１１に示すフローチャートの説明では、説明の便宜上、プログラム１１０の各機能（１１１〜１１４）を処理の主体として説明する。
【００１２】
次に、図２から図５にて、影響分析装置１のディスク１０５を構成するテーブルについて説明する。
【００１３】
図２は、影響分析装置１が具備する静的解析情報テーブル１３１のデータ構成例を示す図である。静的解析情報テーブル１３１は、修正履歴情報記録機能１１３の実行時に、静的解析での解析結果を格納するテーブルであり、アプリケーションプログラムの修正が行われる際に更新される。図２に示すように、静的解析情報テーブル１３１は、通番２０１と、構成要素（１）２０２と、項目（１）２０３と、構成要素（２）２０４と、項目（２）２０５とをそれぞれ対応付けて記憶する。ここで、通番２０１には、静的解析情報テーブル１３１にレコードが追加される度に採番された値が格納される。構成要素（１）２０２と構成要素（２）２０４には、静的解析により関連をもつアプリケーションプログラムの構成要素が格納される。アプリケーションプログラムの構成要素とは、画面、Java（登録商標）プログラムのクラス、ライブラリ、テーブル、帳票、ファイルのことを指す。項目（１）２０３と項目（２）２０５には、構成要素における項目が格納される。構成要素がクラスであればメソッドやフィールド、ライブラリであればクラスのメソッドやフィールド、画面であれば画面項目、テーブルであればカラム、帳票であれば帳票項目、ファイルであればファイル項目のことを指す。
【００１４】
図３は、影響分析装置１が具備する保守案件情報テーブル１３２のデータ構成例を示す図である。保守案件情報テーブル１３２は、保守案件情報登録機能１１２の実行時に、図１３に示す保守案件情報登録画面１３００から入力する保守案件情報を格納するテーブルである。図３に示すように、保守案件情報テーブル１３２は、通番３０１と、案件ＩＤ３０２と、保守種別３０３と、保守案件概要３０４とをそれぞれ対応付けて記憶する。ここで、通番３０１には、保守案件情報テーブル１３２にレコードが追加される度に採番された値が格納される。案件ＩＤ３０２には、保守案件を識別するＩＤが格納される。保守種別３０３には、保守の種別が格納される。例として、表示文言の統一や開発基準の見直し等が格納される。保守案件概要３０４には、保守案件の概要が格納される。
【００１５】
図４は、影響分析装置１が具備する修正履歴情報テーブル１３３のデータ構成例を示す図である。修正履歴情報テーブル１３３は、修正履歴情報記録機能１１３の実行時に、アプリケーションプログラムの修正履歴情報を格納するテーブルである。図３に示すように、修正履歴情報テーブル１３３は、通番４０１と、案件ＩＤ４０２と、修正済構成要素４０３と、修正済項目４０４とをそれぞれ対応付けて記憶する。ここで、通番４０１には、修正履歴情報テーブル１３３にレコードが追加される度に採番された値が格納される。案件ＩＤ４０２には、保守案件情報テーブル１３２の案件ＩＤ３０２に紐づく案件ＩＤが格納される。修正済構成要素４０３には、保守案件によって修正した構成要素が格納され、修正済項目４０４には、修正した構成要素の項目が格納される。
【００１６】
図５は、影響分析装置１が具備する二項間距離情報テーブル１３４のデータ構成例を示す図である。二項間距離情報テーブル１３４は、修正履歴情報記録機能１１３にて実施される二項間距離情報算出処理での静的解析結果における、二項間の距離情報を格納するテーブルである。図５に示すように、二項間距離情報テーブル１３４は、通番５０１と、構成要素（１）５０２と、項目（１）５０３と、構成要素（２）５０４と、項目（２）５０５と、距離５０６をそれぞれ対応付けて記憶する。ここで、通番５０１には、二項間距離情報テーブル１３４にレコードが追加される度に採番された値が格納される。構成要素（１）５０２と構成要素（２）５０４には、静的解析により関連をもつアプリケーションプログラムの構成要素が格納される。項目（１）５０３と項目（２）５０５には、構成要素における項目が格納される。距離５０６には、静的解析情報テーブル１３１のレコードの組み合わせから（構成要素（１）、項目（１））（構成要素（２）、項目（２））間が辿れる場合のレコードのリンク数が格納される。
【００１７】
図６から図１１にて、影響分析装置１のプログラム１１０を構成する各機能の処理フローについて説明する。
【００１８】
図６は、影響分析装置１が具備するメニュー画面表示機能１１１の処理を示すフローチャートである。メニュー画面表示機能１１１は、影響分析装置１の起動と同時に起動する機能である。メニュー画面表示機能１１１が起動すると、最初に図１２に示すメニュー画面１２００を表示する（Ｓ６０１）。図１２に示すメニュー画面１２００において、利用者は入力部１０３を用いて、画面上のリンクをクリックする。メニュー画面表示機能１１１は、メニュー画面１２００でのリンクのクリックに応じて対応する機能を起動する（Ｓ６０２）。図１２に示すメニュー画面１２００において、利用者が保守案件情報登録機能１２０１をクリックした場合は、保守案件情報登録機能１１２を起動する（Ｓ６０３）。修正履歴情報記録機能１２０２をクリックした場合は、修正履歴情報記録機能１１３を起動する（Ｓ６０４）。影響範囲分析機能１２０３をクリックした場合は、影響範囲分析機能１１４を起動する（Ｓ６０５）。メニュー画面表示機能１１１は、影響分析装置１が終了するとき一緒に終了する。
【００１９】
図７は、影響分析装置１が具備する保守案件情報登録機能１１２の処理を示すフローチャートである。保守案件情報登録機能１１２は、図１２に示すメニュー画面１２００において、利用者が入力部１０３を用いて、保守案件情報登録機能１２０１をクリックした場合に起動する機能である。保守案件情報登録機能１１２は、最初に図１３に示す保守案件情報登録画面１３００を表示する（Ｓ７０１）。保守案件情報登録機能１１２は、図１３に示す保守案件情報登録画面１３００において、利用者が入力部１０３を用いて入力した、案件ＩＤの入力部１３０１（今回の例では保守案件４）、保守種別の入力部１３０２（今回の例では開発基準の見直し）、保守案件概要の入力部１３０３（今回の例では共通処理のメソッド化）の各データを取得し、それぞれ対応付けて保守案件情報テーブル１３２に格納する（Ｓ７０２）。
【００２０】
図８は、影響分析装置１が具備する修正履歴情報記録機能１１３の処理を示すフローチャートである。修正履歴情報記録機能１１３は、図１２に示すメニュー画面１２００において、利用者が入力部１０３を用いて、修正履歴情報記録機能１２０２をクリックした場合に起動する機能である。修正履歴情報記録機能１１３は、最初に図１４に示す修正履歴情報記録画面１４００を表示する（Ｓ８０１）。この際、修正履歴情報記録機能１１３は、図３に示す保守案件情報テーブルより全レコードを取得し、案件ＩＤ３０２、保守種別３０３、保守案件概要３０４を図１４の一覧１４０１で案件ＩＤ１４１２、保守種別１４１３、保守案件概要１４１４に対応させて表示する。一覧１４０１の各行には、保守対象を選択する入力部１４１５を設け、ラジオボタンとして表示する。初期表示では、一覧１４０１の最上行のラジオボタンが選択され、利用者により任意のものが選択される（今回の例では、一覧１４０１で＃４のラジオボタンが選択されたとする）。影響分析装置１は、修正開始ボタン１４０２が押下される前に、アプリケーションプログラムの修正前構造情報を記憶部１０１の修正前構造情報格納領域１２１に格納する（Ｓ８０２）。アプリケーションプログラムの構造情報とは、構成要素が画面であれば画面定義ファイル、クラスであれば構文解析情報、ライブラリであればバイナリ情報、テーブルであればＤＤＬファイル、帳票であれば帳票定義ファイル、ファイルであれば構造定義ファイルでの構造に関する情報のことである。図１４に示す修正履歴情報記録画面１４００において、利用者は入力部１０３を用いて、保守対象の入力部１４１５を選択して、修正開始ボタン１４０２を押下する。修正開始ボタン１４０２が押下されると、修正履歴情報記録機能１１３は、保守対象の入力部１４１５が選択された行の案件ＩＤ１４１２を取得する（今回の例では保守案件４）（Ｓ８０３）。次に利用者はアプリケーションプログラムの修正を実施する。アプリケーションプログラムの修正が終わると、入力部１０３を用いて、図１４に示す修正履歴情報記録画面１４００で修正終了ボタン１４０３を押下する。修正終了ボタン１４０３が押下されると、修正履歴情報記録機能１１３は、アプリケーションプログラムの修正後構造情報を記憶部１０１の修正後構造情報格納領域１２２に格納する（Ｓ８０４）。修正履歴情報記録機能１１３は、修正前構造情報格納領域１２１に格納された修正前構造情報と修正後構造情報格納領域１２２に格納された修正後構造情報を比較して差分を抽出する。差分を抽出する際、資産（ファイル）に対応するものを構成要素、構成要素内の詳細項目を項目と定義する。修正履歴情報記録機能１１３は、比較の結果、差分がある構成要素に対し、修正履歴情報（案件ＩＤ、修正済構成要素、修正済項目）を図４に示す修正履歴情報テーブル１３３において案件ＩＤ４０２、修正済構成要素４０３、修正済項目４０４として格納する（Ｓ８０５）。その後、全構成要素、全項目に対して静的解析を実施し、静的解析情報 （構成要素（１）、項目（１）、構成要素（２）、項目（２））を図２に示す静的解析情報テーブル１３１において構成要素（１）２０２、項目（１）２０３、構成要素��２）２０４、項目（２）２０５として格納する（Ｓ８０６）。この際、修正履歴情報記録機能１１３は、全レコードを削除してから全て新規レコードとして登録する。最後に、修正履歴情報記録機能１１３は、静的解析情報テーブル１３１と保守案件情報テーブル１３２と修正履歴情報テーブル１３３のレコードを用いて、二項間距離情報算出処理を行う（Ｓ８０７）。
【００２１】
図９は、影響分析装置１が具備する修正履歴情報記録機能１１３が実行する二項間距離情報算出処理Ｓ８０７を示すフローチャートである。修正履歴情報記録機能１１３は、最初に、保守案件情報テーブル１３２を検索して全ての案件ＩＤ３０２を取得する（Ｓ９０１）。修正履歴情報記録機能１１３は、Ｓ９０１で取得した案件ＩＤより一つ取り出し、案件ＩＤをキーとして 修正履歴情報テーブル１３３を検索する（今回の例では保守案件４をキーとする）。修正履歴情報記録機能１１３は、検索された(構成要素、項目)の組の集合から二つの組を取り出し、（構成要素（１）、項目（１）、構成要素（２）、項目（２））の全ての組み合わせを作成する（Ｓ９０２）。組み合わせを作成する理由は、二項目間の関連の強さと同時に修正された修正回数を評価するためである。また、全ての組み合わせを作成する理由は、過去の修正履歴を元に、今後の修正として考えられる全ての二項間を考慮するためである。組み合わせは、今回の例では、（クラスＢ、メソッドｂ２（）、クラスＣ、メソッドｃ１（））、（クラスＢ、メソッドｂ２（）、クラスＤ、メソッドｄ１（））、（クラスＢ、メソッドｂ２（）、クラスＦ、メソッドｆ１）、（クラスＣ、メソッドｃ１（）、クラスＤ、メソッドｄ１（））、（クラスＣ、メソッドｃ１（）、クラスＦ、メソッドｆ１（））、（クラスＤ、メソッドｄ１（）、クラスＦ、メソッドｆ１））となる。修正履歴情報記録機能１１３は、Ｓ９０２で作成した組み合わせから一つ取り出し、（構成要素（１）、項目（１））（構成要素（２）、項目（２））間が図２に示す静的解析情報テーブル１３１のレコードの組み合わせで辿れるかどうかを検査する（Ｓ９０３）。今回の例では、修正履歴情報記録機能１１３は、（クラスＢ、メソッドｂ２（））（クラスＦ、メソッドｆ１）間が辿れるかどうかを検査する。通常は作成した組み合わせから順次取り出すが、今回の例では（クラスＢ、メソッドｂ２（）、クラスＦ、メソッドｆ１）を取り出した場合とする。（構成要素（１）、項目（１））（構成要素（２）、項目（２））間が辿れるかどうかを判定すると、図２に示す静的解析情報テーブルにおいて、＃２と＃３の組み合わせから（クラスＢ、メソッドｂ２（））（クラスＦ、メソッドｆ１）間が辿れる。具体的には、修正履歴情報記録機能１１３は、（クラスＢ、メソッドｂ２（））と（クラスＦ、メソッドｆ１）に対し、これらを（構成要素（１）、項目（１））または（構成要素（２）、項目（２））としてもつレコードを抽出する（この場合、＃２、＃３に対応）。そして、修正履歴情報記録機能１１３は、それらのレコードが１レコード以上の組み合わせで静的解析上つながることを確認する（今回の例では２レコードの組み合わせでつながる）。もし、構成要素（１）：クラスＢ、項目（１）：メソッドｂ２（）、構成要素（２）：クラスＦ、項目（２）：メソッドｆ１のレコードが存在すれば、１レコードとなる（Ｓ９０４）。辿れる場合は、修正履歴情報記録機能１１３は、静的解析情報テーブルのレコードのリンク数（静的解析上つながるレコードの数）をカウントする（Ｓ９０５）。今回の例では、図２に示す静的解析情報テーブル１３１において、＃２と＃３の組み合わせによりリンクの数が２となる。修正履歴情報記録機能１１３は、Ｓ９０５でカウントしたリンクの数を距離とし、二項間距離情報（構成要素（１）、項目（１）、構成要素（２）、項目（２）、距離）を、図５に示す二項間距離情報テーブル１３４において、構成要素（１）５０２、項目（１）５０３、構成要素（２）５０４、項目（２）５０５、距離５０６として格納する（Ｓ９０６）。Ｓ９０４で二項間が辿れない場合は、修正履歴情報記録機能１１３は、二項間距離情報テーブル１３４にレコードを格納しない。修正履歴情報記録機能１１３は、Ｓ９０２で作成した全ての組み合わせに対してＳ９０３からＳ９０６を処理したかを判定し（Ｓ９０７）、まだ処理していない組み合わせが残っている場合はＳ９０３へ戻る。全ての組み合わせに処理している場合は、修正履歴情報記録機能１１３は、Ｓ９０１で取得した全ての案件ＩＤに対し、Ｓ９０２からＳ９０７を処理したか判定し（Ｓ９０８）、まだ処理していない案件ＩＤが残っている場合はＳ９０２へ戻る。全ての案件ＩＤに対して処理している場合は、修正履歴情報記録機能１１３は、二項間距離情報算出処理を終了する。
【００２２】
図１０は、影響分析装置１が具備する影響範囲分析機能１１４の処理を示すフローチャートである。影響範囲分析機能１１４は、図１２に示すメニュー画面１２００において、利用者が入力部１０３を用いて、影響範囲分析機能１２０３をクリックした場合に起動する機能である。影響範囲分析機能１１４は、最初に図１５に示す影響範囲分析画面１５００を表示する（Ｓ１００１）。影響範囲分析機能１１４は、図１５に示す影響範囲分析画面１５００において、利用者が入力部１０３を用いて入力した、構成要素の入力部１５０１、項目の入力部１５０２のデータを取得する（Ｓ１００２）。取得データは、今回の例ではクラスＦ、メソッドｆ１（）とする。最後に、影響範囲分析機能１１４は、Ｓ１００２で取得した構成要素と項目を用いて影響範囲抽出処理を行う（Ｓ１００３）。
【００２３】
図１１は影響分析装置１が具備する影響範囲分析機能１１４が実行する影響範囲抽出処理Ｓ１００３を示すフローチャートである。影響範囲分析機能１１４は、最初に、影響範囲分析機能１１４で入力された構成要素、項目をキーとして修正履歴情報テーブル１３３を検索し、該当するレコードの案件ＩＤ１３０２を取得する（Ｓ１１０１）。今回の例ではクラスＦ、メソッドｆ１（）で検索を行い、検索結果として保守案件２、保守案件３、保守案件４を取得したとする。影響範囲分析機能１１４は、Ｓ１１０１で取得した案件ＩＤから一つを取り出し、キーとして修正履歴情報テーブル１３３を検索する。今回の例では保守案件４で検索し、図４に示す修正履歴情報テーブルで＃１２から＃１５の４レコードが検索結果として得られたとする。影響範囲分析機能１１４は、検索されたレコードのうち、（修正済構成要素、修正済項目）の組の集合から二つの組を取り出し、（修正済構成要素（１）、修正済項目（１）、修正済構成要素（２）、修正済項目（２））の全ての組み合わせを作成する。作成した組み合わせは、今回の例では、図４に示す修正履歴情報テーブル＃１２から＃１５の４レコードより（クラスＢ、メソッドｂ２（）、クラスＣ、メソッドｃ１（））、（クラスＢ、メソッドｂ２（）、クラスＤ、メソッドｄ１（））、（クラスＢ、メソッドｂ２（）、クラスＦ、メソッドｆ１）、（クラスＣ、メソッドｃ１（）、クラスＤ、メソッドｄ１（））、（クラスＣ、メソッドｃ１（）、クラスＦ、メソッドｆ１（））、（クラスＤ、メソッドｄ１（）、クラスＦ、メソッドｆ１）となる。組み合わせの情報は、同時に修正された二つの項目とみなし、図１５に示す影響範囲分析画面１５００において、影響範囲分析結果一覧１５０４の修正済構成要素１５１２、修正済項目１５１３、同時修正済構成要素１５１４、同時修正済項目１５１５として保持する（Ｓ１１０２）。次に、影響範囲分析機能１１４は、作成した組み合わせから一つ取り出し、修正履歴情報テーブルからそれらが同時に修正されている案件数を修正回数としてカウントする。通常は作成した組み合わせから順次取り出すが、今回の例では（クラスＢ、メソッドｂ２（）、クラスＦ、メソッドｆ１（）を取り出したものとし、影響範囲分析機能１１４は、（クラスＢ、メソッドｂ２（）、クラスＦ、メソッドｆ１（））の組み合わせで案件数をカウントする。具体的には、影響範囲分析機能１１４は、修正履歴情報テーブル１３３より、修正済構成要素４０３にクラスＢ、修正済項目４０４にメソッドｂ２（）のレコードと修正済構成要素４０３にクラスＦ、修正済項目４０４にメソッドｆ１（）のレコードの２レコードが存在する案件の数をカウントする。カウントした結果、図４に示す修正履歴情報テーブルでの保守案件３と保守案件４の２案件に加え、計４案件だったとし、修正回数を４回とする。修正回数は、図１５に示す影響範囲分析画面１５００において、影響範囲分析結果一覧１５０４の修正回数１５１６として保持する（Ｓ１１０３）。影響範囲分析機能１１４は、Ｓ１１０３で取り出した組み合わせに対し、二項間距離情報テーブル１３４から、構成要素（１）５０２と項目（１）５０３、構成要素（２）５０４と項目（２）５０５をキーとして組み合わせを構成する二項間の距離を検索する。今回の例では、図５に示す二項間距離情報テーブル構成において、（クラスＢ、メソッドｂ２（））（クラスＦ、メソッドｆ１（））の二項間距離情報であるレコード＃３がヒットする。二項間の距離は、図１５に示す影響範囲分析画面１５００において、影響範囲分析結果一覧１５０４の距離１５１７として保持する。検索の結果、ヒットしない場合は空文字として保持する（Ｓ１１０４）。次に、影響範囲分析機能１１４は、全ての組み合わせに対してＳ１１０３とＳ１１０４を処理したかを判定し（Ｓ１１０５）、まだ処理していない組み合わせが残っている場合は、Ｓ１１０３に戻る。全ての組み合わせに対して処理していれば、影響範囲分析機能１１４は、全ての案件ＩＤに対してＳ１１０２からＳ１１０５を処理したかを判定する（Ｓ１１０６）。判定の結果、まだ処理していない案件ＩＤが残っている場合はＳ１１０２に戻る。全ての案件ＩＤに対して処理していれば、影響範囲分析機能１１４は、保持している影響範囲分析結果一覧のレコードから１レコード取り出し、 以下の計算式から影響指数を計算し、関連の強さを評価する。
【００２４】
影響指数 ＝ { α × 修正回数 × １／距離 } ＋ { β × 修正回数 }
なお、αとβは任意の設定値とする。αは静的解析での関連の影響に対する重みを表し、βは静的解析以外の関連の影響に対する重みを表す。αに加えβも考慮することで、静的解析上の関連はないが、業務要件等で同時に修正する必要がある構成要素間の関連等も影響範囲抽出の観点に含めることができる。
【００２５】
影響指数は、図１５に示す影響範囲分析画面１５００において、影響範囲分析結果一覧１５０４の影響指数１５１８として保持する（Ｓ１１０７）。保持している影響範囲分析結果一覧の全てのレコードに対してＳ１１０７を処理したかを判定する（Ｓ１１０８）。判定の結果、まだ処理していないレコードが残っている場合はＳ１１０７に戻る。全ての案件ＩＤに対して処理していれば、影響範囲分析機能１１４は、図１５に示す影響範囲分析画面１５００において、影響範囲分析結果一覧１５０４を表示部１０２に表示する（Ｓ１１０９）。次に、影響範囲分析機能１１４は、図１５に示す影響範囲分析画面１５００において、影響範囲分析図１５０５を表示部１０２に表示する（Ｓ１１１０）。
【００２６】
図１２から図１５にて、影響分析装置１の表示部１０２に表示する画面ついて説明する。
【００２７】
図１２に示すメニュー画面１２００には、影響分析装置１の表示部１０２に表示される、利用者が開始したい機能を選択するメニュー画面の例を示す。図７に示すメニュー画面１２００において、保守案件情報登録機能１２０１を選択しクリックすることによって、図７に示す、保守案件情報登録機能１１２が開始され、図１３に示す、保守案件情報登録画面１３００に遷移する。また、修正履歴情報記録機能１２０２を選択しクリックすることによって、図８に示す、修正履歴情報記録機能１１３が開始され、図１４に示す、修正履歴情報記録画面１４００に遷移する。また、影響範囲分析機能１２０３を選択しクリックすることによって、図１０に示す、影響範囲分析機能１１４が開始され、図１５に示す、影響範囲分析画面１５００に遷移する。
【００２８】
図１３に示す保守案件情報登録画面１３００には、影響分析装置１の表示部１０２に表示される、保守案件情報を登録する画面の例を示す。図１３に示す保守案件情報登録画面１３００において、入力部１３０１に案件ＩＤ（今回の例では保守案件４とする）を入力し、入力部１３０２に保守種別（今回の例では開発基準の見直しとする）を入力し、入力部１３０３に保守案件概要（今回の例では共通処理のメソッド化とする）を入力し、登録ボタン１３０４を押下することによって、入力情報が図３に示す、保守案件情報テーブル１３２に格納される。
【００２９】
図１４に示す修正履歴情報記録画面１４００には、影響分析装置１の表示部１０２に表示される、修正履歴を記録するための画面の例を示す。図１４に示す修正履歴情報記録画面１４００において、１４０１に表示する一覧のうち、保守対象の行（今回の例では案件ＩＤが保守案件４の行）を選択し、入力部１４１５のラジオボタンを選択して修正開始ボタン１４０２を押下する。修正開始ボタン１４０２の押下によって、選択した行の案件が保守対象となり、修正履歴が図４に示す、修正履歴情報テーブル１３３に格納される。
【００３０】
図１５に示す影響範囲分析画面１５００には、影響分析装置１の表示部１０２に表示される、影響範囲を分析する構成要素、項目の入力と入力された構成要素、項目の影響範囲を分析した結果を表示する画面の例を示す。図１５に示す影響範囲分析画面１５００において、入力部１５０１に構成要素（今回の例ではクラスＦとする）を入力し、入力部１５０２に項目（今回の例ではメソッドｆ１（）とする）を入力し、実行ボタン１５０３を押下することによって、入力した構成要素、項目の修正時に同時に修正された構成要素、項目がその修正回数、距離、影響指数と共に影響範囲分析結果一覧１５０４として表示される。この際、影響指数１５１８の値で降順に表示する。影響範囲分析結果一覧１５０４の表示のあと、影響範囲分析結果一覧１５０４での情報を図で表した影響範囲分析図１５０５が表示される。影響範囲分析図１５０５では、影響指数の大きさに応じて（修正済構成要素、修正済項目）と（同時修正済構成要素、同時修正済項目）を結ぶ線の書式を変えて表示する（今回の例では影響指数５を境界として書式を変えている）。また、静的解析での関連があるかどうかによっても（修正済構成要素、修正済項目）と（同時修正済構成要素、同時修正済項目）を結ぶ線の書式を変えて表示する。（修正済構成要素、修正済項目）と（同時修正済構成要素、同時修正済項目）を結ぶ線の書式は凡例１５１９として表示する。
【００３１】
以上本発明の一実施例について説明した。上述の実施例によれば、アプリケーションプログラム修正時の影響範囲を従来よりも絞り込んだ形で抽出できるので、実際に影響があるかどうかを検証する作業の工数を低減できる。
【００３２】
なお、上記影響分析装置１が保持するプログラム１１０は、予め記憶部１０１に格納されていてもよいし、電子計算機が利用可能な可搬性を有する記憶媒体に格納されており読取装置を介して必要に応じて読み出されてもよいし、あるいは、電子計算機が利用可能な通信媒体であるネットワークを介して他の装置から必要に応じてダウンロードされて記憶部１０１に格納されるものであってもよい。
【００３３】
また、プログラム１１０の各機能（１１１〜１１４）をＬＳＩ等のハードウェアで実現してよい。
【００３４】
その他、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００３５】
１・・・影響分析装置、１０１・・・記憶部、１０２・・・表示部、１０３・・・入力部、１０４・・・制御部、１０５・・・ディスク。
【図１】
2014002565.tif 000003
【図２】
2014002565.tif 000004
【図３】
2014002565.tif 000005
【図４】
2014002565.tif 000006
【図５】
2014002565.tif 000007
【図６】
2014002565.tif 000008
【図７】
2014002565.tif 000009
【図８】
2014002565.tif 000010
【図９】
2014002565.tif 000011
【図１０】
2014002565.tif 000012
【図１１】
2014002565.tif 000013
【図１２】
2014002565.tif 000014
【図１３】
2014002565.tif 000015
【図１４】
2014002565.tif 000016
【図１５】
2014002565.tif 000017