JP2009053767A - プログラム解析装置、および、プログラム解析方法 - Google Patents
プログラム解析装置、および、プログラム解析方法 Download PDFInfo
- Publication number
- JP2009053767A JP2009053767A JP2007217501A JP2007217501A JP2009053767A JP 2009053767 A JP2009053767 A JP 2009053767A JP 2007217501 A JP2007217501 A JP 2007217501A JP 2007217501 A JP2007217501 A JP 2007217501A JP 2009053767 A JP2009053767 A JP 2009053767A
- Authority
- JP
- Japan
- Prior art keywords
- program
- notification
- symbol
- unit
- changed
- 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.)
- Pending
Links
Images
Abstract
【課題】プログラムの変更がなされた際に、関数や変数などのシンボル単位で、関係のあるユーザに変更の通知をおこなって、プログラムのメインテナンス性を高める。
【解決手段】プログラム解析装置において、シンボル情報解析部は登録されたプログラムを読み込み、プログラム中のシンボルを抽出し、シンボル間の参照箇所を抽出する。通知ユーザ情報指定部は、プログラムの部位ごとの通知先を指定する。そして、通知部は、プログラムが変更された際に、シンボル情報解析部にて抽出したシンボル間の参照箇所から変更の影響箇所を算出し、前記通知情報指定部にて指定したプログラム部位ごとに影響箇所が含まれるか否かを判定し、含まれた場合には通知ユーザ情報指定部により指定された通知先に通知をおこなう。
【選択図】図1
【解決手段】プログラム解析装置において、シンボル情報解析部は登録されたプログラムを読み込み、プログラム中のシンボルを抽出し、シンボル間の参照箇所を抽出する。通知ユーザ情報指定部は、プログラムの部位ごとの通知先を指定する。そして、通知部は、プログラムが変更された際に、シンボル情報解析部にて抽出したシンボル間の参照箇所から変更の影響箇所を算出し、前記通知情報指定部にて指定したプログラム部位ごとに影響箇所が含まれるか否かを判定し、含まれた場合には通知ユーザ情報指定部により指定された通知先に通知をおこなう。
【選択図】図1
Description
本発明は、プログラム解析装置、および、プログラム解析方法に係り、特に、複数のソフトウェア開発者が関わるソフトウェア開発における保守、機能拡張業務等でプログラムの変更を把握することができ、プログラムのメインテナンス性の向上に大きく寄与させるのに好適なプログラム解析装置、および、プログラム解析方法に関する。
C言語をはじめとするプログラム言語により記述されたプログラムは、関数やメソッド等のプログラム言語の持つ機能によりプログラムをモジュール化することによって、モジュール内部の実装を意識せず利用することが可能である。
しかしながら、大人数の開発者が関わり機能拡張を続けた大規模なソフトウェアは、モジュールが入れ子状になり、またモジュール同士が相互参照しあうことで、モジュール同士依存関係が複雑になることが多い。
その結果、ある一部のモジュールの修正が、修正した開発者の予想を超えて広範囲に影響を及ぼしてしまい、プログラムを広範囲に修正しなくてはならなくなる場合がある。
また、あるモジュールの修正が、開発者の予想した範囲外で、疎であったモジュール間の依存関係を密にしてしまうケースもある。
上記のようなケースを起さないためには、モジュールに変更を加えた際の影響箇所を認識しながら開発を進めることが重要であり、ソフトウェア開発の課題の一つとなっている。
こうした課題に対して、プログラムのソースコードを解析しソースコード中の参照関係をユーザに提示する技術や、ファイルが変更された場合にそのファイルに関係するファイルを参照しているユーザに通知する技術が提案されている。
例えば、特許文献1では、プログラムを構成する特定の部分(プログラム断片)と外部とのインタフェースに関する情報の理解を容易にすることを目的として、ユーザがソースコード中の任意のプログラム断片を指定すると、そのプログラム断片の依存関係を抽出して、外部との変数参照関係の情報を変数ごとに抽出する技術が開示されている。
また、特許文献2では、ユーザがあるファイルを参照している際に、そのファイルの関連ファイルが他のユーザにより変更された場合、関連ファイルの変更をユーザに通知する技術が開示されている。
上記特許文献1では、プログラム中の指定した箇所と外部とのインタフェース情報を抽出することはできるが、ソースコードの修正前・修正後というような時間軸の変化に関しては考慮がされていない。さらに、複数箇所での変数、関数、領域の選択と参照関係の抽出に関しては考慮がされていない。このためユーザがソースコードの修正によるインタフェース情報の変化を知るためには、修正前後でインタフェース情報の抽出をおこない、さらにそのインタフェース情報の比較をおこなう必要があった。
また、上記特許文献2では、関連ファイルリストによりファイル同士の参照関係を保持しておき、ファイルに変更があった際には、そのファイルに関連するファイルを参照しているユーザに通知をおこなう。しかしながら、その反面、ファイルの参照関係はユーザ自身が指定するため、ユーザが認識していないファイル間に依存関係があった場合は、通知をおこなうことができなかった。さらに、参照関係の指定はファイル単位でおこなうため、プログラムソースコードのように関数単位、変数単位で参照関係が生じる場合には適用することができなかった。
さらに、特許文献1と特許文献2を組み合わせようとした場合には、ソースコードのインタフェース情報が変更された際に、ユーザに通知することが可能となるが、変更点のインタフェース以外の箇所への影響は把握できない上に、変更時に全て通知していては煩雑となってしまうため、どのような変更が生じた場合に通知をおこなうかという課題が残る。
本発明は、上記問題点を解決するためになされたもので、その目的は、プログラムの変更がなされた際に、関数や変数などのシンボル単位で、関係のあるユーザに変更の通知をおこなって、メインテナンス性を高めることのできるプログラム解析装置、および、プログラム解析方法を提供することにある。
本発明に係るプログラム解析装置は、コンピュータにより、プログラム解析プログラムを実行してプログラムのソースコードの変更箇所を解析するプログラム解析装置において、解析の対象となるプログラムを登録するためのプログラム登録部と、登録されたプログラムが変更された際の通知先を指定する通知情報指定部と、登録されたプログラムを読み込み、前記プログラム中のシンボルを抽出し、シンボル間の参照箇所を抽出するシンボル情報解析部と、登録されたプログラムの部位ごとの通知先を指定する通知情報指定部と、プログラムが変更された際に、前記プログラム解析部にて抽出したシンボル間の参照箇所から変更の影響箇所を算出し、前記通知情報指定部にて指定したプログラム部位ごとに影響箇所が含まれるか否かを判定し、含まれる場合には、前記通知情報指定部により指定した通知先に通知をおこなう通知部とを有するようにしたものである。
また、より詳しくは、上記プログラム解析装置において、前記通知情報指定部は、プログラム部位の指定の際に変更通知をおこなわない非通知部位を指定する機能を有し、前記通知部は、前記非通知部位が変更されていた場合には、前記非通知部位を除外して変更の影響箇所の算出をおこなうようにしたものである。
これによって、ユーザがソースコードを修正・改変する場合に、ユーザによって指定されたソースコードに影響を及ぼす場合に、ユーザに対して 変更通知をおこなうことができるようになるので、モジュールを変更した際の影響箇所の把握をすることが可能となり、その結果としてプログラムのメインテナンス性を高めることが可能となる
本発明によれば、プログラムの変更がなされた際に、関数や変数などのシンボル単位で、関係のあるユーザに変更の通知をおこなって、メインテナンス性を高めることのできるプログラム解析装置、および、プログラム解析方法を提供することができる。
以下、本発明に係る一実施形態を、図1ないし図12を用いて説明する。
先ず、図1および図2を用いて本発明の一実施形態に係るプログラム解析装置の構成について説明する。
図1は、本発明の一実施形態に係るプログラム解析装置のブロック構成図である。
図2は、本発明の一実施形態に係るプログラム解析装置のハードウェア構成図である。
先ず、図1および図2を用いて本発明の一実施形態に係るプログラム解析装置の構成について説明する。
図1は、本発明の一実施形態に係るプログラム解析装置のブロック構成図である。
図2は、本発明の一実施形態に係るプログラム解析装置のハードウェア構成図である。
本発明の一実施形態に係るプログラム解析装置のハードウェア構成としては、例えば、図2に示されるような一般的なパーソナルコンピュータで実現される。
プログラム解析装置100は、CPU(Central Processing Unit)101、主記憶装置102、ネットワークI/F103、グラフィックI/F104、入出力I/F105、補助記憶装置I/F106が、バスにより結合された形態になっている。
CPU101は、プログラム解析装置100の各部を制御し、主記憶装置102にロードされるプログラム解析プログラムをロードして実行する。
主記憶装置102は、通常、RAMなどの揮発メモリで構成され、CPU101が実行するプログラム、参照するデータが記憶される。
ネットワークI/F103は、外部ネットワーク50と接続するためのインタフェースである。
グラフィックI/F104は、LCD(Liquid Crystal Display)などの表示装置20を接続するためのインタフェースである。
入出力I/F105は、入出力装置を接続するためのインタフェースである。図2の例では、キーボード31とポインティングデバイスのマウス32が接続されている。
補助記憶装置I/F106は、HDD(Hard Disk Drive)41やDVDドライブ(Digital Versatile Disk)42などの補助記憶装置を接続するためのインタフェースである。
HDD41は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラム解析プログラム60が格納されている。
DVDドライブ42は、DVDやCDなどの光学ディスクにデータを書き込んだり、光学ディスクからデータを読み込んだりする装置であり、プログラム解析プログラム60は、例えば、CD−ROMにより提供されたものをインストールすることができる。
本実施形態のプログラム解析装置100は、上記のようなパーソナルコンピュータに、プログラム解析プログラム60をインストールして、各機能を実行するものである。
初めに、本実施形態で用いる用語の定義をすると、「シンボル」とは関数名や変数名である。「リビジョン」とは変更登録の際の通し番号である。
次に、図1を用いて本実施形態のプログラム解析装置100の各機能ブロックごとの説明する。
ユーザ入力部11は、ユーザからのデータ入力や処理要求を受け付ける。対象プログラム登録部12は解析対象となるプログラムを登録する。プログラムの変更を行った際も対象プログラム登録部12に登録をおこなう。プログラム記憶部13は登録されたプログラムを記憶する。
シンボル情報解析部14は、プログラム記憶部13に記憶されたプログラムを参照し、関数、変数といったシンボル情報を解析する。あわせて、プログラムの変更箇所も解析する。その後、解析したシンボル情報を用いて、シンボル間の参照関係を解析する。シンボル情報記憶部15には、解析したシンボル情報をシンボルテーブル(後に、図3により説明)として記憶する。
参照関係記憶部16には、解析したシンボル間の参照関係をシンボル間参照関係テーブル(後に、図4により説明)として記憶する。
通知ユーザ情報指定部17は、シンボル情報記憶部15に記憶されたシンボル情報と、そのシンボルに対応して変更を通知するユーザを指定する。通知ユーザ情報記憶部18は、その指定された通知ユーザ情報を記憶する。
通知部19は、参照関係記憶部16を参照し、変更箇所と変更箇所が参照している、あるいは、変更箇所から参照されるシンボルとを抽出したうえで、通知ユーザ情報記憶部18を参照し、通知するユーザを判定して、通知する。
次に、図3ないし図5を用いて本実施形態のプログラム解析装置に関わるデータ構造について説明する。
図3は、シンボルテーブルの一例を示す図である。
図3は、シンボルテーブルの一例を示す図である。
シンボルテーブルは、シンボル情報解析部14によりプログラム中にでてくるシンボルを解析した結果を格納するテーブルであり、図3に示されるように、 revision毎に保持され、ID、SYMBOL_NAME、KINDの各フィールドを有する。
IDは、対象プログラムから抽出したシンボルごとに一意に割り振られた識別子を示すフィールドである。
SYMBOL_NAMEは、プログラム言語により記述されたシンボルの名称を示すフィールドである。
KINDは、抽出されたシンボルの種別が、関数であるか変数であるかを示すフィールドである。
revisionは、シンボルテーブルがプログラム変更の際に、システム管理者またはソフトウェア開発のプロジェクトの管理者がつけた一意的な識別子を用いることを表している。
ここで、revisionが、002のプログラム変更のシンボルテーブルには、IDが1のレコードには、SYMBOL_NAMEがfunc1、種類は関数のシンボルが記憶されていることを示している。
図4は、シンボル間参照関係テーブルの一例を示す図である。
図4は、シンボル間参照関係テーブルの一例を示す図である。
シンボルテーブルは、参照関係記憶部16によりプログラム中にでてくるシンボル間の参照関係を解析した結果を格納するテーブルであり、図4に示されるように、revision毎に保持され、ID、SYMBOL_NAME、REFERENCEの各フィールドを有する。
IDと、SYMBOL_NAMEは、図3に示したシンボルテーブルと同じ意味である。
REFERENCEは、このrevisionのプログラム変更のSYMBOL_NAMEが参照するSYMBOL_NAMEに対応するIDを格納するフィールドである。
例えば、IDが1のレコードには、SYMBOL_NAMEがfunc1、 REFERENCEが3が記憶されており、これは、func1がID=3に該当するfunc3を参照することを示している。
図5は、更新ファイル差分テーブルの一例を示す図である。
更新ファイル差分テーブルは、リビジョン毎に更新されたファイルを示すテーブルである。
図5の例では、例えば、Revision002においてsourceB.cが変更、sourceD.cが追加されており、Revision003においてsourceB.cが変更されていることがわかる。
図6は、通知ユーザ情報テーブルの一例を示す図である。
通知ユーザ情報テーブルは、変更のあったシンボルに対して通知するユーザ情報を指定するためのテーブルであり、図6に示されるように、ID、SYMBOL_NAME、各ユーザの指定をするフィールドを有する。
IDは、シンボル情報解析部により付与されたシンボルごとに一意に割り振られた識別子を示すフィールドであり、SYMBOL_NAMEは、シンボルの名称を示すフィールドである。
各ユーザの指定をするフィールドは、図6に示される例では、USER1,USER2,USER3となっており、これはこのプログラムの開発、保守などに関わるユーザの名称である。
各ユーザは、通知ユーザ情報指定部17にて、本テーブルにマーク(○、×)印を付与する。○印は、そのシンボルに影響が及ぶ変更がなされた際に通知することを示している。×印は、そのシンボルに起因する変更による通知は、そのユーザにおこなわないことを示している。
図の例では、USER1列ではfunc1,func2に○印が付与されている。よって、func1、func2に影響が及ぶ変更がプログラムになされた際には、USER1に通知がなされる。また、USER3列では、func3に○印が、func4に×印が付与されている。よって、func4の変更以外で、func3に影響が及ぶ変更がなされた場合、USER3に通知がなされる。
次に、図7ないし図12を用いて本発明の一実施形態に係るプログラム解析装置の処理について説明する。
先ず、図7および図8を用いて本発明の一実施形態に係るプログラム解析装置の全体の処理について説明する。
図7は、本発明の一実施形態に係るプログラム解析装置の全体の処理を示すゼネラルチャートである。
図8は、func5が変更されたときに、ユーザに通知される通知画面の一例である。
先ず、図7および図8を用いて本発明の一実施形態に係るプログラム解析装置の全体の処理について説明する。
図7は、本発明の一実施形態に係るプログラム解析装置の全体の処理を示すゼネラルチャートである。
図8は、func5が変更されたときに、ユーザに通知される通知画面の一例である。
先ず、ユーザは、ユーザ入力部11より、解析対象とするプログラムを指定し、対象プログラム登録部12は、その指定されたプログラムを登録する(S101)。
次に、シンボル情報解析部14において、シンボルの抽出をおこなう(S102)。シンボルの抽出では、プログラム中で使われている関数名と、全ての関数から参照可能なグローバル変数の変数名を抽出する。具体的には、ソースコードの軸解析をおこない単語列に分割し、単語列を基に、言語の構文規則から構文を解釈することにより抽出する。抽出したシンボルには、それぞれIDを割り当てる。抽出した結果は、図3に示されたシンボルテーブルとしてシンボル情報記憶部15に記憶する。
なお、ここで、その関数の中だけで参照されるローカル変数は、解析の対象外である。
次に、シンボル情報解析部14において、シンボル間の参照関係の解析をおこなう(S103)。プログラム中全ての関数において、関数内で参照しているシンボルを抽出し、図4に示されるシンボル間参照関係テーブルを作成し、参照関係記憶部16に記憶する。
また、シンボル間の参照関係は、プログラムを実行させてメモリアクセスのログを取り、メモリアドレスとシンボルの対応付けを取る、動的解析手法を用いて求めることもできる。
次に、通知ユーザ情報指定部17は、S102でおこなったシンボル抽出により抽出されたシンボルを、情報記憶部15から読み出し、シンボルごとに、そのシンボルに影響が及ぶ変更がなされた場合に通知するユーザを指定する(S104)。
ユーザの指定は、シンボルごとに、通知先を指定するウィンドウを表示して、ユーザが○印、または、×印をつけることでなされる。
結果は、図6に示す通知ユーザ情報テーブルに格納される。この例では、USER1がシンボルfunc1とfunc2が変更されたとき、通知するように指定がなされている。
なお、ユーザの指定はシンボル単位ではなく、ソースファイル単位、ソースディレクトリ単位でおこなってもよい。この場合、対応するシンボルをソースファイル、ソースディレクトリ情報からシンボル情報解析部14が取得する。
次に、対象プログラム登録部12は、ユーザが加えたプログラムの変更を受け付け、プログラム記憶部13に記憶する(S105)。登録の際には、図5に示したように、更新ファイルテーブルに変更差分のファイルのみ登録し、登録のたびにリビジョンを付与する。
次に、シンボル情報解析部14は、プログラム記憶部13の更新ファイルテーブルを参照し、変更差分のファイルを解析し、追加・削除されたシンボル名を抽出する(S106)。抽出されたシンボルは、シンボル情報記憶部15にリビジョンとともに格納される。同時に、関数の実装変更など、変更の加えられたシンボルも抽出し、シンボル情報記憶部15に記憶する。
次に、シンボル情報解析部14により、シンボル間の参照関係の解析をおこなう(S107)。追加・削除・変更されたシンボルをシンボル情報記憶部15から参照し、変更されたシンボルに対し、図4に示したシンボル間参照関係テーブルを作成し、リビジョンとともに参照関係記憶部16に記憶する。
また、シンボル間の参照関係は、プログラムを実行させてメモリアクセスのログを取り、メモリアドレスとシンボルの対応付けを取る、動的解析手法を用いて求めることもできる。
次に、通知部19は、参照関係記憶部16に記憶されたシンボル間参照関係テーブルの参照関係から、変更により影響を受けるシンボルを算出する。そして、算出した影響を受けるシンボルを取得した後、通知ユーザ情報記憶部18に記憶された図6の通知ユーザ情報テーブルより、シンボルに対応するユーザを特定する(S108)。
最後に、ステップS108で特定したユーザに対し通知をおこなう(S109)。例えば、func5が変更されたときに、図8に示されるような通知画面が表示される。この通知は、予め通知するコンピュータとユーザを結びつけて定義しておいてもよいし、通知するユーザの電子メールアドレスに、電子メールを送信してもよい。また、グループウェアなどを利用して、そのユーザに通知するようにしてもよい。
このように本実施形態の処理によれば、ユーザは、ステップS104において通知するユーザの指定をおこなうことができ、プログラムが変更された際には、ステップS108において通知判定をおこなった後、指定されたユーザに通知をおこなうことに特徴がある。
次に、図9を用いてステップS108の処理を詳細に説明する。
図9は、図7におけるステップS108の処理を詳細に記述したフローチャートである。
図9は、図7におけるステップS108の処理を詳細に記述したフローチャートである。
先ず、プログラムの変更で変更されたシンボルを取得する(S1081)。変更されたシンボルは、参照関係記憶部16に保持するシンボル間参照関係テーブルから取得する。
次に、変更されたシンボルを参照しているシンボルを、連鎖的に取得する(S1082)。なお、シンボルの参照関係を解析する際の具体例は、後に説明する。
最後に、ステップS1082において取得したシンボルに対応するユーザを、通知ユーザ情報記憶部18の通知ユーザ情報テーブルから取得する(S1083)。
この処理は、図6に示した通知ユーザ情報テーブルから、シンボルとシンボルに対応するユーザを参照することで求める処理である。
次に、図10ないし図12を用いてシンボルの参照関係の解析と通知ユーザを求める処理を具体的な例に基づいて説明する。
図10は、解析対象プログラムのソースコードとそこにおけるシンボル参照関係を模式的に示した図である。
図11は、図10に示された解析対象プログラムのシンボル間の参照関係を解析して作成したシンボル参照関係テーブルの例を示す図である。
図12は、各リビジョンでの参照関係を模式的に示した図である。
図10は、解析対象プログラムのソースコードとそこにおけるシンボル参照関係を模式的に示した図である。
図11は、図10に示された解析対象プログラムのシンボル間の参照関係を解析して作成したシンボル参照関係テーブルの例を示す図である。
図12は、各リビジョンでの参照関係を模式的に示した図である。
図10(a)は、解析対象プログラムのソースコードの抜粋を記載したもので、プログラムはC言語で記述された場合である。また、図10(b)は、(a)のソースコードにおけるシンボル参照関係を示している。図の記法では、一つの関数(例えば、func3)に着目し、内部で参照しているシンボルの参照関係を示している。ここでは、関数を四角形、変数を楕円形で表記し、参照元から参照先に向け矢印を引いている。
上のような解析対象プログラムのソースコードに対して、図7のステップS103で、シンボル間の参照関係を解析すると、図11に示すシンボル参照関係テーブルが生成される。図4と同様に、Revisionは変更ごとの通し番号、IDはシンボルごとに割り振られた番号、SYMBOL_NAMEは抽出されたシンボル名である。図中のイタリックの部分は、直前のRevisionから変更されたシンボルを示している。例えば、Revision003では、func4に変更が加えられたことがわかる。
REFERENCEは、当該シンボルが参照する参照先のシンボルのIDを示し、カッコ付き数値は本Revisionにて追加されたシンボル、カッコ付きマイナス数値は、削除されたシンボルであることを示している。例えば、シンボルfunc4は、本Revisionでの変更によりID6への参照がなくなり、ID5への参照が追加され、結果としてID5とID8、すなわち、func5とvar2を参照していることがわかる。
図12には、Revision002からRevision003からシンボル間の参照関係が変化したことをビジュアルに表示した一例が示されている。
図12の記法は、図10(b)と同様であるが、変更のあったシンボルを2重枠で囲み、さらに、そのシンボルを参照するシンボルへの矢印を連鎖的に太線で記してある。すなわち、func4が変更されており、func1,func2,func3がfunc4を参照していることがわかる。
図9のステップS1092の変更されたシンボルを参照しているシンボルを、連鎖的に取得する処理は、変更されたシンボルへの参照を、順次逆にたどることによりおこなうことができる。図12では、例えば、func4から太線の矢印をたどり、func1,func2,func3を求めることができる。
このように、本実施形態では、ユーザは自分が関係するシンボルを指定しておくことで、プログラムが変更された際に、変更箇所の参照関係をたどり、変更箇所の影響するシンボルを取得することで、変更に影響のあるユーザに通知をおこなうことが可能となる。
11…ユーザ入力部、12…対象プログラム登録部、13…プログラム記憶部、14シンボル情報解析部、15…シンボル情報記憶部、16…参照関係記憶部、17…通知ユーザ情報指定部、18…通知ユーザ情報記憶部、19…通知部。
Claims (5)
- コンピュータにより、プログラム解析プログラムを実行してプログラムのソースコードの変更箇所を解析するプログラム解析装置において、
解析の対象となるプログラムを登録するプログラム登録部と、
登録されたプログラムが変更された際の通知先を指定する通知情報指定部と、
登録されたプログラムが変更された際に通知の有無の判定をおこない、判定の結果により前記通知情報指定部にて指定された通知先に通知する通知部とを有することを特徴とするプログラム解析装置。 - コンピュータにより、プログラム解析プログラムを実行してプログラムのソースコードの変更箇所を解析するプログラム解析装置において、
解析の対象となるプログラムを登録するプログラム登録部と、
登録されたプログラムが変更された際の通知先を指定する通知情報指定部と、
登録されたプログラムを読み込み、前記プログラム中のシンボルを抽出し、シンボル間の参照箇所を抽出するシンボル情報解析部と、
登録されたプログラムの部位ごとの通知先を指定する通知情報指定部と、
プログラムが変更された際に、前記シンボル情報解析部にて抽出したシンボル間の参照箇所から変更の影響箇所を算出し、前記通知情報指定部にて指定したプログラム部位ごとに影響箇所が含まれるか否かを判定し、含まれる場合には、前記通知情報指定部により指定した通知先に通知をおこなう通知部とを有することを特徴とするプログラム解析装置。 - 前記通知情報指定部は、プログラム部位の指定の際に変更通知をおこなわない非通知部位を指定する機能を有し、
前記通知部は、前記非通知部位が変更されていた場合には、前記非通知部位を除外して変更の影響箇所の算出をおこなうことを特徴とする請求項2記載のプログラム解析装置。 - コンピュータにより、プログラム解析プログラムを実行してプログラムのソースコードの変更箇所を解析するプログラム解析方法において、
解析の対象となるプログラムをユーザが登録するプログラム登録ステップと、
登録されたプログラムを読み込み、前記プログラム中のシンボルを抽出し、シンボル間の参照箇所を抽出するシンボル情報解析ステップと、
登録されたプログラムの部位ごとの通知先を指定する通知情報指定ステップと、
登録されたプログラムが変更された際に、前記シンボル情報解析ステップにより抽出したシンボル間の参照箇所から変更の影響箇所を算出し、前記通知情報指定部にて指定したプログラム部位ごとに影響箇所が含まれるか否かを判定し、含まれる場合には前記通知情報指定ステップにより指定した通知先に通知をおこなう通知ステップとを有することを特徴とするプログラム解析方法。 - 前記通知情報指定ステップにより、プログラム部位の指定の際に変更通知をおこなわない非通知部位が指定されたときに、
前記通知ステップは、前記非通知部位が変更されていた場合には、前記非通知部位を除外して変更の影響箇所算出をおこなうことを特徴とする請求項4記載のプログラム解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217501A JP2009053767A (ja) | 2007-08-23 | 2007-08-23 | プログラム解析装置、および、プログラム解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217501A JP2009053767A (ja) | 2007-08-23 | 2007-08-23 | プログラム解析装置、および、プログラム解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009053767A true JP2009053767A (ja) | 2009-03-12 |
Family
ID=40504826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007217501A Pending JP2009053767A (ja) | 2007-08-23 | 2007-08-23 | プログラム解析装置、および、プログラム解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009053767A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010237870A (ja) * | 2009-03-30 | 2010-10-21 | Internatl Business Mach Corp <Ibm> | 複数のクライアントを用いた分散環境で更新作業のコンフリクトを回避するシステム、方法、サーバ及びコンピュータプログラム |
JP2011257994A (ja) * | 2010-06-09 | 2011-12-22 | Nippon Telegr & Teleph Corp <Ntt> | 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム |
JP2020024533A (ja) * | 2018-08-07 | 2020-02-13 | 富士通株式会社 | 分析支援方法および分析支援プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03116228A (ja) * | 1989-03-31 | 1991-05-17 | Hitachi Ltd | 設計支援方法 |
JPH07311683A (ja) * | 1994-05-18 | 1995-11-28 | Fujitsu Ltd | 再翻訳制御装置 |
JPH08194611A (ja) * | 1995-01-19 | 1996-07-30 | Hitachi Ltd | プログラム修正による影響範囲を解析する装置 |
-
2007
- 2007-08-23 JP JP2007217501A patent/JP2009053767A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03116228A (ja) * | 1989-03-31 | 1991-05-17 | Hitachi Ltd | 設計支援方法 |
JPH07311683A (ja) * | 1994-05-18 | 1995-11-28 | Fujitsu Ltd | 再翻訳制御装置 |
JPH08194611A (ja) * | 1995-01-19 | 1996-07-30 | Hitachi Ltd | プログラム修正による影響範囲を解析する装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010237870A (ja) * | 2009-03-30 | 2010-10-21 | Internatl Business Mach Corp <Ibm> | 複数のクライアントを用いた分散環境で更新作業のコンフリクトを回避するシステム、方法、サーバ及びコンピュータプログラム |
US8713552B2 (en) | 2009-03-30 | 2014-04-29 | International Business Machines Corporation | Avoiding conflict in update in distributed environment employing multiple clients |
JP2011257994A (ja) * | 2010-06-09 | 2011-12-22 | Nippon Telegr & Teleph Corp <Ntt> | 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム |
JP2020024533A (ja) * | 2018-08-07 | 2020-02-13 | 富士通株式会社 | 分析支援方法および分析支援プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128723B2 (en) | Method and apparatus for dynamic document object model (DOM) aware code editing | |
JP5756386B2 (ja) | 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム | |
JP4395761B2 (ja) | プログラムテスト支援装置およびその方法 | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
RU2461058C2 (ru) | Определяемый помощник по приложениям | |
US20150278190A1 (en) | Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method | |
US8701086B2 (en) | Simplifying analysis of software code used in software systems | |
JP5747698B2 (ja) | 要件管理支援装置 | |
JP2009053767A (ja) | プログラム解析装置、および、プログラム解析方法 | |
JP2014123249A (ja) | 情報処理装置、プログラム、及び情報処理方法 | |
TW201324347A (zh) | 功能模組命令管理系統及方法 | |
JP2016076080A (ja) | ソースコード解析装置、ソースコード解析方法、及びプログラム | |
JP6231260B2 (ja) | 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法 | |
JP2004102886A (ja) | アプリケーション開発支援方法および装置並びにプログラム、ワークフロー処理方法および装置並びにプログラム | |
WO2017175247A1 (en) | Method and system for generating content from search results rendered by a search engine | |
JP5578625B2 (ja) | プログラム分析装置、プログラム分析方法、及びプログラム | |
JP5702265B2 (ja) | プログラム自動生成装置およびプログラム自動生成方法 | |
WO2020230241A1 (ja) | テスト装置、テスト方法及びプログラム | |
JP2007115155A (ja) | プログラム構造管理装置及びプログラム構造管理プログラム | |
JP2009163566A (ja) | ジョブ解析支援装置 | |
JP2011113298A (ja) | 流用ソースコード解析システム及びプログラム並びに記録媒体 | |
JP2008176364A (ja) | プログラム部品化支援装置 | |
JP2019153204A (ja) | 文書管理プログラム、文書管理装置および文書管理方法 | |
JP5596517B2 (ja) | 国際化対応画面生成システム及びプログラム | |
WO2014064746A1 (ja) | データ操作命令生成装置、データ操作命令生成システム、データ操作命令生成方法およびデータ操作命令生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100602 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120703 |