(57)【要約】  入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するテスト実行部と、その複数のログに基づいてポイント候補レポートを作成する結果処理部とを備えている。その複数のログは、それぞれ、その網羅テストが実行されているときに呼び出された複数のメソッドのうちのそのパラメタを引き数として指定するメソッドのコールスタックを示している。そのコールスタックは、さらに、そのメソッドの呼び出しが定義されるアプリケーション上の位置を示している。ポイント候補レポートは、アプリケーションのうちの、パラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示している。
2011108584.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するテスト実行部と、
前記複数のログに基づいてポイント候補レポートを作成する結果処理部とを具備し、
前記複数のログは、それぞれ、前記網羅テストが実行されているときに呼び出された複数のメソッドのうちの前記パラメタを引き数として指定するメソッドのコールスタックを示し、
前記コールスタックは、さらに、前記メソッドの呼び出しが定義される前記アプリケーション上の位置を示し、
前記ポイント候補レポートは、前記アプリケーションのうちの、前記パラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示す
アプリケーション改変部位探索装置。
【請求項２】
請求項１に記載のアプリケーション改変部位探索装置において、
前記テスト実行部は、
前記パラメタに基づいてプログラムロジックを作成するアスペクト処理部と、
前記アプリケーションに前記プログラムロジックを適用する実行エンジン部と、
前記アプリケーションの各メソッドが呼び出されたときに、前記プログラムロジックに基づいて前記パラメタが前記各メソッドの引き数として出現しているかどうかを評価する入出力検証部と、
前記パラメタが前記各メソッドの引き数として出現したときに、前記各メソッドのコールスタックに基づいて前記ログを作成するログ採取部とを備える
アプリケーション改変部位探索装置。
【請求項３】
請求項２に記載のアプリケーション改変部位探索装置において、
前記結果処理部は、
前記複数のログから複数の抽出ログを抽出する処理スタック解析部と、
前記複数の抽出ログに基づいて前記ポイント候補レポートを作成するレポート作成部とを備え、
前記ポイント候補レポートが示す複数の候補は、前記複数の抽出ログに対応し、
前記複数の候補のうちのある１つのログに対応する候補は、前記１つのログが示すコールスタックのうちの最も深い呼び出しを示す
アプリケーション改変部位探索装置。
【請求項４】
請求項３に記載のアプリケーション改変部位探索装置において、
前記処理スタック解析部は、前記複数のログのうちの第１ログが前記複数のログのうちの第２ログを包含するときに、前記複数のログから前記第１ログを削除することにより、前記複数の抽出ログを作成する
アプリケーション改変部位探索装置。
【請求項５】
請求項３または請求項４のいずれか一項に記載のアプリケーション改変部位探索装置において、
前記テスト実行部は、前記パラメタと異なる他のパラメタがさらに入力されたときに、複数の全体ログを作成し、
前記処理スタック解析部は、さらに、前記複数のメソッドのうちの前記他のパラメタを引き数として指定する他のメソッドのコールスタックを示す複数の他のログと前記複数のログとに前記複数の全体ログを分割し、前記複数の他のログから複数の他の抽出ログを抽出し、
前記レポート作成部は、前記複数の他の抽出ログにさらに基づいて前記ポイント候補レポートを作成する
アプリケーション改変部位探索装置。
【請求項６】
入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するステップと、
前記複数のログに基づいてポイント候補レポートを作成するステップと、
前記ポイント候補レポートに基づいて前記アプリケーションをカスタマイズするステップとを具備し、
前記複数のログは、それぞれ、前記網羅テストが実行されているときに呼び出された複数のメソッドのうちの前記パラメタを引き数として指定するメソッドのコールスタックを示し、
前記コールスタックは、さらに、前記メソッドの呼び出しが定義される前記アプリケーション上の位置を示し、
前記ポイント候補レポートは、前記アプリケーションのうちの、前記パラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示す
アプリケーション改変部位探索方法。
【請求項７】
請求項６に記載のアプリケーション改変部位探索方法において、
前記パラメタに基づいてプログラムロジックを作成するステップと、
前記アプリケーションに前記プログラムロジックを適用するステップと、
前記アプリケーションの各メソッドが呼び出されたときに、前記プログラムロジックに基づいて前記パラメタが前記各メソッドの引き数として出現しているかどうかを評価するステップと、
前記パラメタが前記各メソッドの引き数として出現したときに、前記各メソッドのコールスタックに基づいて前記ログを作成するステップ
とをさらに具備するアプリケーション改変部位探索方法。
【請求項８】
請求項７に記載のアプリケーション改変部位探索方法において、
前記複数のログから複数の抽出ログを抽出するステップと、
前記複数の抽出ログに基づいて前記ポイント候補レポートを作成するステップと
をさらに具備し、
前記ポイント候補レポートが示す複数の候補は、前記複数の抽出ログに対応し、
前記複数の候補のうちのある１つのログに対応する候補は、前記１つのログが示すコールスタックのうちの最も深い呼び出しを示す
アプリケーション改変部位探索方法。
【請求項９】
請求項８に記載のアプリケーション改変部位探索方法において、
前記複数の抽出ログは、前記複数のログのうちの第１ログが前記複数のログのうちの第２ログを包含するときに、前記複数のログから前記第１ログを削除することにより、作成される
アプリケーション改変部位探索方法。
【請求項１０】
請求項８または請求項９のいずれか一項に記載のアプリケーション改変部位探索方法において、
前記パラメタと異なる他のパラメタがさらに入力されたときに作成された複数の全体ログを、前記複数のメソッドのうちの前記他のパラメタを引き数として指定する他のメソッドのコールスタックを示す複数の他のログと前記複数のログとに分割するステップと、
前記複数の他のログから複数の他の抽出ログを抽出するステップとをさらに具備し、
前記ポイント候補レポートは、前記複数の他の抽出ログにさらに基づいて作成される
アプリケーション改変部位探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション改変部位探索装置およびアプリケーション改変部位探索方法に関し、特に、アプリケーションのカスタマイズを行うときに利用されるアプリケーション改変部位探索装置およびアプリケーション改変部位探索方法に関する。
【背景技術】
【０００２】
アプリケーションのカスタマイズにかかる手順を簡易化することが望まれている。特開２００７−１２２６７０号公報には、帳票カスタマイズに係るユーザの作業負担を大幅に軽減して、任意の機能および情報を対象にカスタマイズを可能にし、かつバージョンアップに追随可能な帳票作成システムが開示されている。
その帳票作成システムは、帳票作成のためのパッケージソフトウェアを用いたシステムである。その帳票作成システムは、保持部と、更新処理部と、出力部とを具備している。保持部は、出力帳票に対するカスタマイズ情報をパッケージソフトウェアに対する差分の情報として保持する。更新処理部は、保持部に保持されたカスタマイズ情報をパッケージソフトウェアの変更に伴い、変更後のパッケージソフトウェアに反映させる。出力部は、パッケージソフトウェアの変更に伴い、カスタマイズ情報による変更が反映されたカスタマイズ済みの帳票を出力する。【０００３】
すなわち、特開２００７−１２２６７０号公報におけるバージョンアップ機能は、アプリケーションがバージョンアップされ変更された場合に、パッケージソフトウェアの改変部分をカスタマイズされた帳票に適用するための処理を実行する。また、カスタマイズ済みの情報をカスタマイズ済みの情報ファイルに保存する。そして、カスタマイズ差分の情報をカスタマイズ差分の情報ファイルに保存する。【０００４】
特開２００８−３１０６７９号公報には、仕様書などが不完全の場合も、動的設計情報を自動的に生成することができる動的設計情報生成装置が開示されている。その動的設計情報生成装置は、プログラム解析部と、情報付加部と、プログラム実行部と、設計情報生成部とを具備している。プログラム解析部は、プログラムの構造を解析する。情報付加部は、プログラム解析部で解析されたプログラムを参照してプログラムの実行順序情報を生成するための情報を付加する。プログラム実行部は、情報を付加されたプログラムを所定の実行条件にしたがって実行する。設計情報生成部プログラム実行部のプログラム実行により得られたプログラムの実行順序情報から動的な設計情報を生成する。【０００５】
特開２００７−２１３４８７号公報には、アスペクト指向プログラミングを用いたアプリケーション開発において、織り込み対象のプログラム中の想定箇所に織り込むアスペクトを容易に生成することができるアスペクト生成装置が開示されている。
そのアスペクト生成装置は、開発対象のプログラム内で使用されているクラスに共通する処理をアスペクトとして生成する装置である。そのアスペクト生成装置は、クラス情報解析部と、アドバイス解析部と、ユーザインターフェース管理部と、アスペクト生成部とを備えている。
クラス情報解析部は、開発対象のプログラム内で使用されているクラスファイルを第１の記憶部から読み出し、クラスファイル内の各クラスの構造を解析する。そして、各クラスで使用されているクラス名、メソッド名、シグネチャを取得し、その取得したクラス名、メソッド名、シグネチャに基づき、生成するアスペクトに定義するクラス名、メソッド名、シグネチャの候補を生成する。
アドバイス解析部は、共通処理として切り出すアスペクトが行うアドバイスの候補を第２の記憶部から読み出し、アドバイスの候補のデータ構造を解析する。
ユーザインターフェース管理部は、クラス情報解析部によるクラス構造の解析結果に基づき開発対象のプログラム内で使用されているクラスについてクラス名、メソッド名、シグネチャを明示したクラス図と、アドバイス解析部が解析したアドバイスの候補とをグラフィカルユーザインターフェース画面に表示させる。
アスペクト生成部は、グラフィカルユーザインターフェース画面に表示されたアドバイスの候補のうち、ユーザによって選択された任意のアイコンがクラス図中の任意のクラスの位置にドラッグされた場合に、クラスにおいて選択可能な、クラス情報解析部によって生成されたクラス名、メソッド名、シグネチャの候補を表示する。そしてし、ユーザによって選択されたクラス名、メソッド名、シグネチャの候補のデータを、ユーザによって選択されたアドバイスの候補のデータ構造に適用してアスペクトを生成する。【０００６】
特開２００７−２１３４９８号公報には、織り込まれるアスペクトの処理を、アスペクトによるポイントカット、アドバイスの指定に基づき、対象となるプログラムの処理のソースコード周辺に表示し、アスペクトが織り込まれるプログラムの最終的な処理全体の流れを容易に追跡することができるアスペクト表示システムが開示されている。
そのアスペクト表示システムは、コンピュータプログラムに織り込まれるアスペクトをコンピュータプログラムのソースコード中に表示するシステムである。そのアスペクト表示システムは、読み込み部と、コード解析部と、アスペクト解析部と、表示制御部とを備えている。
読み込み部は、コンピュータプログラムのソースコードとコンパイル済み実行可能コードと、アスペクト指向プログラミングによるアスペクトプログラムのソースコードとコンパイル済み実行可能コードを読み込む。
コード解析部は、コンピュータプログラムのコンパイル済み実行可能コードを解析し、コンピュータプログラムに属する手続き定義を識別する情報と、その手続き定義の開始命令と終了命令に対応するコンピュータプログラムの開始ソースコード行、終了ソースコード行を取得し、記憶部に格納する。
アスペクト解析部は、アスペクトプログラムのコンパイル済み実行可能コードを解析する。そして、アスペクトプログラムに属する織り込み箇所定義を識別する情報と、その織り込み箇所定義に定義される文字列に基づき、織り込み対象手続きの情報を検出する。そして、その織り込み箇所定義に紐付く織り込み手続き定義を識別する情報と、その織り込み手続きの開始命令と終了命令に対応するアスペクトプログラムの開始ソースコード行、終了ソースコード行を取得する。
表示制御部は、コンピュータプログラムのソースコードを選択し、選択されたコンピュータプログラムに属する手続き定義を識別する情報に合致する織り込み対象手続きの情報を検索する。そして、合致した織り込み対象手続きが属する織り込み箇所定義を識別する情報に紐付く織り込み手続き定義を識別する情報を取得する。そして、その織り込み手続き定義の開始ソースコード行から終了ソースコード行の間の織り込み処理を、対応するコンピュータプログラムに属する手続き定義の開始ソースコード行、終了ソースコード行の周辺に、挿入または置換して表示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１２２６７０号公報
【特許文献２】特開２００８−３１０６７９号公報
【特許文献３】特開２００７−２１３４８７号公報
【特許文献４】特開２００７−２１３４９８号公報
【発明の概要】
【０００８】
関連するアプリケーションカスタマイズ方式では、プログラム中の一部分を改変してカスタマイズされた動作を実現するバージョンアップ機能のようなプログラム改変部分の適用技術が考案されている。一方で、プログラムのどこを改変してプログラムをカスタマイズすればよいのかの判断を支援する方式が考案されていない。そのため、カスタマイズに必要なプログラムの開発が困難であるという課題がある。
【０００９】
本発明の目的は、既存のアプリケーションのカスタマイズにかかる手順を簡易化するアプリケーション改変部位探索装置およびアプリケーション改変部位探索方法を提供することにある。
【００１０】
本発明によるアプリケーション改変部位探索装置は、入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するテスト実行部と、その複数のログに基づいてポイント候補レポートを作成する結果処理部とを備えている。その複数のログは、それぞれ、その網羅テストが実行されているときに呼び出された複数のメソッドのうちのそのパラメタを引き数として指定するメソッドのコールスタックを示している。そのコールスタックは、さらに、そのメソッドの呼び出しが定義されるそのアプリケーション上の位置を示している。そのポイント候補レポートは、そのアプリケーションのうちの、そのパラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示している。
【００１１】
本発明によるアプリケーション改変部位探索方法は、入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するステップと、その複数のログに基づいてポイント候補レポートを作成するステップと、そのポイント候補レポートに基づいてそのアプリケーションをカスタマイズするステップとを備えている。その複数のログは、それぞれ、その網羅テストが実行されているときに呼び出された複数のメソッドのうちのそのパラメタを引き数として指定するメソッドのコールスタックを示している。そのコールスタックは、さらに、そのメソッドの呼び出しが定義されるそのアプリケーション上の位置を示している。そのポイント候補レポートは、そのアプリケーションのうちの、そのパラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示している。
【００１２】
本発明によるアプリケーション改変部位探索装置およびアプリケーション改変部位探索方法によれば、ユーザは、アプリケーションのうちの改変が必要であるポイントの候補を参照することができ、そのアプリケーションをより容易にカスタマイズすることができる。
【図面の簡単な説明】
【００１３】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。【００１４】
【図１】図１は、本発明によるアプリケーション改変部位探索装置を示すブロック図である。
【図２】図２は、本発明によるアプリケーション改変部位探索方法を示す流れ図である。
【図３】図３は、入出力検証部の動作を示す流れ図である。
【図４】図４は、結果処理部の動作を示す流れ図である。
【図５】図５は、パラメタ定義の実施例を示す図である。
【図６】図６は、Ａｓｐｅｃｔ定義の実施例を示す図である。
【図７】図７は、動作ログの実施例を示す図である。
【図８】図８は、ステップＡ３００の処理の結果の１つの部分を示す図である。
【図９】図９は、ステップＡ３００の処理の結果の他の部分を示す図である。
【図１０】図１０は、ステップＡ３０１の処理の結果を示す図である。
【図１１】図１１は、ステップＡ３０２からＡ３０５までの処理の結果を示す図である。
【図１２】図１２は、ステップＡ３０６からＡ３０８までの処理の結果を示す図である。
【図１３】図１３は、ポイント候補レポートを示す図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照して、本発明によるアプリケーション改変部位探索装置の実施の形態を記載する。しかしながら、係る形態は本発明の技術的範囲を限定するものではない。そのアプリケーション改変部位探索装置は、図１に示されているように、テスト実行部１００と結果処理部２００とを備えている。テスト実行部１００は、アプリケーション１２１が動作する基盤環境である。結果処理部２００は、テスト実行部１００が出力した動作ログを処理し、ポイント候補レポートを作成する。
【００１６】
テスト実行部１００は、Ａｓｐｅｃｔ処理部１１０と実行エンジン部１２０と入出力検証部１３０とログ採取部１４０とを備えている。Ａｓｐｅｃｔ処理部１１０は、動作ログを出力するための処理をアプリケーション１２１に挿入するための機能を有している。実行エンジン部１２０は、アプリケーション１２１を実行するための機能を有している。実行エンジン部１２０は、さらに、テストプログラム３１０を用いてアプリケーション１２１のロジックの網羅テストを実行する。本発明によるアプリケーション改変部位探索装置は、図示されていない入力装置を備え、アプリケーション１２１とテストプログラム３１０とは、その入力装置を介して本発明によるアプリケーション改変部位探索装置に入力される。この網羅テストとは、アプリケーション１２１に実装されたロジックを網羅的に実行するような条件を入力としたテストを指す。この網羅テストは、一般的には単体テストとしてアプリケーション１２１の実装と合わせて用意されるものである。入出力検証部１３０は、アプリケーション１２１内で発生したメソッド呼び出しの引き数が、パラメタリスト３００にマッチするかを判定する機能を有している。ログ採取部１４０は、アプリケーション１２１内で発生したメソッド呼び出しをコールスタック（呼び出し経路）の形で出力する機能を有している。
【００１７】
Ａｓｐｅｃｔ処理部１１０は、Ａｓｐｅｃｔ生成部１１１とＡｓｐｅｃｔ適用部１１２とを含んでいる。Ａｓｐｅｃｔ生成部１１１は、アプリケーション１２１内で発生するメソッド呼び出しの引き数がパラメタリスト３００に定義したパラメタ群とマッチするか判定するロジックをＡｓｐｅｃｔの形式で生成する機能を有している。パラメタリスト３００は、その入力装置を介して本発明によるアプリケーション改変部位探索装置に入力される。Ａｓｐｅｃｔ適用部１１２は、Ａｓｐｅｃｔ生成部１１１が生成したＡｓｐｅｃｔをアプリケーション１２１に適用する機能を有している。
【００１８】
結果処理部２００は、処理スタック解析部２１０とレポート作成部２２０とを含んでいる。処理スタック解析部２１０は、ログ採取部１４０が出力した複数のコールスタックを分析し、その複数のコールスタックをマージする機能を有している。レポート作成部２２０は、そのマージされた複数のコールスタックに基づいて改変ポイント候補レポート３３０を作成する機能を有している。改変ポイント候補レポート３３０は、処理スタック解析部２１０がマージした処理コールスタックを改変箇所の候補として示している。結果処理部２００は、さらに、図示されていない出力装置を備えている。その出力装置は、改変ポイント候補レポート３３０を表示する。
【００１９】
図２は、本発明によるアプリケーション改変部位探索方法を示している。ユーザは、まず、パラメタ定義を作成し、そのパラメタ定義に基づいてパラメタリスト３００を作成する。ユーザは、入力装置を介してパラメタリスト３００をＡｓｐｅｃｔ処理部１１０に入力する（ステップＡ１０１）。パラメタリスト３００に記載されるパラメタは、カスタマイズする対象を識別するＩＤであり、例えば、ファイル名、ＵＲＬ、データベース名などである。
【００２０】
Ａｓｐｅｃｔ生成部１１１は、その入力されたパラメタリスト３００からＡｓｐｅｃｔ定義を生成する（ステップＡ１０２）。ここで生成されるＡｓｐｅｃｔ定義は、パラメタがアプリケーション内の各メソッドコールの引き数として出現するかをチェックするものである。そのＡｓｐｅｃｔ定義は、全メソッド呼び出しに対して、パラメタリスト３００に定義したパラメタ群と、メソッドの引き数を比較する処理を実装したものである。
【００２１】
Ａｓｐｅｃｔ適用部１１２は、Ａｓｐｅｃｔ生成部１１１により生成されたＡｓｐｅｃｔ定義をアプリケーション１２１に適用する（ステップＡ１０３）。この適用手順により、アプリケーション１２１内の全てのメソッド呼び出しのタイミングでそのＡｓｐｅｃｔ定義に定義されたパラメタとメソッドの引き数のチェックが実行されるようになる。
【００２２】
実行エンジン部１２０は、テストプログラム３１０を用いてアプリケーション１２１のロジックの網羅テストを実行する（ステップＡ１０４）。この網羅テストとは、アプリケーション１２１に実装されたロジックを網羅的に実行するような条件を入力としたテストを指す。これは、一般的には単体テストとしてアプリケーション１２１の実装と合わせて用意するものである。テスト実行部１００では、ステップＡ１０４実行時、さらに、Ａｓｐｅｃｔ生成部１１１により生成されたＡｓｐｅｃｔ定義に定義された処理が実行される。そのＡｓｐｅｃｔ定義に定義された処理が実行されることにより、動作ログが生成される。
【００２３】
結果処理部２００は、ステップＡ１０４で生成された動作ログをマージする（ステップＡ１０５）。結果処理部２００は、そのマージされた動作ログを改変ポイント候補レポート３３０として出力する（ステップＡ１０６）。改変ポイント候補レポート３３０は、特定の入力パラメタを呼び出すメソッドが定義されている部分のアプリケーションソースコード上の位置を示している。すなわち、改変ポイント候補レポート３３０に含まれる情報は、パタメタ識別子、メソッド名及び、該当メソッドが定義されているアプリケーションソースコード上の行番号である。
【００２４】
図３は、Ａｓｐｅｃｔ生成部１１１により生成されたＡｓｐｅｃｔ定義に定義された処理を示している。その処理は、ステップＡ１０４の実行中に、アプリケーション１２１のメソッドが呼び出されるたびに、実行される。入出力検証部１３０は、アプリケーション１２１のメソッドが呼び出されると、まず、処理中のパラメタリスト３００中のパラメタのインデックスを表すｍを０に初期化する（ステップＡ２０１）。入出力検証部１３０は、次に、ｍがパラメタリスト３００に定義されたパラメタの数より大きいか評価する（ステップＡ２０２）。入出力検証部１３０は、ステップＡ２０２の評価が真の場合、すなわち、ｍがパラメタの数より大きいときに（ステップＡ２０２、ＹＥＳ）、この処理を終了する。
【００２５】
入出力検証部１３０は、ステップＡ２０２の評価が偽の場合、すなわち、ｍがパラメタの数より大きくないときに（ステップＡ２０２、ＮＯ）、処理中のメソッドの引き数のインデックス（順序）を表すｎを０に初期化する（ステップＡ２０３）。入出力検証部１３０は、次に、ｎが処理中のメソッドに定義された引き数の数より大きいか評価する（ステップＡ２０４）。入出力検証部１３０は、ステップＡ２０４の評価が真の場合、すなわち、ｎがその引き数の数より大きいときに（ステップＡ２０４、ＹＥＳ）、ｍに１を足して（ステップＡ２０５）ステップＡ２０２の処理に戻る。
【００２６】
入出力検証部１３０は、ステップＡ２０４の評価が偽の場合、すなわち、ｎがその引き数の数より大きくないときに（ステップＡ２０４、ＮＯ）、ｎ番目のメソッド引き数が、パラメタリスト３００のｍ番目の値と同値であるか評価する（ステップＡ２０６）。入出力検証部１３０は、ステップＡ２０６の評価が真の場合、すなわち、ｎ番目のメソッド引き数がｍ番目の値と同値であるときに（ステップＡ２０６、ＹＥＳ）、動作ログに概要メソッドが呼び出された時点でのコールスタックを出力する（ステップＡ２０７）。ここで出力する動作ログには、パラメタ定義のどのパラメタとマッチしたのか、マッチしたメソッドの呼び出し順が分かるコールスタック情報、マッチしたメソッドのソースコード上での位置（行番号）を記録する。
【００２７】
入出力検証部１３０は、ステップＡ２０６の評価が偽の場合、すなわち、ｎ番目のメソッド引き数がｍ番目の値と同値でないときに（ステップＡ２０６、ＮＯ）、または、ステップＡ２０７の後に、ｎに１を足して（ステップＡ２０８）、ステップＡ２０４の処理に戻る。
【００２８】
図４は、ステップＡ１０５の動作を示している。処理スタック解析部２１０は、まず、ステップＡ２０７で出力された動作ログを比較対象となったパラメタごとに分割する（ステップＡ３００）。処理スタック解析部２１０は、次に、各パラメタの動作ログの集合を、それぞれコールスタックの深さの浅い順にソートする（ステップＡ３０１）。処理スタック解析部２１０は、例えば、
メソッドＡ→メソッドＢ→メソッドＣ→メソッドＤ
というコールスタックＤ１００と、
メソッドＡ→メソッドＢ→メソッドＣ
というコールスタックＤ１０１があった場合、コールスタックの深さが浅いのはコールスタックＤ１０１であるので、コールスタックＤ１０１→コールスタックＤ１００という順になるようにソートする。
【００２９】
処理スタック解析部２１０は、次に、ステップＡ３０１でソートしたリストのエントリの個数と同じ回数だけ所定の処理を繰り返す（ステップＡ３０２）。
【００３０】
処理スタック解析部２１０は、次に、処理中のエントリ（ａ）のコールスタックの深さと同じ深さのコールスタックを持つエントリ（ｂ）の個数と同じ回数だけ所定の処理を繰り返す（ステップＡ３０３）。
【００３１】
処理スタック解析部２１０は、次に、エントリ（ａ）のコールスタックがエントリ（ｂ）のコールスタックが同じかを評価する（ステップＡ３０４）。処理スタック解析部２１０は、ステップＡ３０４の評価が真の場合、すなわち、エントリ（ａ）のコールスタックがエントリ（ｂ）のコールスタックが同じであるときに（ステップＡ３０４、ＹＥＳ）、エントリ（ｂ）を動作ログから削除する（ステップＡ３０５）。
【００３２】
処理スタック解析部２１０は、ステップＡ３０４の評価が偽の場合、すなわち、エントリ（ａ）のコールスタックがエントリ（ｂ）のコールスタックが同じでないときに（ステップＡ３０４、ＮＯ）、または、ステップＡ３０５の処理が終わると、ステップＡ３０３のループを継続する。すなわち、処理スタック解析部２１０は、処理中のエントリ（ａ）のコールスタックの深さと同じ深さのコールスタックを持つエントリ（ｂ）ごとに、ステップＡ３０４〜ステップＡ３０５の処理を実行する。
【００３３】
処理スタック解析部２１０は、次に、（処理中のエントリ（ａ）のコールスタックの深さ−１）の深さのコールスタックを持つエントリ（ｃ）の個数と同じ回数だけ所定の処理を繰り返す（ステップＡ３０６）。
【００３４】
処理スタック解析部２１０は、エントリ（ａ）のコールスタックにエントリ（ｃ）のコールスタックが含まれるかを評価する（ステップＡ３０７）。処理スタック解析部２１０は、ステップＡ３０７の評価が真の場合、すなわち、エントリ（ａ）のコールスタックにエントリ（ｃ）のコールスタックが含まれるときに（ステップＡ３０７、ＹＥＳ）、エントリ（ｃ）を動作ログから削除する（ステップＡ３０８）。
【００３５】
処理スタック解析部２１０は、ステップＡ３０７の評価が偽の場合、すなわち、エントリ（ａ）のコールスタックにエントリ（ｃ）のコールスタックが含まれないときに（ステップＡ３０７、ＮＯ）または、ステップＡ３０８の処理が終わると、ステップＡ３０６のループを継続する。すなわち、処理スタック解析部２１０は、（処理中のエントリ（ａ）のコールスタックの深さ−１）の深さのコールスタックを持つエントリ（ｃ）ごとに、ステップＡ３０７〜ステップＡ３０８の処理を実行する。
【００３６】
処理スタック解析部２１０は、ステップＡ３０６のループが終了すると、ステップＡ３０２のループを継続する。すなわち、処理スタック解析部２１０は、ステップＡ３０１でソートしたリストのエントリごとに、ステップＡ３０３〜ステップＡ３０８の処理を実行する。
【００３７】
本発明によるアプリケーション改変部位探索装置は、このような動作を実行することにより、アプリケーションのカスタマイズに必要な処理の改変候補部位を自動的に発見することができる。アプリケーション開発者は、さらに、アプリケーションソースコードの全体を理解する必要がなく、ポイント候補レポート３３０を参照することにより、アプリケーション１２１のカスタマイズで改変が必要となるソースコード上の箇所を知ることができ、アプリケーション１２１をより容易にカスタマイズすることができる。
【００３８】
本発明によるアプリケーション改変部位探索装置は、Ａｓｐｅｃｔ技術を用いて、メソッドの引き数とパラメタとの比較ロジックを埋め込むことにより、アプリケーション１２１のカスタマイズに必要な処理の改変候補部位を発見するためのログを作成している。このため、本発明によるアプリケーション改変部位探索装置は、アプリケーション１２１に特別なロジックを追加実装することなくこのような網羅的探索を実現することができ、さらに、アプリケーション１２１のソースコード汚染を防止することができる。
【００３９】
本発明によるアプリケーション改変部位探索装置は、改変候補部位のうち同じコールスタックを含む場合は、最も処理コールスタックが浅い改変候補部位を採用し、重複した改変候補部位の情報を除外しているため、得られる改変候補部位のレポートに冗長な改変候補部位の情報が含まれず、重複してカスタマイズ処理を組み込むなどの問題を防止することができる。
【００４０】
本発明によるアプリケーション改変部位探索装置は、さらに、改変が必要となるソースコード上の部位の発見を、通常行なわれるアプリケーションの単体テスト、結合テストの過程で実施することができる。このため、本発明によるアプリケーション改変部位探索装置は、開発工程の変更や拡張を必要としないため、アプリケーションのカスタマイズを低コストに実現することができる。
［実施例］
【００４１】
本実施例は、アプリケーション開発者により所定のパラメタリストが作成され、テスト実行部１００により所定の動作ログが出力されたときの動作を示している。
【００４２】
図５は、そのパラメタリストを示している。そのパラメタリストは、パラメタＥ１００とパラメタＥ１０１とを示している。パラメタＥ１００は、データベースの接続先としてｄａｔａＳｏｕｒｃｅをカスタマイズで改変することを示している。パラメタＥ１０１は、設定ファイルのパスとしてｓｅｔｔｉｎｇ．ｐｒｏｐｅｒｔｉｅｓをカスタマイズで改変することを示している。Ａｓｐｅｃｔ生成部１１１は、このパラメタ定義に基づいてＡｓｐｅｃｔ定義を生成する。
【００４３】
図６は、そのＡｓｐｅｃｔ定義を示している。そのＡｓｐｅｃｔ定義は、Ａｓｐｅｃｔ実装としてＡｓｐｅｃｔＪを利用したものである。そのＡｓｐｅｃｔ定義は、図３のフローチャートを実現するものである。そのＡｓｐｅｃｔ定義は、複数の行から形成され、その複数の行は、行Ｆ１００〜行Ｆ１０４を含んでいる。行Ｆ１００は、全てのメソッド呼び出しに割り込むことを示す定義を示している。行Ｆ１０１は、ｃｈｅｃｋＰａｒａｍｅｔｅｒで定義している処理を行Ｆ１００で定義したタイミングで実行することを定義している。行Ｆ１０２は、図５で定義したパラメタの個数と同じ回数だけ行Ｆ１０３以降の処理を繰り返すことを表わす。行Ｆ１０３は、チェック対象のメソッドの引き数の個数と同じ回数だけ行Ｆ１０４以降の処理を繰り返すことを表わす。行Ｆ１０４は、チェック対象のパラメタと、チェック対象のメソッドの引き数が同値であるかチェックし、同値であれば処理コールスタックを動作ログに出力することを表わしている。
【００４４】
Ａｓｐｅｃｔ生成部１１１は、次に、このように生成した図６のＡｓｐｅｃｔ定義をＡｓｐｅｃｔ適用部１１２に入力する。Ａｓｐｅｃｔ適用部１１２は、次に、図６のＡｓｐｅｃｔ定義を実行エンジン部１２０に適用し、アプリケーション１２１に適用する。この適用方法については、実行エンジンに依存するものであり、本発明では定義しない。例えば、実行エンジンとしてＪａｖａ及びＡｓｐｅｃｔＪを利用する場合は、ＡｓｐｅｃｔＪのＬｏａｄ  Ｔｉｍｅ  ＷｅａｖｅｒというツールをＪａｖａのＡｇｅｎｔ機能を利用してアタッチし、Ａｓｐｅｃｔを適用する。
【００４５】
実行エンジン部１２０は、次に、テストプログラム３１０を実行し、アプリケーション１２１に対して網羅テストを実行する。このテストプログラム３１０は、図５のパラメタリストに定義したパラメタを利用するテストである。つまり、データベースとしてｄａｔａＳｏｕｒｃｅという接続先に接続し、設定ファイルとしてｓｅｔｔｉｎｇ．ｐｒｏｐｅｒｔｉｅｓを利用する。網羅テスト中、アプリケーション１２１に含まれるメソッド呼び出しが発生するたびに、図６のＡｓｐｅｃｔ定義に定義したチェック処理が動作する。すなわち、入出力検証部１３０は、メソッドが呼び出しを検出する。ログ採取部１４０は、入出力検証部１３０により検出されたメソッドが呼び出しに基づいて、動作ログを生成する。
【００４６】
図７は、ログ採取部１４０によって出力される動作ログの例を示している。その動作ログは、複数のエントリエントリＧ１００〜エントリＧ１０４から形成されている。エントリＧ１００は、図５のパラメタ定義のうちパラメタＥ１００のｄａｔａＳｏｕｒｃｅというパラメタ値が、クラスＡのｔｗｏというメソッドの引き数として出現したことを示している。エントリＧ１００は、また、クラスＡのメソッドｔｗｏに至るコールスタックとして、クラスＡｐｐｌｉｃａｔｉｏｎのｍａｉｎメソッド、クラスＡのｏｎｅメソッド、クラスＡのｔｗｏメソッドという順番で呼び出されたことを示している。また、それぞれのエントリの右にある括弧は、該当メソッドが定義されているソースコード上の位置、つまりソースコードのファイルと行数を示している。すなわち、エントリＧ１００は、クラスＡのメソッドｔｗｏについてはソースコードＡ．ｊａｖａの１５０行目に定義されていることを示している。
【００４７】
エントリＧ１０１は、図５のパラメタ定義のうちパラメタＥ１００のｄａｔａＳｏｕｒｃｅというパラメタ値が、クラスＡのｔｗｏというメソッドの引き数として出現したことを示している。エントリＧ１０２は、図５のパラメタ定義のうちパラメタＥ１００のｄａｔａＳｏｕｒｃｅというパラメタ値が、クラスＡのｔｈｒｅｅというメソッドの引き数として出現したことを示している。エントリＧ１０３は、図５のパラメタ定義のうちパラメタＥ１００のｄａｔａＳｏｕｒｃｅというパラメタ値が、クラスＡのｆｏｕｒというメソッドの引き数として出現したことを示している。エントリＧ１０４は、図５のパラメタ定義のうちパラメタＥ１００のｓｅｔｔｉｎｇ．ｐｒｏｐｅｒｔｉｅｓというパラメタ値が、クラスＡのｆｉｖｅというメソッドの引き数として出現したことを示している。
【００４８】
処理スタック解析部２１０は、図４のステップＡ３００の処理により、図７の動作ログをパラメタ定義により定義されたパラメタの個数と同じ個数のデータに分割する。
【００４９】
図８は、その分割された複数のデータのうちのパラメタＥ１００に対応するデータを示している。そのデータは、エントリＧ１００とエントリＧ１０１とエントリＧ１０２とエントリＧ１０３とから形成されている。エントリＧ１００〜エントリＧ１０３は、図７で示されている複数のエントリのうち、パラメタＥ１００のパラメタ値が出現したことを示すエントリをそれぞれ示している。すなわち、エントリＧ１００は、図７で示されているエントリＧ１００に該当している。エントリＧ１０１は、図７で示されているエントリＧ１０１に該当している。エントリＧ１０２は、図７で示されているエントリＧ１０２に該当している。エントリＧ１０３は、図７で示されているエントリＧ１０３に該当している。
【００５０】
図９は、その分割された複数のデータのうちのパラメタＥ１０１に対応するデータを示している。そのデータは、エントリＧ１０４とから形成されている。エントリＧ１０４は、図７で示されている複数のエントリのうち、パラメタＥ１０１のパラメタ値が出現したことを示すエントリを示している。すなわち、エントリＧ１０４は、図７で示されているエントリＧ１０４に該当している。
【００５１】
処理スタック解析部２１０は、図４のステップＡ３０１の処理により、図８のデータの複数のエントリをソートし、図９のデータの複数のエントリをソートする。
【００５２】
図１０は、図８のデータのエントリＧ１００〜エントリＧ１０３がソートされたデータを示している。そのデータは、エントリＧ１００とエントリＧ１０１とエントリＧ１０３とエントリＧ１０２とから形成されている。そのデータは、さらに、エントリＧ１００の次がエントリＧ１０１であることを示し、エントリＧ１０１の次がエントリＧ１０３であることを示し、エントリＧ１０３の次がエントリＧ１０２であることを示している。そのデータは、エントリＧ１００のコールスタックの深さが３であり、エントリＧ１０１のコールスタックの深さが３であり、エントリＧ１０２のコールスタックの深さが４であり、エントリＧ１０３のコールスタックの深さが３であるので、その深さが昇順になるように、エントリＧ１００とエントリＧ１０１とエントリＧ１０３とエントリＧ１０２とがソートされていることを示している。すなわち、そのデータは、図８のデータのエントリＧ１０２の順番とエントリＧ１０３の順番とが入れ変わっているデータを示している。
【００５３】
図９のデータは、１つのエントリＧ１０４から形成され、図４のステップＡ３０１の処理により、変化しないで、図９のデータのままである。
【００５４】
処理スタック解析部２１０は、図４のステップＡ３０３〜Ａ３０５の処理により、図１０のデータの複数のエントリから所定のエントリを削除し、図９のデータの複数のエントリから所定のエントリを削除する。
【００５５】
図１１は、図１０のデータから所定のエントリが削除されたデータを示している。そのデータは、エントリＧ１００とエントリＧ１０３とエントリＧ１０２とから形成されている。そのデータは、図１０のデータのエントリＧ１００のコールスタックとエントリＧ１０１のコールスタックとが同じであるため、図１０のデータからエントリＧ１０１が削除されたデータを示している。
【００５６】
図９のデータは、１つのエントリＧ１０４から形成され、図４のステップＡ３０３〜Ａ３０５の処理により、エントリが削除されないで、図９のデータのままである。
【００５７】
処理スタック解析部２１０は、図４のステップＡ３０６〜Ａ３０８の処理により、図１１のデータの複数のエントリから所定のエントリを削除し、図９のデータの複数のエントリから所定のエントリを削除する。
【００５８】
図１２は、図１１のデータの複数のエントリから所定のエントリが削除されたデータを示している。そのデータは、エントリＧ１００とエントリＧ１０３とから形成されている。そのデータは、図１１のデータのエントリＧ１００のコールスタックがエントリＧ１０２のコールスタックに含まれるため、図１１のデータからエントリＧ１０２が削除されたデータを示している。
【００５９】
図９のデータは、１つのエントリＧ１０４から形成され、図４のステップＡ３０６〜Ａ３０８の処理により、エントリが削除されないで、図９のデータのままである。
【００６０】
レポート作成部２２０は、図２のステップＡ１０６の処理により、図１２のデータと図９のデータとに基づいてポイント候補レポートを作成する。
【００６１】
図１３は、図１２のデータと図９のデータとに基づいて作成されたポイント候補レポートを示している。そのポイント候補レポートは、エントリＧ１００とエントリＧ０２とエントリＧ１０４とから形成されている。
【００６２】
アプリケーション開発者は、このようなポイント候補レポートを参照することにより、アプリケーションソースコードの全体を理解する必要がなく、アプリケーション１２１のカスタマイズで改変が必要となるソースコード上の箇所を知ることができ、アプリケーション１２１をより容易にカスタマイズすることができる。
【００６３】
この実施例では、図１１に示される複数のエントリは、図７に示される複数のエントリに比較して、個数が低減している。すなわち、この実施例は、さらに、本発明によるアプリケーション改変部位探索装置が本発明によるアプリケーション改変部位探索方法を実行することにより、改変候補部位のうち同じコールスタックを含む場合に、重複してカスタマイズ処理を組み込むなどの問題を防止することができることを示している。
【００６４】
なお、本発明によるアプリケーション改変部位探索装置は、コンピュータにより実現されることもできる。そのコンピュータは、リムーバルメモリドライブまたは通信装置を備えている。そのリムーバルメモリドライブは、記録媒体が挿入されたときに、その記録媒体に記録されているデータを読み出すことに利用される。そのリムーバルメモリドライブは、さらに、コンピュータプログラムが記録されている記録媒体が挿入されたときに、そのコンピュータプログラムをそのコンピュータにインストールするときに利用される。その記録媒体としては、フラッシュメモリ、磁気ディスク（フレキシブルディスク、ハードディスク）、磁気テープ（ビデオテープ）、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスクが例示される。その通信装置は、通信回線網を介して他のコンピュータに記録された情報を読み出すことに利用される。その通信装置は、さらに、その通信回線網に公開されているコンピュータプログラムをそのコンピュータにインストールするときに利用される。その通信回線網としては、ＬＡＮ、インターネット、専用回線が例示される。このとき、そのコンピュータは、そのコンピュータにこれらの複数の機能を実現させるための複数のコンピュータプログラムがインストールされることにより、本発明によるアプリケーション改変部位探索方法を実行する。
【００６５】
なお、本明細書と図面との対応において、参照符号の１００はテスト実行部を示している。参照符号の２００は結果処理部を示している。参照符号の３００はパラメタリストを示している。参照符号の１１０はＡｓｐｅｃｔ処理部を示している。参照符号の１１１はＡｓｐｅｃｔ生成部を示している。参照符号の１１２はＡｓｐｅｃｔ適用部を示している。参照符号の１２０は実行エンジン部を示している。参照符号の１２１はアプリケーションを示している。参照符号の１３０は入出力検証部を示している。参照符号の１４０はログ採取部を示している。参照符号の２１０は処理スタック解析部を示している。参照符号の２２０はレポート作成部を示している。参照符号の３１０はテストプログラムを示している。参照符号の３３０はポイント候補レポートを示している。
【００６６】
以上、実施の形態（実施例を含む）を参照して本発明を説明したが、本発明は上記実施の形態や実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【００６７】
本発明はいくつかの実施の形態（実施例を含む）と併せて上述されたが、これらの実施の形態（実施例を含む）は本発明を説明するために単に提供されたものであることは当業者にとって明らかであり、意義を限定するように添付のクレームを解釈するために頼ってはならない。
【００６８】
この出願は、２０１０年３月４日に出願された特許出願番号２０１０−０４７８４５号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
【００６９】
上記実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７０】
（付記１）
入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するテスト実行部と、
前記複数のログに基づいてポイント候補レポートを作成する結果処理部とを具備し、
前記複数のログは、それぞれ、前記網羅テストが実行されているときに呼び出された複数のメソッドのうちの前記パラメタを引き数として指定するメソッドのコールスタックを示し、
前記コールスタックは、さらに、前記メソッドの呼び出しが定義される前記アプリケーション上の位置を示し、
前記ポイント候補レポートは、前記アプリケーションのうちの、前記パラメタに
よって処理の切り替えを行うときに改変が必要であるポイントの候補を示す
アプリケーション改変部位探索装置。
【００７１】
（付記２）
付記１において、
前記テスト実行部は、
前記パラメタに基づいてプログラムロジックを作成するアスペクト処理部と、
前記アプリケーションに前記プログラムロジックを適用する実行エンジン部と、
前記アプリケーションの各メソッドが呼び出されたときに、前記プログラムロジックに基づいて前記パラメタが前記各メソッドの引き数として出現しているかどうかを評価する入出力検証部と、
前記パラメタが前記各メソッドの引き数として出現したときに、前記各メソッドのコールスタックに基づいて前記ログを作成するログ採取部とを備える
アプリケーション改変部位探索装置。
【００７２】
（付記３）
付記２において、
前記結果処理部は、
前記複数のログから複数の抽出ログを抽出する処理スタック解析部と、
前記複数の抽出ログに基づいて前記ポイント候補レポートを作成するレポート作成部とを備え、
前記ポイント候補レポートが示す複数の候補は、前記複数の抽出ログに対応し、
前記複数の候補のうちのある１つのログに対応する候補は、前記１つのログが示すコールスタックのうちの最も深い呼び出しを示す
アプリケーション改変部位探索装置。
【００７３】
（付記４）
付記３において、
前記処理スタック解析部は、前記複数のログのうちの第１ログが前記複数のログのうちの第２ログを包含するときに、前記複数のログから前記第１ログを削除することにより、前記複数の抽出ログを作成する
アプリケーション改変部位探索装置。
【００７４】
（付記５）
付記３または付記４のいずれかにおいて、
前記テスト実行部は、前記パラメタと異なる他のパラメタがさらに入力されたときに、複数の全体ログを作成し、
前記処理スタック解析部は、さらに、前記複数のメソッドのうちの前記他のパラメタを引き数として指定する他のメソッドのコールスタックを示す複数の他のログと前記複数のログとに前記複数の全体ログを分割し、前記複数の他のログから複数の他の抽出ログを抽出し、
前記レポート作成部は、前記複数の他の抽出ログにさらに基づいて前記ポイント候補レポートを作成する
アプリケーション改変部位探索装置。
【００７５】
（付記６）
入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するステップと、
前記複数のログに基づいてポイント候補レポートを作成するステップと、
前記ポイント候補レポートに基づいて前記アプリケーションをカスタマイズするステップとを具備し、
前記複数のログは、それぞれ、前記網羅テストが実行されているときに呼び出された複数のメソッドのうちの前記パラメタを引き数として指定するメソッドのコールスタックを示し、
前記コールスタックは、さらに、前記メソッドの呼び出しが定義される前記アプリケーション上の位置を示し、
前記ポイント候補レポートは、前記アプリケーションのうちの、前記パラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示す
アプリケーション改変部位探索方法。
【００７６】
（付記７）
付記６において、
前記パラメタに基づいてプログラムロジックを作成するステップと、
前記アプリケーションに前記プログラムロジックを適用するステップと、
前記アプリケーションの各メソッドが呼び出されたときに、前記プログラムロジックに基づいて前記パラメタが前記各メソッドの引き数として出現しているかどうかを評価するステップと、
前記パラメタが前記各メソッドの引き数として出現したときに、前記各メソッドのコールスタックに基づいて前記ログを作成するステップ
とをさらに具備するアプリケーション改変部位探索方法。
【００７７】
（付記８）
付記７において、
前記複数のログから複数の抽出ログを抽出するステップと、
前記複数の抽出ログに基づいて前記ポイント候補レポートを作成するステップとをさらに具備し、
前記ポイント候補レポートが示す複数の候補は、前記複数の抽出ログに対応し、
前記複数の候補のうちのある１つのログに対応する候補は、前記１つのログが示すコールスタックのうちの最も深い呼び出しを示す
アプリケーション改変部位探索方法。
【００７８】
（付記９）
付記８において、
前記複数の抽出ログは、前記複数のログのうちの第１ログが前記複数のログのうちの第２ログを包含するときに、前記複数のログから前記第１ログを削除することにより、作成される
アプリケーション改変部位探索方法。
【００７９】
（付記１０）
付記８または付記９のいずれかにおいて、
前記パラメタと異なる他のパラメタがさらに入力されたときに作成された複数の全体ログを、前記複数のメソッドのうちの前記他のパラメタを引き数として指定する他のメソッドのコールスタックを示す複数の他のログと前記複数のログとに分割するステップと、
前記複数の他のログから複数の他の抽出ログを抽出するステップとをさらに具備し、
前記ポイント候補レポートは、前記複数の他の抽出ログにさらに基づいて作成される
アプリケーション改変部位探索方法。
【００８０】
（付記１１）
付記６〜付記１０のいずれかに記載されるアプリケーション改変部位探索方法をコンピュータに実行させるためのコンピュータプログラム。
【００８１】
（付記１２）
付記１１に記載されるアプリケーション改変部位探索方法を記録したコンピュータ読み取り可能な記録媒体。
【図１】
2011108584.tif 000003
【図２】
2011108584.tif 000004
【図３】
2011108584.tif 000005
【図４】
2011108584.tif 000006
【図５】
2011108584.tif 000007
【図６】
2011108584.tif 000008
【図７】
2011108584.tif 000009
【図８】
2011108584.tif 000010
【図９】
2011108584.tif 000011
【図１０】
2011108584.tif 000012
【図１１】
2011108584.tif 000013
【図１２】
2011108584.tif 000014
【図１３】
2011108584.tif 000015
【手続補正書】
【提出日】平成23年6月28日(2011.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するテスト実行部と、
前記複数のログに基づいてポイント候補レポートを作成する結果処理部とを具備し、
前記複数のログは、それぞれ、前記網羅テストが実行されているときに呼び出された複数のメソッドのうちの前記パラメタを引き数として指定するメソッドのコールスタックを示し、
前記コールスタックは、さらに、前記メソッドの呼び出しが定義される前記アプリケーション上の位置を示し、
前記ポイント候補レポートは、前記アプリケーションのうちの、前記パラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示す
アプリケーション改変部位探索装置。
【請求項２】
請求項１に記載のアプリケーション改変部位探索装置において、
前記テスト実行部は、
前記パラメタに基づいてプログラムロジックを作成するアスペクト処理部と、
前記アプリケーションに前記プログラムロジックを適用する実行エンジン部と、
前記アプリケーションの各メソッドが呼び出されたときに、前記プログラムロジックに基づいて前記パラメタが前記各メソッドの引き数として出現しているかどうかを評価する入出力検証部と、
前記パラメタが前記各メソッドの引き数として出現したときに、前記各メソッドのコールスタックに基づいて前記ログを作成するログ採取部とを備える
アプリケーション改変部位探索装置。
【請求項３】
請求項２に記載のアプリケーション改変部位探索装置において、
前記結果処理部は、
前記複数のログから複数の抽出ログを抽出する処理スタック解析部と、
前記複数の抽出ログに基づいて前記ポイント候補レポートを作成するレポート作成部とを備え、
前記ポイント候補レポートが示す複数の候補は、前記複数の抽出ログに対応し、
前記複数の候補のうちのある１つのログに対応する候補は、前記１つのログが示すコールスタックのうちの最も深い呼び出しを示す
アプリケーション改変部位探索装置。
【請求項４】
請求項３に記載のアプリケーション改変部位探索装置において、
前記処理スタック解析部は、前記複数のログのうちの第１ログが前記複数のログのうちの第２ログを包含するときに、前記複数のログから前記第２ログを削除することにより、前記複数の抽出ログを作成する
アプリケーション改変部位探索装置。
【請求項５】
請求項３または請求項４のいずれか一項に記載のアプリケーション改変部位探索装置において、
前記テスト実行部は、前記パラメタと異なる他のパラメタがさらに入力されたときに、複数の全体ログを作成し、
前記処理スタック解析部は、さらに、前記複数のメソッドのうちの前記他のパラメタを引き数として指定する他のメソッドのコールスタックを示す複数の他のログと前記複数のログとに前記複数の全体ログを分割し、前記複数の他のログから複数の他の抽出ログを抽出し、
前記レポート作成部は、前記複数の他の抽出ログにさらに基づいて前記ポイント候補レポートを作成する
アプリケーション改変部位探索装置。
【請求項６】
入力されたパラメタに基づいて、アプリケーションに網羅テストを実行しているときに、複数のログを作成するステップと、
前記複数のログに基づいてポイント候補レポートを作成するステップと、
前記ポイント候補レポートに基づいて前記アプリケーションをカスタマイズするステップとを具備し、
前記複数のログは、それぞれ、前記網羅テストが実行されているときに呼び出された複数のメソッドのうちの前記パラメタを引き数として指定するメソッドのコールスタックを示し、
前記コールスタックは、さらに、前記メソッドの呼び出しが定義される前記アプリケーション上の位置を示し、
前記ポイント候補レポートは、前記アプリケーションのうちの、前記パラメタによって処理の切り替えを行うときに改変が必要であるポイントの候補を示す
アプリケーション改変部位探索方法。
【請求項７】
請求項６に記載のアプリケーション改変部位探索方法において、
前記パラメタに基づいてプログラムロジックを作成するステップと、
前記アプリケーションに前記プログラムロジックを適用するステップと、
前記アプリケーションの各メソッドが呼び出されたときに、前記プログラムロジックに基づいて前記パラメタが前記各メソッドの引き数として出現しているかどうかを評価するステップと、
前記パラメタが前記各メソッドの引き数として出現したときに、前記各メソッドのコールスタックに基づいて前記ログを作成するステップ
とをさらに具備するアプリケーション改変部位探索方法。
【請求項８】
請求項７に記載のアプリケーション改変部位探索方法において、
前記複数のログから複数の抽出ログを抽出するステップと、
前記複数の抽出ログに基づいて前記ポイント候補レポートを作成するステップと
をさらに具備し、
前記ポイント候補レポートが示す複数の候補は、前記複数の抽出ログに対応し、
前記複数の候補のうちのある１つのログに対応する候補は、前記１つのログが示すコールスタックのうちの最も深い呼び出しを示す
アプリケーション改変部位探索方法。
【請求項９】
請求項８に記載のアプリケーション改変部位探索方法において、
前記複数の抽出ログは、前記複数のログのうちの第１ログが前記複数のログのうちの第２ログを包含するときに、前記複数のログから前記第２ログを削除することにより、作成される
アプリケーション改変部位探索方法。
【請求項１０】
請求項８または請求項９のいずれか一項に記載のアプリケーション改変部位探索方法において、
前記パラメタと異なる他のパラメタがさらに入力されたときに作成された複数の全体ログを、前記複数のメソッドのうちの前記他のパラメタを引き数として指定する他のメソッドのコールスタックを示す複数の他のログと前記複数のログとに分割するステップと、
前記複数の他のログから複数の他の抽出ログを抽出するステップと
をさらに具備し、
前記ポイント候補レポートは、前記複数の他の抽出ログにさらに基づいて作成される
アプリケーション改変部位探索方法。
【国際調査報告】
2011108584.tif 000016
2011108584.tif 000017