(57)【特許請求の範囲】
【請求項１】
プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報を入力し、前記プログラムを解析して性能上の問題箇所を出力するプログラム開発支援装置であって、
前記プログラムを解析してプログラムモデルを作成するプログラム解析部と、
前記プログラムモデルから、前記問題点に合致する問題箇所を抽出する問題箇所抽出部と、
前記問題箇所を前記問題点−実行時間への影響及びメモリ消費量への影響の２つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の２つの項目から性能影響を計算する性能影響算出部と、
前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、
前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、
前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部を備えている、
ことを特徴とするプログラム開発支援装置。
【請求項２】
コンピュータに、
プログラムを解析してプログラムモデルを作成するプログラム解析部と、
前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、
前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の２つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の２つの項目から性能影響を計算する性能影響算出部と、
前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、
問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、
前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３】
コンピュータに、
プログラムを解析してプログラムモデルを作成するプログラム解析部と、
前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、
前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の２つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の２つの項目から性能影響を計算する性能影響算出部と、
前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、
問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、
前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、開発対象のコンピュータプログラムを検査し、バグ、実行時間やリソース消費量上の問題、解読性が悪く保守を難しくする記述等を検出することにより、プログラム開発時の支援を行うプログラム開発支援装置及び記録媒体に関する。
【０００２】
【従来の技術】
以下、従来例について説明する。従来、プログラムを解析して問題箇所を検出するプログラム開発支援装置が知られていた。以下、このプログラム開発支援装置を図１５に基づいて説明する。
【０００３】
プログラム開発支援装置は、入力されたプログラムを解析してプログラムモデルを作成するプログラム解析部４と、入力された問題点とプログラムモデルを基に問題箇所を抽出する問題箇所抽出部６を備えている。なお、前記問題点は、予め、人手によりプログラム上の問題点と考えられる箇所を調べたものであり、プログラムは開発対象のプログラムである。
【０００４】
前記構成のプログラム開発支援装置では、入力されたプログラムをプログラム解析部４が解析してプログラムモデルを作成し、問題箇所抽出部６が、入力された問題点とプログラムモデルを基に問題箇所を抽出する。
【０００５】
【発明が解決しようとする課題】
前記のような従来のものにおいては、次のような課題があった。
【０００６】
(1) ：従来のプログラム開発支援装置によりプログラムの開発支援を行う場合、次のような課題があった。すなわち、一般には、プログラムを解析して複数の問題点が検出されるが、その中には修正が局所的であって容易なもの、修正の影響が広範囲に及ぶため難しいものなどが混在する。
【０００７】
加えて性能改善を目的とする場合には、問題点の修正が改善にどの程度寄与するかを判断するために、記述されたシステムの仕様、設計ならびに実装に用いられるデザインパターン等の設計技術及びプログラミング技術、プログラミング言語の特性、コンパイラ等の言語処理系や実行環境の特性等の高度な理解を必要とする。従って、数ある問題点の中でどの項目の修正がより効率良く性能改善に結びつくかを判断するのは困難である。
【０００８】
(2) ：従来のプログラム開発支援装置は前記の通りであるから、抽出された問題点から性能影響や修正の適用範囲を割り出し、性能影響の大きさや修正の難度から問題点に優先順位を与え、優先度の高い問題点から修正することにより効率良く性能改善を行なって行くのは困難である。
【０００９】
本発明は、このような従来の課題を解決し、プログラム開発を行う際、必要な情報の定型化と処理の自動化を実現し、性能改善の効率化を図ることを目的とする。
【００１０】
【課題を解決するための手段】
本発明は前記の目的を達成するため、次のように構成した。
【００１１】
(1) ：プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報を入力し、前記プログラムを解析して性能上の問題箇所を出力するプログラム開発支援装置であって、前記プログラムを解析してプログラムモデルを作成するプログラム解析部と、前記プログラムモデルから、前記問題点に合致する問題箇所を抽出する問題箇所抽出部と、前記問題箇所を前記問題点−実行時間への影響及びメモリ消費量への影響の２つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の２つの項目から性能影響を計算する性能影響算出部と、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部を備えていることを特徴とする。
【００１２】
(2) ：コンピュータに、プログラムを解析してプログラムモデルを作成するプログラム解析部と、前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の２つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の２つの項目から性能影響を計算する性能影響算出部と、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００１３】
(3) ：コンピュータに、プログラムを解析してプログラムモデルを作成するプログラム解析部と、前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の２つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の２つの項目から性能影響を計算する性能影響算出部と、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラム。
【００１４】
（作用）
前記構成に基づく本発明の作用を図１に基づいて説明する。入力として、プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報（問題点−性能影響−修正方法対応表）の３つが与えられる。
【００１５】
最初にプログラム解析部４はプログラムを解析してプログラムモデルを作成する。次に、問題箇所抽出部６は前記プログラムモデルから問題点に合致する問題箇所を抽出する。その後、性能影響算出部１６は前記問題箇所を問題点−性能影響−修正方法対応情報に当てはめ、性能影響を算出する。そして、影響範囲検索部１４は、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する。
【００１６】
次に、修正規模算出部１６は、前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める。最後に、出力部１８は、前記問題箇所、性能影響、及び修正規模を基に問題箇所検索結果を出力し、ユーザに提示する。
【００１７】
このようにすれば、問題点と性能影響の対応を明確にし、検出された問題箇所から性能影響と修正規模を求め、性能影響と修正規模に基づいて問題箇所に優先順位をつける作業を自動化することができる。従って、性能改善の効率化を図ることができる。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１９】
§１：プログラム開発支援装置の説明
以下、図２に基づいてプログラム開発支援装置を説明する。このプログラム開発支援装置１は、プログラムの解析処理を行うプログラム解析部４と、問題箇所の抽出処理を行う問題箇所抽出部６と、性能影響の算出処理を行う性能影響算出部１２と、修正の影響範囲を検索する修正の影響範囲検索部１４と、修正規模の算出処理を行う修正規模算出部１６と、データの出力処理を行う出力部１８を備えている。
【００２０】
前記開発支援装置の機能は次の通りである。この装置への入力データとして、プログラムと、問題点と、問題点−性能影響−修正方法対応表の３つが与えられる。この場合、プログラムは開発対象のプログラムであり、問題点は人手によりプログラム上の問題点を集めたデータである。また、問題点−性能影響−修正方法対応表は、人手によりプログラム上の問題点とその性能影響と修正方法を対応表にまとめたデータである。
【００２１】
前記３つの入力データが与えられると、先ず、プログラム解析部４はプログラムを解析しプログラムモデルを作成する。問題箇所抽出部６はプログラムモデルと問題点を入力し、プログラムモデルから問題点に合致する箇所を問題箇所として抽出する。その後、個々の問題箇所につき、次のような処理を行う。
【００２２】
先ず、性能影響算出部１２は問題箇所と問題点−性能影響−修正方法対応表のデータを入力し、問題箇所を問題点−性能影響−修正方法対応表に当てはめ、性能影響を作成する。影響範囲検索部１４は前記問題箇所から、その修正によって影響を受ける影響範囲をプログラムモデルから検索する。
【００２３】
修正規模算出部１６は前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める。出力部１８は修正規模と問題箇所と性能影響のデータを入力し、修正規模と性能影響に基づいて問題箇所を分類し、出力装置（ディスプレイ装置、プリンタ装置等）を介して問題箇所検索結果を可視化出力し、ユーザに提示する。なお、前記問題点の定義は次の通りである。
【００２４】
（問題点の定義）
次のようなものを問題点と定義する。
【００２５】
▲１▼：バグ
（それに一致すると動作しないもの）
▲２▼：性能上問題有り
（動作するが、メモリを多く消費する、等の問題があるもの）
▲３▼：保守が難しい
（動作するが、実現手段が分かりにくい、読みにくい等）
▲４▼：記述方法が何通りか有る
（１つに統一する必要があるもの）
§２：フローチャートによる処理の説明
以下、図３に基づいて前記プログラム開発支援装置１の処理を説明する。なお、Ｓ１〜Ｓ１０は各処理ステップを示す。
【００２６】
前記３つの入力データが与えられると、先ず、プログラム解析部４はプログラムを解析しプログラムモデルを作成する（Ｓ１）。次に、問題点箇所抽出部６は問題点とプログラムモデルのデータを入力し、プログラムモデルから問題点に合致する箇所を問題箇所として抽出する（Ｓ２）。その後、個々の問題箇所につき次の処理を行う。
【００２７】
先ず、性能影響算出部１２は問題箇所と問題点−性能影響−修正方法対応表のデータを入力し、問題箇所を１つ取り出して（Ｓ３）、その問題箇所を問題点−性能影響−修正方法対応表に当てはめ、性能影響を割り出す（Ｓ４）。
【００２８】
次に、影響範囲検索部１４は問題箇所とプログラムモデルとを入力し、問題箇所から、その修正によって影響を受ける部分をプログラムモデルから検索し、それを影響範囲として求める（Ｓ５）。その後、修正規模算出部１６は問題点−性能影響−修正方法対応表から問題箇所に対応する修正方法を求め（Ｓ６）、前記修正方法と影響範囲から修正規模を求める（Ｓ７）。
【００２９】
最後に、出力部１８は修正規模と問題箇所と性能影響のデータを入力し、問題箇所、性能影響、修正規模の３つの組を問題箇所一覧に蓄積（図示しないワークメモリに蓄積）する（Ｓ８）。そして、全ての問題点が尽くされたか否かを判断し（Ｓ９）、全ての問題点が尽くされていなければ、前記Ｓ３の処理へ移行する。
【００３０】
このようにして、全ての問題点が尽くされていれば、出力部１８は、問題箇所検索結果である問題箇所、性能影響、修正規模を可視化出力しユーザに提示する（Ｓ１０）。
【００３１】
§３：具体例による説明
以下、図４〜図１２に基づいて具体例を説明する。図４はｊａｖａ言語で記述した入力プログラムの例である。このプログラムをプログラム解析部４が解析し、プログラムモデルを抽出する。この場合のプログラムモデルの１例は図５に示した通りである。
【００３２】
図５において、クラスからメソッドへの実線による矢印（クラス→メソッド）は、クラスがメソッドを所有していることを示しており、メソッドからクラスへの実線による矢印（メソッド→クラス）は、メソッドがクラスを所有していることを示している。更に、メソッドからメソッドへの点線による矢印は、メソッドがメソッドを呼び出していることを示している。
【００３３】
前記プログラムモデルと、図６に示した問題となるコーディングの例（問題点の例）から、問題箇所抽出部６がプログラム中の問題箇所を抽出する。この場合、前記コーディングの例では、問題点１、２、３の情報が記述されている。
【００３４】
例えば、問題点１は「クラスVectorのメソッドinsertElementAt を呼び出している」となっている。問題点２は「クラスVectorのメソッドremoveElementAt を呼び出している」となっている。問題点３は「クラスVectorのインスタンス生成時に初期サイズを指定していない」となっている。
【００３５】
問題箇所抽出部６がプログラムモデルと問題点から、プログラム中の問題箇所を抽出した場合、図７に示した３つの問題箇所ａ（問題点３）、問題箇所ｂ（問題点２）、問題箇所ｃ（問題点１）が抽出される。この例では、問題箇所ａは「Vector v; 」、問題箇所ｂは「v.removeElementAt(0); 」、問題箇所ｃは「v.insertElementAt(0,””);」である。
【００３６】
次に、性能影響算出部１２は、図７に示した問題箇所ａ、問題箇所ｂ、問題箇所ｃと、問題点−性能影響−修正方法対応表から、前記抽出された個々の問題箇所に対する性能影響を算出する。この場合、前記問題点−性能影響−修正方法対応表（人手により作成したもの）の例は、図８に示した通りである。
【００３７】
例えば、問題点１は、「クラスVectorのメソッドinsertElementAt を呼び出している」で、実行時間への影響は「中（５．０）」で、メモリ消費量への影響は「中（６．０）」で、修正方法は「Vector以外のコレクションクラスないし配列を使う」となっている。
【００３８】
また、問題点２は「クラスVectorのメソッドremoveElementAt を呼び出している」で、実行時間への影響は「中（５．０）」で、メモリ消費量への影響は「中（６．０）」で、修正方法は「Vector以外のコレクションクラスないし配列を使う」となっている。
【００３９】
問題点３は「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、実行時間への影響は「小（０．８）」で、メモリ消費量への影響は「大（８．６）」で、修正方法は「適切な初期サイズを指定する」となっている。
【００４０】
なお、前記問題点−性能影響−修正方法対応表において、「中」は中程度の影響があることを示しており、「大」は影響が大きいことを示し、「小」は影響が小さいことを示している。また、括弧内の数字は、予め決めた計算式により算出され数値化した影響の度合いを示している。
【００４１】
前記算出された個々の問題箇所に対する性能影響の例は、図９に示したようなものである。この例では、問題箇所ａ、ｂ、ｃ毎に、問題内容と性能影響の項目にそれぞれ情報が記述されている。例えば、問題箇所ａの問題内容は「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、性能影響は「５．１」である。
【００４２】
問題箇所ｂの問題内容は「クラスVectorのメソッドremoveElementAt を呼び出している」で、性能影響は「８．０」である。問題箇所ｃの問題内容は「クラスVectorのメソッドinsertElementAt を呼び出している」で、性能影響は「８．０」である。
【００４３】
この場合、前記性能影響は重み付け関数であり、この重み付け関数をＦとし、実行時間影響をｔ、メモリ消費量影響をｍとすると、Ｆ＝ｔ＋（ｍ／２）の式で表わされる。
【００４４】
また、影響範囲検索部１４は個々の問題箇所につき、その修正によって影響を受ける部分をプログラムモデルから検索し、それを影響範囲として求める。この影響範囲の例は図１０に示した通りである。図１０において、太い点線の矢印で示した部分が影響しているものを表す。
【００４５】
すなわち、図１０において、太線の枠で囲まれたメソッド（この例では、メソッドremoveElementAt ）が影響範囲検索を開始した問題箇所（図７に示した問題箇所ｂ）であり、点線の枠で囲まれたメソッド（この例では、メソッドｆ、ｇ）が影響範囲に含まれるメソッドである。そして、メソッドｆがメソッドｇを呼び出している部分、メソッドｈがメソッドｇを呼び出している部分、メソッドｇがメソッドremoveElementAt を呼び出している部分が、影響範囲として求められている。
【００４６】
また、修正規模算出部１６は、前記問題点−性能影響−修正内容対応表の修正内容と、前記影響範囲から修正規模を算出する。この修正規模算出例を図１１に示す。図１１での修正規模は、レベル１＝検出されたメソッド内で閉じているもの、レベル２＝同じクラスの中で他のメソッドに影響するもの、レベル３＝他のクラスのメソッドに影響するものとして求めている。
【００４７】
また、問題箇所ａの影響範囲がＢ：：ｇ（）となっているが、これは、クラスＢのメソッドｇのみ修正すれば良いことを示している。また、問題箇所ｂでは、クラスＢのメソッドｇの他に、他のクラスであるクラスＡのメソッドｆ、ｈの修正が必要であることを示している。更に、問題箇所ｃでは、クラスＢのメソッドｇの他に、他のクラスであるクラスＡのメソッドｆ、ｈの修正が必要であることを示している。
【００４８】
前記問題箇所ａの修正規模はレベル１、問題箇所ｂの修正規模はレベル３、問題箇所ｃの修正規模はレベル３となっている。この場合、前記修正規模の大は修正規模が大きいことを示し、修正規模の小は修正規模が小さいことを示している。
【００４９】
最後に、出力部１８は修正規模と問題箇所と性能影響のデータを入力し、問題箇所、性能影響、修正規模の３つの組を問題箇所一覧に蓄積（図示しないワークメモリに蓄積）する。そして、全ての問題点が尽くされていれば、出力部１８は、問題箇所検索結果である問題箇所、性能影響、修正規模を可視化出力（表示、又は印刷出力）し、ユーザに提示する。
【００５０】
この場合、前記問題箇所、性能影響、修正規模の３つの組の例を図１２に示す。この例では、問題箇所ａでは、検出位置が「１８行目」で、問題内容が「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、性能影響が「５．１」で、修正規模が「レベル１」となっている。
【００５１】
問題箇所ｂでは、検出位置が「１９行目」で、問題内容が「クラスVectorのメソッドremoveElementAt を呼び出している」で、性能影響が「８．０」で、修正規模が「レベル３」となっている。問題箇所ｃでは、検出箇所が「２０行目」で、問題内容が「クラスVectorのメソッドinsertElementAt を呼び出している」で、性能影響が「８．０」で、修正規模が「レベル３」となっている。
【００５２】
また、ユーザへの出力結果提示例は図１３のようなものである。この例では、図１３のＡ図に示した出力例１と、図１３のＢ図に示した出力例２がある。前記出力例１は、図１２の問題箇所ａ、ｂ、ｃを分類し、順序を入れ換えて可視化出力した例である。
【００５３】
この場合、問題箇所はｂ、ｃ、ａの順に並んでおり、問題箇所ｂでは、検出位置が「１９行目」で、問題内容が「クラスVectorのメソッドremoveElementAt を呼び出している」で、性能影響が「８．０」で、修正規模が「レベル３」となっている。
【００５４】
問題箇所ｃでは、検出箇所が「２０行目」で、問題内容が「クラスVectorのメソッドinsertElementAt を呼び出している」で、性能影響が「８．０」で、修正規模が「レベル３」となっている。問題箇所ａでは、検出位置が「１８行目」で、問題内容が「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、性能影響が「５．１」で、修正規模が「レベル１」となっている。
【００５５】
このような出力データをディスプレイ装置の画面に表示したり、或いはプリンタ装置により印刷して出力することでユーザに提示する。
【００５６】
また、出力例２は、出力部１８が図１３のＡ図に示したデータを編集し、図１３のＢ図のようにグラフ化して可視化出力した例であり、横軸（Ｘ軸）に性能影響、縦軸（Ｙ軸）に修正規模をとり、グラフ化している。このようにして、問題箇所ａ、ｂ、ｃがＸ、Ｙ座標上にグラフ表示されている。
【００５７】
§４：具体的な装置例と記録媒体の説明
図１４は具体的な装置例である。前記プログラム開発支援装置は、パーソナルコンピュータ、ワークステーション等の任意のコンピュータにより実現することができる。この装置は、コンピュータ本体２１と、該コンピュータ本体２１に接続されたディスプレイ装置２２、入力装置（キーボード／マウス等）２３、リムーバブルディスクドライブ（「ＲＤＤ」という）２４、ハードディスク装置（「ＨＤＤ」という）２５等で構成されている。
【００５８】
そして、コンピュータ本体２１には、内部の各種制御や処理を行うＣＰＵ２６と、プログラムや各種データを格納しておくためのＲＯＭ２７（不揮発性メモリ）と、メモリ２８と、インタフェース制御部（「Ｉ／Ｆ制御部」という）２９と、通信制御部３０等が設けてある。なお、前記ＲＤＤ２４には、フレキシブルディスクドライブや光ディスクドライブ等が含まれる。
【００５９】
前記構成の装置において、例えば、ハードディスク装置２５のハードディスク（記録媒体）に、前記プログラム開発支援装置の処理を実現するためのプログラムを格納しておき、このプログラムをＣＰＵ２６が読み出して実行することにより、前記プログラム開発支援装置の処理を実行する。
【００６０】
しかし、本発明は、このような例に限らず、例えば、ハードディスク装置２５のハードディスク（記録媒体）に、次のようにしてプログラムを格納し、このプログラムをＣＰＵ２６が実行することで前記プログラム開発支援装置の処理を行うことも可能である。
【００６１】
▲１▼：他の装置で作成されたリムーバブルディスクに格納されているプログラム（他の装置で作成したプログラムデータ）を、リムーバブルディスクドライブ２４により読み取り、ハードディスク装置２５のハードディスク（記録媒体）に格納する。
【００６２】
▲２▼：ネットワーク（インターネット、ＬＡＮ等）を介して他の装置から伝送されたプログラム等のデータを、通信制御部３０を介して受信し、そのデータをハードディスク装置２５のハードディスク（記録媒体）に格納する。
【００６３】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
【００６４】
(1) ：入力として、プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報の３つが与えられると、プログラム解析部はプログラムを解析してプログラムモデルを作成し、問題箇所抽出部はプログラムモデルから問題点に合致する問題箇所を抽出する。
【００６５】
性能影響算出部は問題箇所を、問題点−性能影響−修正方法対応情報に当てはめ、性能影響を算出し、影響範囲検索部は、問題箇所から、その修正によって影響を受ける影響範囲をプログラムモデルから検索する。修正規模算出部は、問題点−性能影響−修正方法対応情報から問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める。出力部は、前記問題箇所、性能影響、修正規模を基に問題箇所検索結果を出力しユーザに提示する。
【００６６】
このようにすれば、問題点と性能影響の対応を明確にし、検出された問題箇所から性能影響と修正規模を求め、性能影響と修正規模に基づいて問題箇所に優先順位をつける作業を自動化することができる。従って、性能改善の効率化を図ることができる。
【００６７】
(2) ：必要な情報の定型化及び処理の自動化により、プログラム開発時の性能改善を効率化することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】本発明の実施の形態におけるプログラム開発支援装置の説明図である。
【図３】本発明の実施の形態における処理フローチャートである。
【図４】本発明の実施の形態における入力プログラム例である。
【図５】本発明の実施の形態におけるプログラムモデル例である。
【図６】本発明の実施の形態における問題となるコーディングの例である。
【図７】本発明の実施の形態における問題箇所の例である。
【図８】本発明の実施の形態における問題点−性能影響−修正内容対応表の例である。
【図９】本発明の実施の形態における算出された性能影響の例である。
【図１０】本発明の実施の形態における問題点の修正による影響範囲の例である。
【図１１】本発明の実施の形態における修正規模算出例である。
【図１２】本発明の実施の形態における問題箇所、性能影響、修正規模の三つの組の例である。
【図１３】本発明の実施の形態におけるユーザへの出力結果提示例であり、Ａ図は出力例１、Ｂ図は出力例２である。
【図１４】本発明の実施の形態における具体的な装置例である。
【図１５】従来のプログラム開発支援装置の説明図である。
【符号の説明】
１  プログラム開発支援装置
４  プログラム解析部
６  問題箇所抽出部
１２  性能影響算出部
１４  影響範囲検索部
１６  修正規模算出部
１８  出力部
【図１】
0003910831.tif 000002
【図２】
0003910831.tif 000003
【図３】
0003910831.tif 000004
【図４】
0003910831.tif 000005
【図５】
0003910831.tif 000006
【図６】
0003910831.tif 000007
【図７】
0003910831.tif 000008
【図８】
0003910831.tif 000009
【図９】
0003910831.tif 000010
【図１０】
0003910831.tif 000011
【図１１】
0003910831.tif 000012
【図１２】
0003910831.tif 000013
【図１３】
0003910831.tif 000014
【図１４】
0003910831.tif 000015
【図１５】
0003910831.tif 000016