JP3910831B2 - プログラム開発支援装置、記録媒体、及びプログラム - Google Patents

プログラム開発支援装置、記録媒体、及びプログラム Download PDF

Info

Publication number
JP3910831B2
JP3910831B2 JP2001352940A JP2001352940A JP3910831B2 JP 3910831 B2 JP3910831 B2 JP 3910831B2 JP 2001352940 A JP2001352940 A JP 2001352940A JP 2001352940 A JP2001352940 A JP 2001352940A JP 3910831 B2 JP3910831 B2 JP 3910831B2
Authority
JP
Japan
Prior art keywords
program
correction
influence
performance
location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001352940A
Other languages
English (en)
Other versions
JP2002222099A (ja
Inventor
竜生 近藤
哲 中島
裕子 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001352940A priority Critical patent/JP3910831B2/ja
Publication of JP2002222099A publication Critical patent/JP2002222099A/ja
Application granted granted Critical
Publication of JP3910831B2 publication Critical patent/JP3910831B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、開発対象のコンピュータプログラムを検査し、バグ、実行時間やリソース消費量上の問題、解読性が悪く保守を難しくする記述等を検出することにより、プログラム開発時の支援を行うプログラム開発支援装置及び記録媒体に関する。
【0002】
【従来の技術】
以下、従来例について説明する。従来、プログラムを解析して問題箇所を検出するプログラム開発支援装置が知られていた。以下、このプログラム開発支援装置を図15に基づいて説明する。
【0003】
プログラム開発支援装置は、入力されたプログラムを解析してプログラムモデルを作成するプログラム解析部4と、入力された問題点とプログラムモデルを基に問題箇所を抽出する問題箇所抽出部6を備えている。なお、前記問題点は、予め、人手によりプログラム上の問題点と考えられる箇所を調べたものであり、プログラムは開発対象のプログラムである。
【0004】
前記構成のプログラム開発支援装置では、入力されたプログラムをプログラム解析部4が解析してプログラムモデルを作成し、問題箇所抽出部6が、入力された問題点とプログラムモデルを基に問題箇所を抽出する。
【0005】
【発明が解決しようとする課題】
前記のような従来のものにおいては、次のような課題があった。
【0006】
(1) :従来のプログラム開発支援装置によりプログラムの開発支援を行う場合、次のような課題があった。すなわち、一般には、プログラムを解析して複数の問題点が検出されるが、その中には修正が局所的であって容易なもの、修正の影響が広範囲に及ぶため難しいものなどが混在する。
【0007】
加えて性能改善を目的とする場合には、問題点の修正が改善にどの程度寄与するかを判断するために、記述されたシステムの仕様、設計ならびに実装に用いられるデザインパターン等の設計技術及びプログラミング技術、プログラミング言語の特性、コンパイラ等の言語処理系や実行環境の特性等の高度な理解を必要とする。従って、数ある問題点の中でどの項目の修正がより効率良く性能改善に結びつくかを判断するのは困難である。
【0008】
(2) :従来のプログラム開発支援装置は前記の通りであるから、抽出された問題点から性能影響や修正の適用範囲を割り出し、性能影響の大きさや修正の難度から問題点に優先順位を与え、優先度の高い問題点から修正することにより効率良く性能改善を行なって行くのは困難である。
【0009】
本発明は、このような従来の課題を解決し、プログラム開発を行う際、必要な情報の定型化と処理の自動化を実現し、性能改善の効率化を図ることを目的とする。
【0010】
【課題を解決するための手段】
本発明は前記の目的を達成するため、次のように構成した。
【0011】
(1) :プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報を入力し、前記プログラムを解析して性能上の問題箇所を出力するプログラム開発支援装置であって、前記プログラムを解析してプログラムモデルを作成するプログラム解析部と、前記プログラムモデルから、前記問題点に合致する問題箇所を抽出する問題箇所抽出部と、前記問題箇所を前記問題点−実行時間への影響及びメモリ消費量への影響の2つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の2つの項目から性能影響を計算する性能影響算出部と、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部を備えていることを特徴とする。
【0012】
(2) :コンピュータに、プログラムを解析してプログラムモデルを作成するプログラム解析部と、前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の2つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の2つの項目から性能影響を計算する性能影響算出部と、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【0013】
(3) :コンピュータに、プログラムを解析してプログラムモデルを作成するプログラム解析部と、前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の2つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の2つの項目から性能影響を計算する性能影響算出部と、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラム。
【0014】
(作用)
前記構成に基づく本発明の作用を図1に基づいて説明する。入力として、プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報(問題点−性能影響−修正方法対応表)の3つが与えられる。
【0015】
最初にプログラム解析部4はプログラムを解析してプログラムモデルを作成する。次に、問題箇所抽出部6は前記プログラムモデルから問題点に合致する問題箇所を抽出する。その後、性能影響算出部16は前記問題箇所を問題点−性能影響−修正方法対応情報に当てはめ、性能影響を算出する。そして、影響範囲検索部14は、前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する。
【0016】
次に、修正規模算出部16は、前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める。最後に、出力部18は、前記問題箇所、性能影響、及び修正規模を基に問題箇所検索結果を出力し、ユーザに提示する。
【0017】
このようにすれば、問題点と性能影響の対応を明確にし、検出された問題箇所から性能影響と修正規模を求め、性能影響と修正規模に基づいて問題箇所に優先順位をつける作業を自動化することができる。従って、性能改善の効率化を図ることができる。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【0019】
§1:プログラム開発支援装置の説明
以下、図2に基づいてプログラム開発支援装置を説明する。このプログラム開発支援装置1は、プログラムの解析処理を行うプログラム解析部4と、問題箇所の抽出処理を行う問題箇所抽出部6と、性能影響の算出処理を行う性能影響算出部12と、修正の影響範囲を検索する修正の影響範囲検索部14と、修正規模の算出処理を行う修正規模算出部16と、データの出力処理を行う出力部18を備えている。
【0020】
前記開発支援装置の機能は次の通りである。この装置への入力データとして、プログラムと、問題点と、問題点−性能影響−修正方法対応表の3つが与えられる。この場合、プログラムは開発対象のプログラムであり、問題点は人手によりプログラム上の問題点を集めたデータである。また、問題点−性能影響−修正方法対応表は、人手によりプログラム上の問題点とその性能影響と修正方法を対応表にまとめたデータである。
【0021】
前記3つの入力データが与えられると、先ず、プログラム解析部4はプログラムを解析しプログラムモデルを作成する。問題箇所抽出部6はプログラムモデルと問題点を入力し、プログラムモデルから問題点に合致する箇所を問題箇所として抽出する。その後、個々の問題箇所につき、次のような処理を行う。
【0022】
先ず、性能影響算出部12は問題箇所と問題点−性能影響−修正方法対応表のデータを入力し、問題箇所を問題点−性能影響−修正方法対応表に当てはめ、性能影響を作成する。影響範囲検索部14は前記問題箇所から、その修正によって影響を受ける影響範囲をプログラムモデルから検索する。
【0023】
修正規模算出部16は前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める。出力部18は修正規模と問題箇所と性能影響のデータを入力し、修正規模と性能影響に基づいて問題箇所を分類し、出力装置(ディスプレイ装置、プリンタ装置等)を介して問題箇所検索結果を可視化出力し、ユーザに提示する。なお、前記問題点の定義は次の通りである。
【0024】
(問題点の定義)
次のようなものを問題点と定義する。
【0025】
▲1▼:バグ
(それに一致すると動作しないもの)
▲2▼:性能上問題有り
(動作するが、メモリを多く消費する、等の問題があるもの)
▲3▼:保守が難しい
(動作するが、実現手段が分かりにくい、読みにくい等)
▲4▼:記述方法が何通りか有る
(1つに統一する必要があるもの)
§2:フローチャートによる処理の説明
以下、図3に基づいて前記プログラム開発支援装置1の処理を説明する。なお、S1〜S10は各処理ステップを示す。
【0026】
前記3つの入力データが与えられると、先ず、プログラム解析部4はプログラムを解析しプログラムモデルを作成する(S1)。次に、問題点箇所抽出部6は問題点とプログラムモデルのデータを入力し、プログラムモデルから問題点に合致する箇所を問題箇所として抽出する(S2)。その後、個々の問題箇所につき次の処理を行う。
【0027】
先ず、性能影響算出部12は問題箇所と問題点−性能影響−修正方法対応表のデータを入力し、問題箇所を1つ取り出して(S3)、その問題箇所を問題点−性能影響−修正方法対応表に当てはめ、性能影響を割り出す(S4)。
【0028】
次に、影響範囲検索部14は問題箇所とプログラムモデルとを入力し、問題箇所から、その修正によって影響を受ける部分をプログラムモデルから検索し、それを影響範囲として求める(S5)。その後、修正規模算出部16は問題点−性能影響−修正方法対応表から問題箇所に対応する修正方法を求め(S6)、前記修正方法と影響範囲から修正規模を求める(S7)。
【0029】
最後に、出力部18は修正規模と問題箇所と性能影響のデータを入力し、問題箇所、性能影響、修正規模の3つの組を問題箇所一覧に蓄積(図示しないワークメモリに蓄積)する(S8)。そして、全ての問題点が尽くされたか否かを判断し(S9)、全ての問題点が尽くされていなければ、前記S3の処理へ移行する。
【0030】
このようにして、全ての問題点が尽くされていれば、出力部18は、問題箇所検索結果である問題箇所、性能影響、修正規模を可視化出力しユーザに提示する(S10)。
【0031】
§3:具体例による説明
以下、図4〜図12に基づいて具体例を説明する。図4はjava言語で記述した入力プログラムの例である。このプログラムをプログラム解析部4が解析し、プログラムモデルを抽出する。この場合のプログラムモデルの1例は図5に示した通りである。
【0032】
図5において、クラスからメソッドへの実線による矢印(クラス→メソッド)は、クラスがメソッドを所有していることを示しており、メソッドからクラスへの実線による矢印(メソッド→クラス)は、メソッドがクラスを所有していることを示している。更に、メソッドからメソッドへの点線による矢印は、メソッドがメソッドを呼び出していることを示している。
【0033】
前記プログラムモデルと、図6に示した問題となるコーディングの例(問題点の例)から、問題箇所抽出部6がプログラム中の問題箇所を抽出する。この場合、前記コーディングの例では、問題点1、2、3の情報が記述されている。
【0034】
例えば、問題点1は「クラスVectorのメソッドinsertElementAt を呼び出している」となっている。問題点2は「クラスVectorのメソッドremoveElementAt を呼び出している」となっている。問題点3は「クラスVectorのインスタンス生成時に初期サイズを指定していない」となっている。
【0035】
問題箇所抽出部6がプログラムモデルと問題点から、プログラム中の問題箇所を抽出した場合、図7に示した3つの問題箇所a(問題点3)、問題箇所b(問題点2)、問題箇所c(問題点1)が抽出される。この例では、問題箇所aは「Vector v; 」、問題箇所bは「v.removeElementAt(0); 」、問題箇所cは「v.insertElementAt(0,””);」である。
【0036】
次に、性能影響算出部12は、図7に示した問題箇所a、問題箇所b、問題箇所cと、問題点−性能影響−修正方法対応表から、前記抽出された個々の問題箇所に対する性能影響を算出する。この場合、前記問題点−性能影響−修正方法対応表(人手により作成したもの)の例は、図8に示した通りである。
【0037】
例えば、問題点1は、「クラスVectorのメソッドinsertElementAt を呼び出している」で、実行時間への影響は「中(5.0)」で、メモリ消費量への影響は「中(6.0)」で、修正方法は「Vector以外のコレクションクラスないし配列を使う」となっている。
【0038】
また、問題点2は「クラスVectorのメソッドremoveElementAt を呼び出している」で、実行時間への影響は「中(5.0)」で、メモリ消費量への影響は「中(6.0)」で、修正方法は「Vector以外のコレクションクラスないし配列を使う」となっている。
【0039】
問題点3は「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、実行時間への影響は「小(0.8)」で、メモリ消費量への影響は「大(8.6)」で、修正方法は「適切な初期サイズを指定する」となっている。
【0040】
なお、前記問題点−性能影響−修正方法対応表において、「中」は中程度の影響があることを示しており、「大」は影響が大きいことを示し、「小」は影響が小さいことを示している。また、括弧内の数字は、予め決めた計算式により算出され数値化した影響の度合いを示している。
【0041】
前記算出された個々の問題箇所に対する性能影響の例は、図9に示したようなものである。この例では、問題箇所a、b、c毎に、問題内容と性能影響の項目にそれぞれ情報が記述されている。例えば、問題箇所aの問題内容は「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、性能影響は「5.1」である。
【0042】
問題箇所bの問題内容は「クラスVectorのメソッドremoveElementAt を呼び出している」で、性能影響は「8.0」である。問題箇所cの問題内容は「クラスVectorのメソッドinsertElementAt を呼び出している」で、性能影響は「8.0」である。
【0043】
この場合、前記性能影響は重み付け関数であり、この重み付け関数をFとし、実行時間影響をt、メモリ消費量影響をmとすると、F=t+(m/2)の式で表わされる。
【0044】
また、影響範囲検索部14は個々の問題箇所につき、その修正によって影響を受ける部分をプログラムモデルから検索し、それを影響範囲として求める。この影響範囲の例は図10に示した通りである。図10において、太い点線の矢印で示した部分が影響しているものを表す。
【0045】
すなわち、図10において、太線の枠で囲まれたメソッド(この例では、メソッドremoveElementAt )が影響範囲検索を開始した問題箇所(図7に示した問題箇所b)であり、点線の枠で囲まれたメソッド(この例では、メソッドf、g)が影響範囲に含まれるメソッドである。そして、メソッドfがメソッドgを呼び出している部分、メソッドhがメソッドgを呼び出している部分、メソッドgがメソッドremoveElementAt を呼び出している部分が、影響範囲として求められている。
【0046】
また、修正規模算出部16は、前記問題点−性能影響−修正内容対応表の修正内容と、前記影響範囲から修正規模を算出する。この修正規模算出例を図11に示す。図11での修正規模は、レベル1=検出されたメソッド内で閉じているもの、レベル2=同じクラスの中で他のメソッドに影響するもの、レベル3=他のクラスのメソッドに影響するものとして求めている。
【0047】
また、問題箇所aの影響範囲がB::g()となっているが、これは、クラスBのメソッドgのみ修正すれば良いことを示している。また、問題箇所bでは、クラスBのメソッドgの他に、他のクラスであるクラスAのメソッドf、hの修正が必要であることを示している。更に、問題箇所cでは、クラスBのメソッドgの他に、他のクラスであるクラスAのメソッドf、hの修正が必要であることを示している。
【0048】
前記問題箇所aの修正規模はレベル1、問題箇所bの修正規模はレベル3、問題箇所cの修正規模はレベル3となっている。この場合、前記修正規模の大は修正規模が大きいことを示し、修正規模の小は修正規模が小さいことを示している。
【0049】
最後に、出力部18は修正規模と問題箇所と性能影響のデータを入力し、問題箇所、性能影響、修正規模の3つの組を問題箇所一覧に蓄積(図示しないワークメモリに蓄積)する。そして、全ての問題点が尽くされていれば、出力部18は、問題箇所検索結果である問題箇所、性能影響、修正規模を可視化出力(表示、又は印刷出力)し、ユーザに提示する。
【0050】
この場合、前記問題箇所、性能影響、修正規模の3つの組の例を図12に示す。この例では、問題箇所aでは、検出位置が「18行目」で、問題内容が「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、性能影響が「5.1」で、修正規模が「レベル1」となっている。
【0051】
問題箇所bでは、検出位置が「19行目」で、問題内容が「クラスVectorのメソッドremoveElementAt を呼び出している」で、性能影響が「8.0」で、修正規模が「レベル3」となっている。問題箇所cでは、検出箇所が「20行目」で、問題内容が「クラスVectorのメソッドinsertElementAt を呼び出している」で、性能影響が「8.0」で、修正規模が「レベル3」となっている。
【0052】
また、ユーザへの出力結果提示例は図13のようなものである。この例では、図13のA図に示した出力例1と、図13のB図に示した出力例2がある。前記出力例1は、図12の問題箇所a、b、cを分類し、順序を入れ換えて可視化出力した例である。
【0053】
この場合、問題箇所はb、c、aの順に並んでおり、問題箇所bでは、検出位置が「19行目」で、問題内容が「クラスVectorのメソッドremoveElementAt を呼び出している」で、性能影響が「8.0」で、修正規模が「レベル3」となっている。
【0054】
問題箇所cでは、検出箇所が「20行目」で、問題内容が「クラスVectorのメソッドinsertElementAt を呼び出している」で、性能影響が「8.0」で、修正規模が「レベル3」となっている。問題箇所aでは、検出位置が「18行目」で、問題内容が「クラスVectorのインスタンス生成時に初期サイズを指定していない」で、性能影響が「5.1」で、修正規模が「レベル1」となっている。
【0055】
このような出力データをディスプレイ装置の画面に表示したり、或いはプリンタ装置により印刷して出力することでユーザに提示する。
【0056】
また、出力例2は、出力部18が図13のA図に示したデータを編集し、図13のB図のようにグラフ化して可視化出力した例であり、横軸(X軸)に性能影響、縦軸(Y軸)に修正規模をとり、グラフ化している。このようにして、問題箇所a、b、cがX、Y座標上にグラフ表示されている。
【0057】
§4:具体的な装置例と記録媒体の説明
図14は具体的な装置例である。前記プログラム開発支援装置は、パーソナルコンピュータ、ワークステーション等の任意のコンピュータにより実現することができる。この装置は、コンピュータ本体21と、該コンピュータ本体21に接続されたディスプレイ装置22、入力装置(キーボード/マウス等)23、リムーバブルディスクドライブ(「RDD」という)24、ハードディスク装置(「HDD」という)25等で構成されている。
【0058】
そして、コンピュータ本体21には、内部の各種制御や処理を行うCPU26と、プログラムや各種データを格納しておくためのROM27(不揮発性メモリ)と、メモリ28と、インタフェース制御部(「I/F制御部」という)29と、通信制御部30等が設けてある。なお、前記RDD24には、フレキシブルディスクドライブや光ディスクドライブ等が含まれる。
【0059】
前記構成の装置において、例えば、ハードディスク装置25のハードディスク(記録媒体)に、前記プログラム開発支援装置の処理を実現するためのプログラムを格納しておき、このプログラムをCPU26が読み出して実行することにより、前記プログラム開発支援装置の処理を実行する。
【0060】
しかし、本発明は、このような例に限らず、例えば、ハードディスク装置25のハードディスク(記録媒体)に、次のようにしてプログラムを格納し、このプログラムをCPU26が実行することで前記プログラム開発支援装置の処理を行うことも可能である。
【0061】
▲1▼:他の装置で作成されたリムーバブルディスクに格納されているプログラム(他の装置で作成したプログラムデータ)を、リムーバブルディスクドライブ24により読み取り、ハードディスク装置25のハードディスク(記録媒体)に格納する。
【0062】
▲2▼:ネットワーク(インターネット、LAN等)を介して他の装置から伝送されたプログラム等のデータを、通信制御部30を介して受信し、そのデータをハードディスク装置25のハードディスク(記録媒体)に格納する。
【0063】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
【0064】
(1) :入力として、プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報の3つが与えられると、プログラム解析部はプログラムを解析してプログラムモデルを作成し、問題箇所抽出部はプログラムモデルから問題点に合致する問題箇所を抽出する。
【0065】
性能影響算出部は問題箇所を、問題点−性能影響−修正方法対応情報に当てはめ、性能影響を算出し、影響範囲検索部は、問題箇所から、その修正によって影響を受ける影響範囲をプログラムモデルから検索する。修正規模算出部は、問題点−性能影響−修正方法対応情報から問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める。出力部は、前記問題箇所、性能影響、修正規模を基に問題箇所検索結果を出力しユーザに提示する。
【0066】
このようにすれば、問題点と性能影響の対応を明確にし、検出された問題箇所から性能影響と修正規模を求め、性能影響と修正規模に基づいて問題箇所に優先順位をつける作業を自動化することができる。従って、性能改善の効率化を図ることができる。
【0067】
(2) :必要な情報の定型化及び処理の自動化により、プログラム開発時の性能改善を効率化することができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施の形態におけるプログラム開発支援装置の説明図である。
【図3】本発明の実施の形態における処理フローチャートである。
【図4】本発明の実施の形態における入力プログラム例である。
【図5】本発明の実施の形態におけるプログラムモデル例である。
【図6】本発明の実施の形態における問題となるコーディングの例である。
【図7】本発明の実施の形態における問題箇所の例である。
【図8】本発明の実施の形態における問題点−性能影響−修正内容対応表の例である。
【図9】本発明の実施の形態における算出された性能影響の例である。
【図10】本発明の実施の形態における問題点の修正による影響範囲の例である。
【図11】本発明の実施の形態における修正規模算出例である。
【図12】本発明の実施の形態における問題箇所、性能影響、修正規模の三つの組の例である。
【図13】本発明の実施の形態におけるユーザへの出力結果提示例であり、A図は出力例1、B図は出力例2である。
【図14】本発明の実施の形態における具体的な装置例である。
【図15】従来のプログラム開発支援装置の説明図である。
【符号の説明】
1 プログラム開発支援装置
4 プログラム解析部
6 問題箇所抽出部
12 性能影響算出部
14 影響範囲検索部
16 修正規模算出部
18 出力部

Claims (3)

  1. プログラム、問題点、及び該問題点と性能影響と修正方法を対応させた問題点−性能影響−修正方法対応情報を入力し、前記プログラムを解析して性能上の問題箇所を出力するプログラム開発支援装置であって、
    前記プログラムを解析してプログラムモデルを作成するプログラム解析部と、
    前記プログラムモデルから、前記問題点に合致する問題箇所を抽出する問題箇所抽出部と、
    前記問題箇所を前記問題点−実行時間への影響及びメモリ消費量への影響の2つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の2つの項目から性能影響を計算する性能影響算出部と、
    前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、
    前記問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、
    前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部を備えている、
    ことを特徴とするプログラム開発支援装置。
  2. コンピュータに、
    プログラムを解析してプログラムモデルを作成するプログラム解析部と、
    前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、
    前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の2つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の2つの項目から性能影響を計算する性能影響算出部と、
    前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、
    問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、
    前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  3. コンピュータに、
    プログラムを解析してプログラムモデルを作成するプログラム解析部と、
    前記プログラムモデルから、問題点に合致する問題箇所を抽出する問題箇所抽出部と、
    前記問題箇所を問題点−実行時間への影響及びメモリ消費量への影響の2つの項目を有する性能影響−修正方法対応情報に当てはめ、実行時間への影響及びメモリ消費量への影響の2つの項目から性能影響を計算する性能影響算出部と、
    前記問題箇所から、その修正によって影響を受ける影響範囲を前記プログラムモデルから検索する影響範囲検索部と、
    問題点−性能影響−修正方法対応情報から、問題箇所に対応する修正方法を求め、該修正方法と前記影響範囲から修正規模を求める修正規模算出部と、
    前記問題箇所、性能影響、及び修正規模を所定の形式で出力する出力部の機能を実現させるためのプログラム。
JP2001352940A 2000-11-27 2001-11-19 プログラム開発支援装置、記録媒体、及びプログラム Expired - Fee Related JP3910831B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001352940A JP3910831B2 (ja) 2000-11-27 2001-11-19 プログラム開発支援装置、記録媒体、及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-358804 2000-11-27
JP2000358804 2000-11-27
JP2001352940A JP3910831B2 (ja) 2000-11-27 2001-11-19 プログラム開発支援装置、記録媒体、及びプログラム

Publications (2)

Publication Number Publication Date
JP2002222099A JP2002222099A (ja) 2002-08-09
JP3910831B2 true JP3910831B2 (ja) 2007-04-25

Family

ID=26604584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001352940A Expired - Fee Related JP3910831B2 (ja) 2000-11-27 2001-11-19 プログラム開発支援装置、記録媒体、及びプログラム

Country Status (1)

Country Link
JP (1) JP3910831B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071110A (ja) * 2006-09-14 2008-03-27 Xanavi Informatics Corp ソースコードレビュー支援装置
JP5130767B2 (ja) * 2007-03-30 2013-01-30 富士通株式会社 特定方法、特定装置及びコンピュータプログラム
JP7469999B2 (ja) 2020-09-10 2024-04-17 株式会社日立製作所 検索装置、検索方法、および検索プログラム

Also Published As

Publication number Publication date
JP2002222099A (ja) 2002-08-09

Similar Documents

Publication Publication Date Title
JP2007304647A (ja) リクエスト種別プログラム、リクエスト種別装置およびリクエスト種別方法
JPH07152614A (ja) 並列処理システムの動作解析装置
CN109460237A (zh) 代码的编译方法及装置
JP3910831B2 (ja) プログラム開発支援装置、記録媒体、及びプログラム
JP3318051B2 (ja) 翻訳処理方法
JPH08263299A (ja) プログラム変換方法
Dooley et al. Detecting and using critical paths at runtime in message driven parallel programs
JP5702265B2 (ja) プログラム自動生成装置およびプログラム自動生成方法
JPH06301522A (ja) 計算機システム構成方法
JP2000222221A (ja) コンパイル方法および装置、並びにメソッド活動度計算方法および装置
JPH09288580A (ja) ソースプログラムの最適化装置および最適化方法
JPH10161891A (ja) タスク余裕度解析装置、タスク余裕度解析方法及びタスク余裕度解析プログラムを格納した記録媒体
JP2009064125A (ja) サーバ装置、そのプログラム
JP2747164B2 (ja) ソフトウェア・シミュレータ
JPH0793144A (ja) プログラム解析装置
CN115249068A (zh) Nvdla软件栈的推理方法、装置、设备及存储介质
JPH05250221A (ja) シミュレータ実行方式
JPH11338692A (ja) プログラム解析装置及び方法並びにプログラム解析用ソフトウェアを記録した記録媒体
JPH044434A (ja) プログラムのトレース方法
JPS616722A (ja) 文の実行費用の計算方式
JP3838279B2 (ja) 計算機プログラムの実行コストの解析方法
JP2749224B2 (ja) デ−タ駆動型プログラム用性能解析装置
JPH07200351A (ja) プログラムデバッグ方法およびプログラムデバッグ支援装置
JPH05224908A (ja) プログラム生産システム
JPH05127945A (ja) プログラム実行状況解析方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120202

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140202

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees