JP2002082802A - 影響解析装置および方法、記録媒体、プログラム - Google Patents
影響解析装置および方法、記録媒体、プログラムInfo
- Publication number
- JP2002082802A JP2002082802A JP2001194829A JP2001194829A JP2002082802A JP 2002082802 A JP2002082802 A JP 2002082802A JP 2001194829 A JP2001194829 A JP 2001194829A JP 2001194829 A JP2001194829 A JP 2001194829A JP 2002082802 A JP2002082802 A JP 2002082802A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- information
- table information
- analysis
- source code
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
ンク単位を意識しなくても影響範囲の解析を行うことが
できるようにする。 【解決手段】 解析対象となるソースコード1-1〜1-n
のそれぞれに対応する変数情報3-1〜3-nを用いて、代
入または参照された変数とその存在場所との対応関係を
表す複数のテーブル情報6-1〜6-3を生成するテーブル
情報生成部5と、その複数のテーブル情報6-1〜6-3を
用いて変数の影響範囲を求める解析部7とを設け、各変
数情報3-1〜3-nの全体を対象としてテーブル情報6-1
〜6-3を求め、そのテーブル情報6-1〜6-3を用いて、
変数の代入および参照関係を辿ることによって影響解析
を行うようにすることにより、複数のソースコード1-1
〜1 -nのうちどの組み合わせでリンク単位を構成するか
を意識することなく、関係のあるソースコード間で所望
の変数の影響範囲を解析できるようにする。
Description
方法、更にはこれらをソフトウェアの機能で実現するた
めのプログラム、および上記プログラムを格納した記録
媒体に関し、特に、一般的なプログラム言語で記述され
たソースコードを解析する際に利用される影響解析装置
および方法に用いて好適なものである。
利用してより良いコンピュータシステムを構築すること
が一般的に行われている。この場合、既に構築されてい
る既存のソースコード(ソースプログラム)をデバッグ
して保守したり、あるいはソースコードが無いときには
リバース・エンジニリアリングを行ったりしている。こ
のプログラムの保守やリバース・エンジニリアリングで
は、プログラム中のある変数およびその変数に関係する
部分については修正せず、これら以外の部分だけを修正
したいという場合もある。
その変数がプログラムの他の部分に影響を与えている場
合がある。したがって、ある変数に対して修正を加える
ときに、その影響がそのプログラムのどの部分まで及ぶ
のかを調べることなく無闇に行うと、予測し得ないエラ
ー等が発生して、そのプログラムが正常に動作しなくな
ってしまうことがある。
業においては、変数の影響がどの範囲まで及び、どの部
分には及ばないかを解析することが、プログラムを開発
する上において極めて重要となる。そこで本出願人は、
このような解析を行うための装置として、例えば特願平
10−24355号に記載の変数影響解析装置を提案し
た。この装置は、プログラム中での影響範囲を解析する
ものである。
グラムは、例えば機能単位毎に分割した個々のモジュー
ルに対応する複数のソースコードを夫々コンパイルし、
それらをリンクすることによって作成されることが多
い。以下では、このように1つの実行プログラムを作る
に当たってリンクするために必要なソースコード群の単
位を「リンク単位」と呼ぶ。さらに、複数のリンク単位
の実行プログラムが連携して1つのコンピュータシステ
ムを構築している場合も多い。
コードやそのリンク単位等をユーザが理解しており、こ
れをもとに保守作業を行うことが多い。しかしながら、
これらの情報をユーザが必ず理解しているとは限らな
い。従来の変数影響解析装置では、ユーザがこれらリン
ク単位等の情報を理解していることを前提に作られてい
るため、ユーザはリンク単位を意識しておく必要があ
り、リンク単位が不明である場合には解析できなかっ
た。
ている複数のソースファイルに渡って影響解析を行う場
合、例えば対象となるソースファイル自体が数千、数万
ファイルになることがある。その場合、従来の変数影響
解析装置では全ての影響解析を行っていたために解析結
果を得るためには非常に時間がかかり、実質的には使い
物にならなかった。さらに、従来の変数影響解析装置で
は、影響解析できる範囲は1つのリンク単位内に限られ
ており、複数のリンク単位が連携して構築されるような
システムに関しては解析できないという課題があった。
に成されたものであり、与えられたソースコード群の中
でユーザがリンク単位を意識しなくても影響範囲の解析
を行うことができるようにすることを目的とする。ま
た、本発明は、解析対象となるソースファイルが多くな
った場合にも高速に影響解析を行うことができるように
することを目的とする。さらに、本発明は、1つのリン
ク単位を越えて影響範囲の解析を行うことができるよう
にすることも目的としている。
は、解析の対象となる少なくとも1つ以上のソースコー
ド毎に生成された、変数のデータ依存関係に関する少な
くとも1つ以上の変数情報を対象として、代入または参
照が行われた変数とその存在場所との対応関係を表す複
数のテーブル情報を生成するテーブル生成手段と、上記
テーブル生成手段により生成された複数のテーブル情報
を用いて、変数の代入および参照関係を辿ることによっ
て変数の影響範囲を求める解析手段とを備える。
ば、それぞれのソースコード毎に生成された各変数情報
を対象として、変数とその代入が行われた文との対応関
係を表す第1のテーブル情報、変数とその参照が行われ
た文との対応関係を表す第2のテーブル情報、文とそこ
で代入が行われた変数との対応関係を表す第3のテーブ
ル情報を生成する。
手段は、それぞれのソースコード中に含まれる同じ名前
の変数を全て同じ変数であるとして上記複数のテーブル
情報を生成する。また、本発明のその他の態様では、上
記テーブル生成手段は、それぞれのソースコード中に含
まれる変数がどこかで代入された場合に、その変数の全
ての参照がその代入に依存しているものとして上記複数
のテーブル情報を生成する。
象となる少なくとも1つ以上のソースコードを読み込
み、それぞれのソースコード毎に上記変数情報を生成す
る変数情報生成手段と、上記変数情報生成手段により生
成された各変数情報を保存する記憶手段とを備え、上記
テーブル生成手段および解析手段は、上記変数情報生成
手段によりあらかじめ生成されて上記記憶手段に保存さ
れている各変数情報を用いて、上記複数のテーブル情報
の生成およびそれらを用いた影響解析を実行する。
象となる少なくとも1つ以上のソースコード毎に生成さ
れた、変数のデータ依存関係に関する少なくとも1つ以
上の変数情報を対象として、代入または参照が行われた
変数とその存在場所との対応関係を表す複数のテーブル
情報を生成するテーブル生成ステップと、上記生成され
た複数のテーブル情報を用いて、変数の代入および参照
関係を辿ることによって変数の影響範囲を求める解析ス
テップとを有する。
な記録媒体は、解析の対象となる少なくとも1つ以上の
ソースコード毎に生成された、変数のデータ依存関係に
関する少なくとも1つ以上の変数情報を対象として、代
入または参照が行われた変数とその存在場所との対応関
係を表す複数のテーブル情報を生成するテーブル生成手
段と、上記テーブル生成手段により生成された複数のテ
ーブル情報を用いて、変数の代入および参照関係を辿る
ことによって変数の影響範囲を求める解析手段としてコ
ンピュータを機能させるためのプログラムを記録する。
となる少なくとも1つ以上のソースコード毎に生成され
た、変数のデータ依存関係に関する少なくとも1つ以上
の変数情報を対象として、代入または参照が行われた変
数とその存在場所との対応関係を表す複数のテーブル情
報を生成するテーブル生成手段と、上記テーブル生成手
段により生成された複数のテーブル情報を用いて、変数
の代入および参照関係を辿ることによって変数の影響範
囲を求める解析手段としてコンピュータを機能させる。
に基づいて説明する。図1は、本実施形態による影響解
析装置の主要な機能構成を示すブロック図である。
の対象となるn個のソースコードであり、これらの中の
何れかの組み合わせによってリンク単位が構成される。
また、これらn個のソースコード1-1〜1-nの中に複数
のリンク単位が含まれていても良い。解析の対象として
与えられるこれらn個のソースコード1-1〜1-nは、そ
の中の何れの組み合わせによってリンク単位が構成され
ているのかが不明であっても良い。
なる上記n個のソースコード1-1〜1-nを読み込み、そ
れぞれのソースコード毎に構文解析して、変数の代入・
参照関係を表す変数情報3-1〜3-nをそれぞれ生成す
る。すなわち、例えば第1のソースコード1-1から第1
の変数情報3-1を生成し、第nのソースコード1-nから
第nの変数情報3-nを生成する。生成した変数情報3-1
〜3-nは、各ソースコード毎に1つのファイルに入れて
それぞれ記憶部4に保存する。
情報生成部2によりそれぞれのソースコード毎に生成さ
れて記憶部4に保存された各変数情報3-1〜3-nを対象
として、代入または参照が行われた変数とその存在場所
との対応関係を表す複数のテーブル情報を生成する。こ
こでは、例えば変数とその代入が行われた文との対応関
係を表す第1のテーブル情報6-1と、変数とその参照が
行われた文との対応関係を表す第2のテーブル情報6-2
と、文とそこで代入が行われた変数との対応関係を表す
第3のテーブル情報6-3とを生成する。
部5により生成された3つのテーブル情報6-1〜6-3を
用いて、変数の代入および参照関係を辿ることによって
所望の変数の影響範囲を解析する。例えば、第1のテー
ブル情報6-1を起点として、以降第2のテーブル情報6
-2と第3のテーブル情報6-3とを交互にアクセスして変
数の代入および参照の関係を辿ることにより、当該変数
の影響範囲を求める。そして、その解析結果をリスト8
として出力する。
置の動作を、具体例を挙げながら説明する。なお、ここ
では説明の簡単のため、変数の影響解析の対象とするソ
ースコードが2つの場合について説明する。図2は、そ
の2つのソースコード1-1,1-2およびこれから生成さ
れる変数情報3-1,3-2の一部構成例を示す図である。
は、1行目において変数Aに"1"が代入され、2行目に
おいて変数Bが参照されてその値が変数Xに代入され、
3行目において変数Aが参照されてその値が変数Bに代
入されている。また、4行目においては2つの変数B,
Yが参照され、6行目においては変数Bが参照されてそ
の値が変数Cに代入されている。一方、第2のソースコ
ード1-2では、1行目において変数Aに"0"が代入さ
れ、2行目において変数Dが参照されてその値が変数X
に代入され、3行目において2つの変数B,Xが参照さ
れている。
ースコード1-1,1-2を読み込み、それぞれのソースコ
ード中に含まれる各変数の代入・参照関係を解析して、
変数の代入・参照関係に関する変数情報3-1,3-2をそ
れぞれのソースコード毎に生成する。例えば、第1のソ
ースコード1-1に関しては、変数Aは1行目で代入され
るとともに3行目で参照され、変数Bは2,4,6行目
で参照されるとともに3行目で代入され、変数Cは6行
目で代入され、変数Xは2行目で代入され、変数Yは4
行目で参照されているという変数情報を生成する。第2
のソースコード1-2に関しても同様である。
3-2は、それぞれ別個のファイルとして記憶部4に保存
される。テーブル情報生成部5は、記憶部4に保存され
た各変数情報3-1,3-2を用いて、上述の3つのテーブ
ル情報6-1〜6-3を生成する。図3は、上記図2に示し
た2つのソースコード1-1,1-2を解析対象とした場合
に生成される3つのテーブル情報6-1〜6-3を示す図で
ある。
-1は、変数とその代入が行われた文との対応関係を表す
ものである。この第1のテーブル情報6-1に含まれる各
変数A,B,C,Xは、解析対象とする全ソースコード
1-1,1-2の中で代入が行われている全ての変数であ
る。また、それらに対応する文は、その変数の代入が行
われているソースコード中の場所を示すものである。例
えば変数Aは、第1のソースコード1-1の1行目(1−
1で表記)と、第2のソースコード1-2の1行目(2−
1で表記)とで代入が行われている。
その参照が行われた文との対応関係を表すものである。
この第2のテーブル情報6-2に含まれる各変数A,B,
D,X,Yは、解析対象とする全ソースコード1-1,1
-2の中で参照が行われている全ての変数である。また、
それらに対応する文は、その変数の参照が行われている
ソースコード中の場所を示すものである。例えば変数A
は、第1のソースコード1-1の3行目(1−3で表記)
で参照が行われている。
こで代入が行われた変数との対応関係を表すものであ
る。この第3のテーブル情報6-3に含まれる各文1−
1,1−2,1−3,1−6,2−1,2−2は、解析
対象とする全ソースコード1-1,1-2の中で代入が行わ
れている全ての場所を表すものであり、それらの場所で
代入されている変数が夫々対応して示されている。例え
ば第1のソースコード1-1の1行目では、変数Aの代入
が行われている。
照が行われた文を1−1,1−2…などで表記している
が、1つの文が複数行に渡って記述されることもあるの
で、これらの表記は単純な行番号を示すものではない。
実際には、各テーブル情報6 -1〜6-3中の文を表す部分
に対して、各ソースコード1-1,1-2の各文ごとにユニ
ークな文IDを与え、この文IDとそれが存在するソー
スコード中の場所との関係を表すもう1つのテーブル情
報を備えている。
生成された図3に示した3つのテーブル情報6-1〜6-3
を用いて、例えば対象変数リスト9にリストアップされ
ているユーザにより指定された所望の変数の代入および
参照関係を辿ることによって影響範囲を解析し、その解
析結果をリスト8として出力する。
合は、まず第1のテーブル情報6-1を見て、その変数A
が各ソースコード1-1,1-2の中のどの場所で代入され
ているかを調べる。ここでは、第1のソースコード1-1
の1行目と、第2のソースコード1-2の1行目において
変数Aの代入が行われていることが分かる。この時点
で、その検出した代入場所を解析結果リスト8に登録す
る。
定された変数Aが各ソースコード1 -1,1-2の中のどの
場所で参照されているかを調べる。ここでは、第1のソ
ースコード1-1の3行目において変数Aの参照が行われ
ていることが分かる。この時点で、その検出した参照場
所を解析結果リスト8に追加する。次に、第3のテーブ
ル情報6-3を見て、上記第2のテーブル情報6-2に記述
されている場所で参照された変数Aがどの変数に代入さ
れているかを調べる。ここでは、第1のソースコード1
-1の3行目において参照された変数Aが変数Bに代入さ
れていることが分かる。
てさらに他の部分に影響を及ぼすことになるので、次に
変数Bの影響範囲も調べる必要がある。そこで、第2の
テーブル情報6-2を再び見て、その変数Bが各ソースコ
ード1-1,1-2の中のどの場所で参照されているかを調
べる。ここでは、第1のソースコード1-1の2,4,6
行目と、第2のソースコード1-2の3行目において変数
Bの参照が行われていることが分かる。この時点で、そ
れらの検出した参照場所を解析結果リスト8に追加す
る。
上記第2のテーブル情報6-2に記述されている場所で参
照された変数Bがそれぞれどの変数に代入されているか
を調べる。ここでは、第1のソースコード1-1の2行目
において参照された変数Bが変数Xに代入されるととも
に、第1のソースコード1-1の6行目において参照され
た変数Bが変数Cに代入されていることが分かる。な
お、第1のソースコード1-1の4行目において参照され
た変数Bと、第2のソースコード1-2の3行目において
参照された変数Bは何れの変数にも代入されていないの
で、これらについてはここで処理が終了する。
変数X,Cについては、更にその影響範囲を調べるため
に、再び第2のテーブル情報6-2を見て、その変数X,
Cが各ソースコード1-1,1-2の中のどの場所で参照さ
れているかを調べる。ここでは、第2のソースコード1
-2の3行目において変数Xの参照が行われていることが
分かる。ただし、この参照場所は解析結果リスト8に既
に登録されているので、解析結果リスト8への追加は行
わない。
上記第2のテーブル情報6-2に記述されている場所で参
照された変数Xがどの変数に代入されているかを調べ
る。ここでは、変数Xは何れの変数にも代入されていな
いので、ここで全ての解析処理が終了する。以上のよう
に、第1のテーブル情報6-1を起点として、以降第2の
テーブル情報6-2と第3のテーブル情報6-3とを交互に
アクセスして変数の代入および参照関係を辿ることによ
り、変数Aの影響範囲を求めることができる。このとき
得られた変数Aの影響範囲の解析結果リスト8を示す
と、図4のようになる。
テーブル情報6-3から第2のテーブル情報6-2に戻る際
に既に解析済の変数が指定された場合には、その変数に
ついて続けて解析しても以前と同じ結果が得られるだけ
なので、そこで解析処理を終了する。そのために、どの
変数について解析を行ったかの履歴情報を保持するよう
にして、常にこの履歴情報を更新および参考にしながら
上述のような処理を実行する。
の影響解析装置では、それぞれのソースコード1-1,1
-2中に含まれる同じ名前の変数は、全て同じ変数である
ものとしている。これは、複数のソースコード間に渡っ
て影響範囲の解析を行う変数は、殆どの場合が大域変数
(グローバル変数)であり、全てのソースコードで名前
を統一して使われているため、同じ名前の変数を同一視
しても問題がないからである。
れぞれのソースコード1-1,1-2中に含まれる変数がど
こかの場所で代入されたら、その変数の全ての参照はそ
の代入に依存しているものと考えている。つまり、プロ
グラムの制御フローは全く無視している。例えば、第1
のソースコード1-1において制御フローも考慮して変数
Aの影響範囲を解析すると2行目は影響範囲に入らない
が、本実施形態のように制御フローを無視した場合には
この2行目も影響範囲に入る(図4において1−2も影
響範囲のリストとして登録されている)。
解析方法の処理手順を示すフローチャートである。この
うち図5は、図1の記憶部4に保存されている変数情報
3-1〜3-nから3つのテーブル情報6-1〜6-3を生成す
るテーブル情報生成部5の処理、すなわち、解析部7に
よる影響解析の前処理の手順を示す。
ザがテーブル情報生成部5に対して影響解析を行う対象
のソースコード群を指定する。ここでは、特にリンク単
位を意識することなく、任意のソースコードを指定する
ことが可能である。また、与えられた全てのソースコー
ド1-1〜1-nを指定することも可能である。次に、ステ
ップS2でテーブル情報生成部5は、上記指定されたソ
ースコード群の各々に対応する変数情報をそれぞれ記憶
部4から読み込む。
の各々に対応する変数情報3-1〜3 -nがあらかじめ変数
情報生成部2により生成されて記憶部4に保存されてい
るので、その中から指定されたソースコード群に対応す
る変数情報を読み込む。そして、ステップS3で、その
読み込んだ変数情報の全体を対象として、上述した第1
〜第3のテーブル情報6-1〜6-3を生成する。
生成された3つのテーブル情報6-1〜6-3を用いて変数
の影響解析を行う解析部7の処理手順を示す。なお、こ
の図6のフローチャートに入る前に、別途ユーザがどの
変数に対して影響解析を行いたいかという指定をしてお
き、対象変数リスト9にその変数がリスト化されている
ものとする。図6において、まずステップS11で、ユ
ーザから影響解析を行いたい変数の指定があったか否か
を判断する(図3の例では、変数Aを指定している)。
変数の指定があった場合は、ステップS12で第1のテ
ーブル情報6-1を見て、ステップS13で上記指定され
た変数が第1のテーブル情報6-1内に存在するか否かを
判断する。
情報6-1内に有る場合は、ステップS14に進み、その
変数に対応して第1のテーブル情報6-1内に記述されて
いる代入が行われた文(図3の例では、1−1、2−1
の2つの代入文)を解析結果リスト8に登録する。次
に、ステップS15で第2のテーブル情報6-2を見て、
ステップS16で上記指定された変数が第2のテーブル
情報6-2内に存在するか否かを判断する。
情報6-2内に有る場合は、ステップS17に進み、その
変数に対応して第2のテーブル情報6-2内に記述されて
いる参照が行われた文(図3の例では、1−3の参照
文)を解析結果リスト8に追加する。さらに、ステップ
S18で第3のテーブル情報6-3を見て、ステップS1
9で上記第2のテーブル情報6-2内に記述されている参
照文が第3のテーブル情報6-3内に存在するか否かを判
断する。
記述されている参照文が第3のテーブル情報6-3内に有
る場合は、ステップS20に進み、最初に指定された変
数(図3の例では変数A)を上記参照文に対応して記述
されている代入が行われた変数(図3の例では変数B)
に置き換える。このように、以降の影響解析処理で対象
とする変数名を変更した後、ステップS15に戻り、再
び第2のテーブル情報6-2を見て以下同様の処理を繰り
返し行う。
テーブル情報6-2内に記述されている参照文が第3のテ
ーブル情報6-3内に複数有る場合、ステップS20で
は、以降の処理で対象とする変数を複数設定する。そし
て、以降のステップS15〜S19の処理では、設定さ
れた複数の変数のそれぞれに対して同様の処理を実行す
る。このとき、ステップS16およびステップS19で
は、該当するものが1つでも有れば、その該当するもの
に関してYesの分岐に従って処理を進める。
9の何れかにおいて、第1のテーブル情報6-1および第
2のテーブル情報6-2内に指定された変数が存在しない
場合や、上記第2のテーブル情報6-2内に記述されてい
る参照文が第3のテーブル情報6-3内に存在しない場合
には、影響解析の処理を終了する。このようにして影響
解析の処理を終了したときに解析結果リスト8に記述さ
れている内容が、求めたい変数の影響範囲を表している
ことになる。
は、まず解析対象となるそれぞれのソースコード毎に変
数の代入・参照関係に関する変数情報を夫々生成する。
次に、それぞれのソースコード中に含まれる同じ名前の
変数は全て同じものであるとし、かつ、ソースコード中
の制御フローを無視するという条件の下で、複数の変数
情報をもとに3つのテーブル情報を生成する。そして、
これらのテーブル情報を用いて変数の代入および参照関
係を辿ることによって影響範囲を求めるようにしてい
る。
ド1-1〜1-nの中でどの組み合わせでリンク単位を構成
するかを特定できなくても、例えばそれらをまとめて解
析処理を行えば、その中である変数の影響する範囲を解
析することができる。また、異なるソースコードに含ま
れる変数でも同じ名前の変数は同じものであるとして解
析しているので、従来の変数影響解析装置の解析で制限
されていたリンク単位を越えて影響範囲の解析を行うこ
ともできる。
という条件を課すことにより、影響解析を厳密に行うこ
とはできないが、各ソースコード1-1〜1-n中の各文に
現れる変数の代入、参照情報を求めれば良くなるので、
構文解析する単位はソースコード毎に行えば良くなり、
ある程度良好な解析結果を現実に実行可能な時間内に得
ることができる。
成部2により生成された変数情報3 -1〜3-nを保存する
記憶部4を備え、各変数情報3-1〜3-nを変数情報生成
部2によりあらかじめ生成して記憶部4に保存しておく
ようにしている。したがって、上述した変数の影響解析
処理を一連に行うのではなく、所望の変数の影響解析を
行いたいときにテーブル情報6-1〜6-3の生成から始め
れば良く、影響解析の処理を更に高速化することができ
る。
コード1-1〜1-nについて各変数情報3-1〜3-nを求め
て記憶部4に保存することになるが、その後は、変更が
加えられたソースコードについてのみ対応する変数情報
を生成し、その部分だけ記憶部4の内容を更新すれば良
い。なお、この変数情報3-1〜3-nを求める処理自体
は、通常の構文解析手法を用いて行うことが可能であ
る。
解析を行う際に、第1のテーブル情報6-1からスタート
してその後第2のテーブル情報6-2と第3のテーブル情
報6 -3とを繰り返し見ていき、該当する変数や文が存在
しなくなった時点で解析処理を終了していたが、第2の
テーブル情報6-2と第3のテーブル情報6-3の繰り返し
処理の回数があらかじめ定めた回数に達したときに解析
処理を終了するようにしても良い。
所望の変数を1つだけ指定する例について説明したが、
複数の変数を指定しても良い。この場合、指定された複
数の変数の影響範囲を1つ1つ順に解析していき、各変
数の解析結果を個別のリストとして出力するようにして
も良いし、各変数の解析結果を1つのリストに合わせて
出力するようにしても良い。1つのリストに合わせて出
力する場合、各変数の解析結果のうち重複するものにつ
いては排除するようにしても良い。
影響解析を行う場合について説明したが、色々な型の変
数をいくつか集めて構成した構造体に対しても本発明を
適用することが可能である。この場合は、例えば、図6
のステップS11で影響解析を行う所望の変数が指定さ
れたときに、その変数が構造体の一部であるかどうかを
まず判断し、構造体の一部であれば、その構造体を構成
する他の変数も影響解析を行う対象の中に含める。以降
は、その構造体を構成する複数の変数に対してステップ
S12〜S20の処理をそれぞれ実行すれば良い。
本実施形態の影響解析装置は、コンピュータのCPUあ
るいはMPU、RAM、ROMなどで構成されるもので
あり、RAMやROMに記憶されたプログラムが動作す
ることによって実現でき、上記プログラムは本発明の実
施形態に含まれる。また、コンピュータが上記機能を果
たすように動作させるプログラムを、例えばCD−RO
Mのような記録媒体に記録し、コンピュータに読み込ま
せることによって実現できるものであり、上記プログラ
ムを記録した記録媒体は本発明の実施形態に含まれる。
上記プログラムを記録する記録媒体としては、CD−R
OM以外に、フレキシブルディスク、ハードディスク、
磁気テープ、光磁気ディスク、不揮発性メモリカード等
を用いることができる。
ムを実行することにより上述の実施形態の機能が実現さ
れるだけでなく、そのプログラムがコンピュータにおい
て稼働しているOS(オペレーティングシステム)ある
いは他のアプリケーションソフト等と共同して上述の実
施形態の機能が実現される場合や、供給されたプログラ
ムの処理の全てあるいは一部がコンピュータの機能拡張
ボードや機能拡張ユニットにより行われて上述の実施形
態の機能が実現される場合も、かかるプログラムは本発
明の実施形態に含まれる。
なる少なくとも1つ以上のソースコードのそれぞれに対
応する各変数情報を用いて、代入または参照が行われた
変数とその存在場所との対応関係を表す複数のテーブル
情報を生成し、その複数のテーブル情報を用いて、変数
の代入および参照関係を辿ることによって変数の影響範
囲を求めるようにしたので、与えられた複数のソースコ
ードの中でどの組み合わせでリンク単位を構成するかを
意識することなく、その中で関係のあるソースコード間
で所望の変数の影響範囲を解析することができる。
る同じ名前の変数は全て同じ変数であるとして解析を行
っているので、リンク単位を越えて影響範囲の解析を行
うこともできる。さらに、それぞれのソースコード中に
含まれる変数の全ての参照がその変数の代入に依存して
いるものとして解析を行っているので、各ソースコード
中の各文に現れる変数の代入、参照情報を求めれば良く
なり、短い時間で解析処理を実行することができる。
ぞれのソースコードに対応する変数情報を保存する記憶
手段を備え、上記変数情報をあらかじめ生成して保存し
ておくようにしたので、所望の変数の影響解析を行いた
いときには、保存されている変数情報を用いてテーブル
情報の生成から始めれば良くなり、影響解析の処理にか
かる時間を更に短縮化することができる。
成を示すブロック図である。
した場合に生成される3つのテーブル情報と影響解析の
流れを示す図である。
ある。
すフローチャートである。
すフローチャートである。
Claims (10)
- 【請求項1】 ソースコード中に含まれる変数が他の部
分に与える影響を解析する影響解析装置であって、 解析の対象となる少なくとも1つ以上のソースコード毎
に生成された、変数のデータ依存関係に関する少なくと
も1つ以上の変数情報を対象として、代入または参照が
行われた変数とその存在場所との対応関係を表す複数の
テーブル情報を生成するテーブル生成手段と、 上記テーブル生成手段により生成された複数のテーブル
情報を用いて、変数の代入および参照関係を辿ることに
よって変数の影響範囲を求める解析手段とを備えたこと
を特徴とする影響解析装置。 - 【請求項2】 上記テーブル生成手段は、それぞれのソ
ースコード毎に生成された各変数情報を対象として、変
数とその代入が行われた文との対応関係を表す第1のテ
ーブル情報、変数とその参照が行われた文との対応関係
を表す第2のテーブル情報、文とそこで代入が行われた
変数との対応関係を表す第3のテーブル情報を生成する
ことを特徴とする請求項1に記載の影響解析装置。 - 【請求項3】 上記テーブル生成手段は、それぞれのソ
ースコード中に含まれる同じ名前の変数を全て同じ変数
であるとして上記複数のテーブル情報を生成することを
特徴とする請求項1または2に記載の影響解析装置。 - 【請求項4】 上記テーブル生成手段は、それぞれのソ
ースコード中に含まれる変数がどこかで代入された場合
に、その変数の全ての参照がその代入に依存しているも
のとして上記複数のテーブル情報を生成することを特徴
とする請求項1〜3の何れか1項に記載の影響解析装
置。 - 【請求項5】 上記解析の対象となる少なくとも1つ以
上のソースコードを読み込み、それぞれのソースコード
毎に上記変数情報を生成する変数情報生成手段と、 上記変数情報生成手段により生成された各変数情報を保
存する記憶手段とを備え、 上記テーブル生成手段および解析手段は、上記変数情報
生成手段によりあらかじめ生成されて上記記憶手段に保
存されている各変数情報を用いて、上記複数のテーブル
情報の生成およびそれらを用いた影響解析を実行するこ
とを特徴とする請求項1〜4の何れか1項に記載の影響
解析装置。 - 【請求項6】 ソースコード中に含まれる変数が他の部
分に与える影響を解析する影響解析方法であって、 解析の対象となる少なくとも1つ以上のソースコード毎
に生成された、変数のデータ依存関係に関する少なくと
も1つ以上の変数情報を対象として、代入または参照が
行われた変数とその存在場所との対応関係を表す複数の
テーブル情報を生成するテーブル生成ステップと、 上記生成された複数のテーブル情報を用いて、変数の代
入および参照関係を辿ることによって変数の影響範囲を
求める解析ステップとを有することを特徴とする影響解
析方法。 - 【請求項7】 上記テーブル生成ステップでは、それぞ
れのソースコード毎に生成された各変数情報を対象とし
て、変数とその代入が行われた文との対応関係を表す第
1のテーブル情報、変数とその参照が行われた文との対
応関係を表す第2のテーブル情報、文とそこで代入が行
われた変数との対応関係を表す第3のテーブル情報を生
成することを特徴とする請求項6に記載の影響解析方
法。 - 【請求項8】 上記解析ステップでは、上記第1のテー
ブル情報を起点として、以降上記第2のテーブル情報と
上記第3のテーブル情報とを交互にアクセスして上記変
数の代入および参照関係を辿ることによって上記変数の
影響範囲を求めることを特徴とする請求項7に記載の影
響解析方法。 - 【請求項9】 解析の対象となる少なくとも1つ以上の
ソースコード毎に生成された、変数のデータ依存関係に
関する少なくとも1つ以上の変数情報を対象として、代
入または参照が行われた変数とその存在場所との対応関
係を表す複数のテーブル情報を生成するテーブル生成手
段と、 上記テーブル生成手段により生成された複数のテーブル
情報を用いて、変数の代入および参照関係を辿ることに
よって変数の影響範囲を求める解析手段としてコンピュ
ータを機能させるためのプログラムを記録したことを特
徴とするコンピュータ読み取り可能な記録媒体。 - 【請求項10】 解析の対象となる少なくとも1つ以上
のソースコード毎に生成された、変数のデータ依存関係
に関する少なくとも1つ以上の変数情報を対象として、
代入または参照が行われた変数とその存在場所との対応
関係を表す複数のテーブル情報を生成するテーブル生成
手段と、 上記テーブル生成手段により生成された複数のテーブル
情報を用いて、変数の代入および参照関係を辿ることに
よって変数の影響範囲を求める解析手段としてコンピュ
ータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001194829A JP4782315B2 (ja) | 2000-06-27 | 2001-06-27 | 影響解析装置および方法、記録媒体、プログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000193313 | 2000-06-27 | ||
JP2000193313 | 2000-06-27 | ||
JP2000-193313 | 2000-06-27 | ||
JP2001194829A JP4782315B2 (ja) | 2000-06-27 | 2001-06-27 | 影響解析装置および方法、記録媒体、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002082802A true JP2002082802A (ja) | 2002-03-22 |
JP4782315B2 JP4782315B2 (ja) | 2011-09-28 |
Family
ID=26594796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001194829A Expired - Lifetime JP4782315B2 (ja) | 2000-06-27 | 2001-06-27 | 影響解析装置および方法、記録媒体、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4782315B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010039949A (ja) * | 2008-08-07 | 2010-02-18 | Fujitsu Ltd | 分散開発管理プログラム |
JP2013156786A (ja) * | 2012-01-30 | 2013-08-15 | Hitachi Automotive Systems Ltd | ソフトウェアの構造可視化プログラムおよびシステム |
JP2015149017A (ja) * | 2014-02-07 | 2015-08-20 | 富士通株式会社 | 管理プログラム、管理方法、及び管理システム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104989A (ja) * | 1993-09-30 | 1995-04-21 | Fujitsu Ltd | データ項目定義標準化装置 |
JPH11327879A (ja) * | 1998-05-15 | 1999-11-30 | Fujitsu Ltd | 変数検索装置及び方法並びに変数検索プログラムを記録したコンピュータ読取り可能な記録媒体 |
JP2001142688A (ja) * | 1999-11-16 | 2001-05-25 | Fujitsu Ltd | プログラム分析装置及び記録媒体 |
-
2001
- 2001-06-27 JP JP2001194829A patent/JP4782315B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104989A (ja) * | 1993-09-30 | 1995-04-21 | Fujitsu Ltd | データ項目定義標準化装置 |
JPH11327879A (ja) * | 1998-05-15 | 1999-11-30 | Fujitsu Ltd | 変数検索装置及び方法並びに変数検索プログラムを記録したコンピュータ読取り可能な記録媒体 |
JP2001142688A (ja) * | 1999-11-16 | 2001-05-25 | Fujitsu Ltd | プログラム分析装置及び記録媒体 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010039949A (ja) * | 2008-08-07 | 2010-02-18 | Fujitsu Ltd | 分散開発管理プログラム |
JP2013156786A (ja) * | 2012-01-30 | 2013-08-15 | Hitachi Automotive Systems Ltd | ソフトウェアの構造可視化プログラムおよびシステム |
JP2015149017A (ja) * | 2014-02-07 | 2015-08-20 | 富士通株式会社 | 管理プログラム、管理方法、及び管理システム |
Also Published As
Publication number | Publication date |
---|---|
JP4782315B2 (ja) | 2011-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7353505B2 (en) | Tracing the execution path of a computer program | |
US20120143893A1 (en) | Pattern Matching Framework for Log Analysis | |
US20070150870A1 (en) | Method and apparatus for context oriented computer program tracing and visualization | |
US8286141B2 (en) | Instruction-trace generation program, instruction-trace generating device, and instruction-trace generating method | |
Schuster et al. | Conformance checking for trace fragments using infix and postfix alignments | |
US6546526B2 (en) | Active trace debugging for hardware description languages | |
JP6878707B2 (ja) | 試験装置、試験方法および試験プログラム | |
JP4782315B2 (ja) | 影響解析装置および方法、記録媒体、プログラム | |
CN109032946B (zh) | 一种测试方法和装置、计算机可读存储介质 | |
KR100640243B1 (ko) | 이동통신 단말기의 응용프로그램 실행속도 향상장치 및방법 | |
JP2017041196A (ja) | スタブ化対象判定装置、方法、及びプログラム | |
JP7380851B2 (ja) | テストスクリプト生成装置、テストスクリプト生成方法及びプログラム | |
Küsters et al. | Revisiting the Alpha Algorithm To Enable Real-Life Process Discovery Applications | |
CN114691197A (zh) | 代码分析方法、装置、电子设备和存储介质 | |
US6950970B2 (en) | Operation report creation system, operation report creation method, and operation report creation program | |
CN114356783A (zh) | 单元测试代码自动生成方法、装置、存储介质及设备 | |
GB2397905A (en) | Method for automatically generating and ordering test scripts | |
Vasiliev et al. | Integration of Business Process Definition, Analysis and Execution Tools Based on Block-structured Approach | |
Fernández-Ropero et al. | Repairing business process models as retrieved from source code | |
US7152227B1 (en) | Automated assessment of programming language coverage by one or more test programs | |
CN111209204B (zh) | 一种基于JSON的web自动化测试方法及其系统和装置 | |
CN116016270B (zh) | 一种交换机测试管理方法、装置、电子设备和存储介质 | |
CN118170690B (zh) | 一种基于待定元组的组合测试多故障定位方法 | |
JP2008262473A (ja) | 設備保全管理システム | |
CN118132388B (zh) | 一种程序执行路径确定方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080509 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110527 |
|
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: 20110614 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110707 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140715 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4782315 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |