JP2002222082A - 記録媒体およびプログラム - Google Patents

記録媒体およびプログラム

Info

Publication number
JP2002222082A
JP2002222082A JP2001357893A JP2001357893A JP2002222082A JP 2002222082 A JP2002222082 A JP 2002222082A JP 2001357893 A JP2001357893 A JP 2001357893A JP 2001357893 A JP2001357893 A JP 2001357893A JP 2002222082 A JP2002222082 A JP 2002222082A
Authority
JP
Japan
Prior art keywords
class
information
source file
influence
affected
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
Application number
JP2001357893A
Other languages
English (en)
Inventor
Riyouko Fujikawa
亮子 藤川
Yasuyuki Fujikawa
泰之 藤川
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 JP2001357893A priority Critical patent/JP2002222082A/ja
Publication of JP2002222082A publication Critical patent/JP2002222082A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 オブジェクト指向言語で記述されたソースフ
ァイルに含まれる所定のクラスを変更する場合に影響を
受けるクラスおよびそのメンバを特定する。 【解決手段】 入力手段2aは、解析対象となるソース
ファイル1を入力し、参照関係調査手段2bに供給す
る。参照関係調査手段2bは、クラスとクラスに含まれ
ているメソッドの参照関係を調査する。具体的には、参
照関係調査手段2bは、クラスの定義に係るクラス定義
情報と、クラスメンバの定義に係るクラスメンバ定義情
報と、クラスメンバの内容に係るクラスメンバ内容情報
とを生成するとともに、クラス間の継承関係およびクラ
スの呼び出し関係を示す参照関係情報を生成し、影響ク
ラス特定手段2cに供給する。影響クラス特定手段2c
は、変更クラス名の入力を受け、クラス定義情報、クラ
スメンバ定義情報、クラスメンバ内容情報、および、参
照関係情報を参照して、影響クラス3を特定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は記録媒体およびプロ
グラムに関し、特に、オブジェクト指向言語で記述され
たソースファイルを解析する処理をコンピュータに機能
させるプログラムを格納したコンピュータ読み取り可能
な記録媒体およびプログラムに関する。
【0002】
【従来の技術】従来、手続き記述言語である、例えば、
COBOL(Common Business Oriented Language)に
よって記述されたソースファイルを変更する場合には、
その変更によって影響を受けるプログラムの部位を特定
し、それらの部位が誤動作しないように配慮しながらデ
バッグやアップデート等が行われていた。
【0003】図32は、従来において、ソースファイル
を変更する際に、影響を受ける部位を特定するために使
用されていたクロスレファレンスと呼ばれる影響検索機
能について説明する図である。図32(A)は、変更の
対象となるソースファイルである。この例では、プログ
ラムAおよびプログラムCがCOPY A1とサブルー
チンB(PROGRAM SUB B)とを利用する構
造となっている。
【0004】このようなソースファイルに対して影響検
索を行うと、図32(B)に示すような結果が得られ
る。この例では、各列にはプログラムの種類が列記さ
れ、各行には利用されるCOPYが列記され、利用関係
が存在する箇所には「○」が付されている。このような
表を用いることにより、例えば、COPY A1を利用
しているプログラムがプログラムAおよびプログラムC
であることを即座に理解することができる。
【0005】
【発明が解決しようとする課題】このような手続き記述
言語の場合には、メインのプログラムが共通機能(サブ
ルーチンまたは部品等)を呼び出すという構造が明確で
あり、また、呼び出し名の一意性が保証されていたた
め、1対1のクロスレファレンスという態様で修正の際
の影響を特定することが可能であった。
【0006】しかしながら、近年において主流となって
いるオブジェクト指向言語の場合では、プログラムは属
性(データ)と、操作(メソッド)を有するクラスとし
て定義され、計算機上でオブジェクトとして実体化さ
れ、オブジェクト同士がメッセージを授受することで動
作する構造が採用されている。
【0007】オブジェクト指向言語では、継承により親
クラス(スーパークラス)が提供する属性や操作を子ク
ラス(サブクラス)が引き継ぐことが可能である。この
ような仕組みにより、あるクラスについて変更を加える
場合には、その子クラスのみならず、更に下位のクラス
(孫クラス、ひ孫クラス、・・・)についても参照状況
を調査する必要が生じ、1対1の対応関係ではないこと
から、影響範囲の把握を困難としているという問題点が
あった。
【0008】また、オブジェクト指向言語では、名称が
同一で引数の数または型が異なるクラス(またはメソッ
ド)を多重に定義するいわゆる「オーバーロード」が可
能である。また、スーパークラスのメソッドやメンバ変
数をサブクラスにおいて再定義するいわゆる「オーバー
ライド」も可能である。このような事情から、操作名
(メソッド名)と、処理内容とは1対1で対応するとは
限らず、操作名のみを用いて参照関係の特定を行うこと
が困難であるという問題点があった。
【0009】このようなオブジェクト指向言語に特有の
問題から、従来においては、クラス間の関連やクラスの
使用関係の調査については設計書等を参照して手作業で
行われていたため、多大な労力を要するとともに、注意
不足等に起因して見落としが発生する可能性が高く、そ
の結果、プログラムのデバッグ作業に多大な時間を要す
る結果となるという問題点もあった。
【0010】更に、クラス同士の参照関係を調査するこ
とが困難であることから、プログラムが変更された後
に、未使用のクラスが残存してしまう場合があり、その
ような場合にはリソースが不要に消費されてしまうとい
う問題点もあった。
【0011】本発明はこのような点に鑑みてなされたも
のであり、オブジェクト指向言語の影響検索を容易に行
うことが可能なソースファイル解析方法およびそのよう
な方法をコンピュータに機能させるプログラムを記録し
た記録媒体およびプログラムを提供することを目的とす
る。
【0012】
【課題を解決するための手段】本発明では上記課題を解
決するために、オブジェクト指向言語で記述されたソー
スファイルを解析する図1に示すような処理をコンピュ
ータに機能させるプログラムを格納したコンピュータ読
み取り可能な記録媒体において、コンピュータを、解析
対象となるソースファイルを入力する入力手段2a、前
記入力手段2aによって入力されたソースファイルに含
まれているクラスの参照関係を調査する参照関係調査手
段2b、前記参照関係調査手段2bによる調査結果に基
づいて、所定のクラスを変更した際に、影響を受けるク
ラスを特定する影響クラス特定手段2c、として機能さ
せるプログラムを記録したコンピュータ読み取り可能な
記録媒体が提供される。
【0013】ここで、入力手段2aは、解析対象となる
ソースファイルを入力する。参照関係調査手段2bは、
入力手段2aによって入力されたソースファイルに含ま
れているクラスの参照関係を調査する。影響クラス特定
手段2cは、参照関係調査手段2bによる調査結果に基
づいて、所定のクラスを変更した際に、影響を受けるク
ラスを特定する。
【0014】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、本発明のソースファイル
解析方法に係るソースファイル解析装置の動作原理を説
明する原理図である。
【0015】この図に示すように、ソースファイル解析
装置2は、解析の対象となるソースファイルを入力する
とともに、変更の対象となるクラス名を入力し、変更の
影響を受けるクラスを特定して解析結果として出力する
構成になっている。
【0016】ここで、ソースファイル解析装置2は、入
力手段2a、参照関係調査手段2b、および、影響クラ
ス特定手段2cによって構成されている。入力手段2a
は、解析対象となるソースファイル1を入力する。
【0017】参照関係調査手段2bは、入力手段2aに
よって入力されたソースファイルに含まれているクラス
の参照関係を調査する。影響クラス特定手段2cは、参
照関係調査手段2bによる調査結果に基づいて、所定の
クラスを変更した際に、影響を受けるクラスを特定し、
影響クラス3として出力する。
【0018】次に、以上の原理図の動作について説明す
る。入力手段2aは、解析対象となるソースファイル1
を入力し、参照関係調査手段2bに供給する。
【0019】参照関係調査手段2bは、クラスとクラス
に含まれているメンバの参照関係を調査する。具体的に
は、参照関係調査手段2bは、クラスの定義に係るクラ
ス情報と、クラスメンバの定義に係るクラスメンバ情報
と、クラスメンバの内容に係るクラスメンバ内容情報と
を生成するとともに、クラス間の継承関係およびクラス
の呼び出し関係を示すクラス参照情報を生成し、影響ク
ラス特定手段2cに供給する。
【0020】一例を挙げると、「ClassA」が「C
lassB」に継承され、「ClassA」のメソッド
AAを「ClassC」が参照しており、「Class
A」を「ClassD」がインスタンス化して参照して
いるとすると、「ClassB」、「ClassC」、
「ClassD」は、「ClassA」に対して参照関
係を有することになるので、参照関係調査手段2bは、
このような参照関係を特定してクラス参照情報を生成す
るとともに、「ClassA」、「ClassB」、
「ClassC」、および、「ClassD」のそれぞ
れに関するクラス情報、クラスメンバ情報、および、ク
ラスメンバ内容情報を生成する。
【0021】影響クラス特定手段2cは、変更クラスを
入力し、参照関係調査手段2bによる調査結果であるク
ラス情報、クラスメンバ情報、クラスメンバ内容情報、
および、参照関係情報を参照し、変更クラスと参照関係
を有するサブクラスおよびメソッドを特定し、これらを
影響クラス3として出力する。
【0022】先の例では、「ClassA」が変更クラ
スとして指定された場合には、その下位に属する「Cl
assB」、「ClassC」、および、「Class
D」が影響クラスとして特定されることになる。その結
果、「ClassA」を変更した際に、影響を被る他の
クラスおよびメンバを特定することが可能となる。
【0023】次に、本発明の実施の形態について説明す
る。図2は、本発明のソースファイル解析方法に係るソ
ースファイル解析装置の実施の形態の構成例を示すブロ
ック図である。この図に示すように、ソースファイル解
析装置10は、CPU(Central Processing Unit)1
0a、ROM(ReadOnly Memory)10b、RAM(Ran
dom Access Memory)10c、HDD(HardDisk Driv
e)10d、GB(Graphics Board)10e、I/F(I
nterface)10f、および、バス10gによって構成さ
れており、外部には表示装置11および入力装置12が
接続されている。
【0024】CPU10aは、HDD10dに格納され
ているプログラムに従って、装置全体を制御するととも
に、各種演算処理を実行する。ROM10bは、CPU
10aが実行する基本的なプログラムやデータを格納し
ている。
【0025】RAM10cは、CPU10aが実行中の
プログラムや、演算途中のデータを一時的に格納する。
HDD10dは、装置全体を管理する基本的なプログラ
ムであるOS(Operating System)や、ソースファイル
解析を行うためのアプリケーションプログラム、およ
び、解析の対象となるソースプログラムや解析結果のデ
ータを格納する。
【0026】GB10eは、CPU10aから供給され
た描画命令に従って、描画処理を実行し、得られた画像
データを映像信号に変換して出力する。I/F10f
は、入力装置12から供給されたデータを、装置内部の
表現形式に変換する。
【0027】バス10gは、CPU10a、ROM10
b、RAM10c、HDD10d、GB10e、およ
び、I/F10fを相互に電気的に接続し、これらの間
でデータの授受を可能とする。
【0028】表示装置11は、例えば、CRT(Cathod
e Ray Tube)モニタによって構成されており、GB10
eから出力された映像信号を表示する。入力装置12
は、例えば、キーボードやマウスによって構成されてお
り、ユーザの操作に応じたデータを生成して出力する。
【0029】ところで、このようなソースファイル解析
装置10により、ソースファイルを解析する際には、H
DD10dに格納されているOSが起動され、その管理
の下で、ソースファイル解析方法を実現するためのアプ
リケーションプログラムが実行される。
【0030】図3は、ソースファイル解析方法を実現す
るためのアプリケーションプログラムが実行された際に
形成される機能ブロックを説明するための図である。こ
の図において、ソースプログラム20は、HDD10d
に格納されている、解析対象となるプログラムであり、
JAVA(登録商標)等のオブジェクト指向言語で記述
されている。
【0031】クラス解析情報登録処理部21は、ソース
プログラム20に対して解析処理を施すとともに、解析
の結果生成された解析情報を、データベース22に登録
する。
【0032】データベース22は、クラスの定義に係る
情報を格納したクラス定義情報DB(Data Base)22
aと、クラスの参照関係に係る情報を格納したクラス参
照情報DB22bによって構成されている。
【0033】ここで、クラス定義情報30は、図4に示
すように、クラスの定義を示すクラス情報30a、クラ
スに含まれているメンバを示すクラスメンバ情報30
b、および、クラスメンバの内容を示すクラスメンバ内
容情報30cによって構成されている。
【0034】また、クラス参照情報31は、同じく図4
に示すように、クラスと利用クラスとの参照関係を示す
クラス参照情報31aによって構成されている。図5
は、クラス定義情報とクラス参照情報の詳細を示す図で
ある。この図に示すように、クラス情報は、クラス名、
パッケージ名、親クラス、スコープ、および、ファイル
名から構成されるクラス定義を有している。
【0035】クラスメンバ情報は、変数名、変数クラ
ス、初期値、および、スコープから構成される変数定義
と、メソッド名、戻り値クラス、パラメタ名、パラメタ
クラス、スコープ、および、例外クラスから構成される
メソッド定義とを有している。
【0036】クラスメンバ内容情報は、変数名、変数ク
ラス、および、初期値から構成されるローカル変数定義
と、呼び出しメソッド名、および、利用クラスから構成
されるメソッド呼び出しと、利用クラスから構成される
キャスト利用と、throwクラス、および、catc
hクラスとから構成される例外利用とを有している。
【0037】また、クラス参照情報は、クラス、利用種
類、利用クラス、および、利用名を有している。図3に
戻って、クラス影響検索処理部23は、入力された条件
24に該当するクラスを、データベース22から検索
し、得られた結果25を出力する。
【0038】次に、以上の実施の形態の具体的な動作に
ついて説明する。図6は、本実施の形態において解析の
対象となるソースファイルに含まれているクラスの階層
構造の一例を示す図である。この例では、最上位のクラ
スとしては、「ClassA」、「ClassAA」、
および、「Exception」が存在している。「C
lassA」の下層には、「ClassB」、「Cla
ssC」、および、「ClassD」が従属し、「Cl
assB」の下層には「ClassE」が従属してい
る。
【0039】また、「ClassAA」の下層には、
「ClassBB」、「ClassCC」、および、
「ClassDD」が従属し、「ClassBB」の下
層には「ClassEE」が従属している。
【0040】更に、「Exception」の下層に
は、「BBException」が従属している。図7
は、「ClassA」のソースファイルの一例を示す図
である。この例では、第1行目にパッケージ名である
「Package co.jp.xxx.aaa」が記
述されている。第2行目以降は、「ClassA」の具
体的な定義となっており、第3行目にてストリング変数
xが宣言され、第4行目〜6行目にて戻り値を有しない
(void)、パブリック(public)なメソッド
である「methodA1」が定義されている。また、
第7行目〜第9行目では、戻り値を有しないパブリック
なメソッドである「display」が定義されてい
る。
【0041】図8は、「ClassB」のソースファイ
ルの一例を示す図である。この例では、第1行目にパッ
ケージ名である「Package co.jp.xx
x.aaa」が記述されている。第2行目以降は、「C
lassB」の具体的な定義となっており、第2行目に
て「ClassB」が「ClassA」を継承(ext
ends)することが宣言されている。第3行目および
第4行目では、「ClassDD」と「ClassE
E」のそれぞれのオブジェクトd,eが生成されてい
る。第5行目〜第13行目では、論理型(bool)の
データを戻り値とするパブリックなメソッド「meth
odB1」が定義されている。第6行目〜第9行目は
「methodB1」のメイン処理であり、スーパーク
ラスである「ClassA」のメソッドである「met
hodA1」および「displayx」が呼び出され
ており、また、オブジェクト「e」のメソッドである
「methodEE」が呼び出されている。
【0042】第10行目〜第12行目は、第6行目〜第
9行目の処理において、エラー等の例外が発生した場合
に実行される例外処理であり、エラーが発生した旨と、
そのエラーコードを表示するためのメソッドを呼び出し
ている。
【0043】以上のようなソースファイルに含まれてい
る所定のクラスを変更した場合にその影響を受けるクラ
スを特定するためには、先ず、解析の対象となるクラス
を指定する必要がある。このような解析対象となるクラ
スを指定する方法として、本実施の形態では、図9に示
す画面40から、所望のクラスを指定することにより、
解析対象のクラスを選択することができる。
【0044】この画面40では、解析対象が表示される
表示領域40a、解析結果のデータを登録するデータベ
ースを指定するテキストボックス40b、および、登録
の進行状況を示すインジケータ40c、および、各種ボ
タン40d〜40hが表示されている。
【0045】ここで、表示領域40aには、解析の対象
として選択されたクラスが一覧表示される。テキストボ
ックス40bには、解析の結果得られたクラス定義情報
と、クラス参照情報を登録するデータベース名を入力す
る。
【0046】インジケータ40cは、解析処理が開始さ
れた場合に、処理の進行状況が表示される。ボタン40
dは、解析対象となるクラスが含まれているフォルダを
追加する際に操作される。ボタン40eは、解析対象と
なるクラスが含まれているファイルを追加する際に操作
される。ボタン40fは不要なファイルまたはフォルダ
を削除する際に操作される。
【0047】ボタン40gは、データベース名を入力す
る際に、既存のフォルダやファイル名を参照する際に操
作される。ボタン40hは、入力された内容で、対象と
なるクラスを解析して登録する際に操作される。
【0048】このような画面40において、表示領域4
0aに表示される内容を参照しつつ、ボタン40d〜4
0fを操作することにより、解析対象となるフォルダま
たはファイルを選択した後、参照ボタン40gを適宜操
作して、解析結果のデータを登録するデータベース名を
テキストボックス40bに入力し、登録開始ボタン40
hを操作すると、クラス解析情報登録処理部21は、指
定されたファイルを指定されたフォルダから読み出し、
解析処理を実行する。その際に、処理の進行状況がイン
ジケータ40cに表示される。
【0049】クラス解析情報登録処理部21は、指定さ
れたファイルを1つずつ読み込み、構文解析を行うが、
一例として、図7に示すソースファイルが解析対象とさ
れた場合には、クラス定義情報として以下の情報が抽出
されることになる。 (1)クラス情報 クラス名:ClassA クラスID:11(ユニークな番号を自動的に採番) 親クラス:なし スコープ:public パッケージ名:co.jp.xxx.aaa.Clas
sA (2)クラスメンバ情報 変数:x クラスメンバID:1111(ユニークな番号を自動的
に採番) 変数名:x 変数クラス:String メソッド:methodA1 クラスメンバID:1112(ユニークな番号を自動的
に採番) メソッド名:methodA1 メソッド戻り値クラス:なし メソッドパラメタ名:a メソッドパラメタクラス:String また、図8に示すソースファイルが解析対象とされた場
合には、クラス定義情報として以下の情報が抽出される
ことになる。 (1)クラス情報 クラス名:ClassB クラスID:22(ユニークな番号を自動的に採番) 親クラス:ClassA スコープ:public パッケージ名:co.jp.xxx.aaa.Clas
sB (2)クラスメンバ情報 変数:e クラスメンバID:1121(ユニークな番号を自動的
に採番) 変数名:e 変数クラス:ClassEE メソッド:methodB1 クラスメンバID:1122(ユニークな番号を自動的
に採番) メソッド名:methodB1 メソッド戻り値クラス:bool メソッドパラメタ名:なし メソッドパラメタクラス:なし (3)クラスメンバ内容テーブル メソッド:methodB1 メソッド呼び出しの情報格納例 クラスメンバ内容ID:3322(ユニークな番号を自
動的に採番) クラスメンバID:1122 利用種類:メソッド呼び出し メソッド呼び出し名:super.methodA
1(”call from ClassB”) メソッド呼び出しクラス名:ClassA 例外catchの情報格納例 クラスメンバ内容ID:3323(ユニークな番号を自
動的に採番) クラスメンバID:1122 利用種類:例外のキャッチ 呼び出し名:BBException 呼び出しクラス名:Exception クラス解析情報登録処理部21は、指定された全てのソ
ースファイルに対して以上のような解析処理を施し、抽
出したそれぞれのソースファイルのクラス情報、クラス
メンバ情報、および、クラスメンバ内容情報を総合し
て、クラス定義情報DB22aに登録する。
【0050】図10〜図14は、以上の処理によって生
成されたクラス定義情報DB22aに格納される情報の
一例を示す図である。図10は、クラス情報を格納した
クラステーブルの一例を示す図である。この例では、抽
出されたそれぞれのクラスのクラスID、クラス名、パ
ッケージ名、親クラス名、親クラスID、および、スコ
ープが登録されている。例えば、第3行目の「Clas
sB」の例では、クラスIDは「22」であり、パッケ
ージ名は「co.jp.xxx.aaa.Class
B」であり、親クラス名は「ClassA」であり、ス
コープは「public」とされている。なお、親クラ
スIDは、後述する処理によって追加されるので、未格
納の状態とされている。
【0051】図11は、変数に関するクラスメンバ情報
を格納したクラスメンバテーブルの一例を示す図であ
る。この例では、変数xと変数eに関する情報が登録さ
れており、登録項目としてはクラスメンバID、クラス
ID、種類、名前、利用クラス名、および、利用クラス
IDが含まれている。なお、利用クラスIDは、後述す
る処理によって追加されるので、未格納の状態とされて
いる。
【0052】図12は、メソッドに関するクラスメンバ
情報を格納したクラスメンバテーブルの一例を示す図で
ある。この例では、「methodA1」と「meth
odB1」に関する情報が登録されており、登録項目と
してはクラスメンバID、クラスID、種類、名前、戻
り値クラス名、戻り値クラスID、パラメタ名、パラメ
タクラス名、および、パラメタクラスIDが挙げられて
いる。なお、戻り値クラスIDおよびパラメタクラスI
Dは、後述する処理によって付加されるので、未格納の
状態とされている。
【0053】図13は、メソッド呼び出しに関するクラ
スメンバ内容情報を格納したクラスメンバ内容テーブル
の一例を示す図である。この例では、「super.m
ethodA1(”call from Class
B”)」に関する情報が登録されており、登録項目とし
てはクラスメンバID、クラスID、種類、呼び出し
名、利用クラス名、および、利用クラスIDが挙げられ
ている。なお、利用クラスIDは、後述する処理によっ
て付加されるので、未格納の状態とされている。
【0054】図14は、例外キャッチ(catch)に
関するクラスメンバ内容情報を格納したクラスメンバ内
容テーブルの一例を示す図である。この例では、呼び出
し名が「BBException」である例外キャッチ
に関する情報が登録されており、登録項目としてはクラ
スメンバID、クラスID、種類、呼び出し名、パラメ
タ名、例外クラス名、および、例外クラスIDが挙げら
れている。なお、例外クラスIDは、後述する処理によ
って付加されるので、未格納の状態とされている。
【0055】以上のようにして、クラス定義情報が生成
されると、クラス解析情報登録処理部21は、クラス参
照情報を生成する。本実施の形態では、前述した図10
〜図14の空欄とされている部分に該当するデータを抽
出することにより、参照情報を生成し、これをまとめる
ことにより、結果的にクラス参照情報を生成する。
【0056】図15は、前述した図10に示すクラステ
ーブルの親クラスIDに対して、該当するデータを格納
した場合の一例を示す図である。例えば、「Class
A」の親クラスは存在しないことから、親クラスIDは
空欄とされている。また、「ClassB」〜「Cla
ssD」の親クラスは、「ClassA」であり、その
クラスIDは、「11」であることから、これらの親ク
ラスIDとして「11」が格納される。同様にして他の
親クラスIDも該当するデータが格納される。
【0057】図16は、図11に示す変数に関するクラ
スメンバテーブルの利用クラスIDに対して該当するデ
ータを格納した場合の一例を示す図である。例えば、変
数eの場合、利用クラスは「ClassEE」であるの
で、利用クラスIDとして「115」が格納されてい
る。
【0058】図17は、図12に示すメソッドに関する
クラスメンバテーブルの戻り値クラスIDと、パラメタ
クラスIDに対して該当するデータを格納した場合の一
例を示す図である。例えば、「methodA1」の場
合、戻り値クラスは存在しないので、戻り値クラスID
は空欄とされており、また、パラメタクラスは「Str
ing」であるので該当するクラスIDとして「1」が
格納されている。
【0059】図18は、図13に示すメソッド呼び出し
に関するクラスメンバ内容テーブルの利用クラスIDに
対して該当するデータを格納した場合の一例を示す図で
ある。「super.methodA1(”call
from ClassB”)」の場合、利用クラスは
「ClassA」であるので、該当するクラスIDとし
て「11」が格納されている。
【0060】図19は、図14に示す例外キャッチに関
するクラスメンバ内容テーブルの例外クラスIDに対し
て該当するデータを格納した場合の一例を示す図であ
る。呼び出し名が「BBException」の例外キ
ャッチの場合、例外クラス名は「BBExceptio
n」であるので、該当する例外クラスIDとして「11
11」が格納されている。
【0061】続いて、クラス解析情報登録処理部21
は、以上のようにして生成した情報を参照し、クラスど
うしの参照関係を抽出する。抽出する内容としては、利
用種類(継承、インターフェース、変数等)、利用元ク
ラスID、利用先クラスID、および、利用名を抽出す
る。なお、利用関係詳細情報としては以下の種類の情報
を抽出する。
【0062】メソッドパラメタ利用 メソッド戻り値利用 メソッド例外利用 メソッド内メソッド呼び出し利用 メソッド内キャスト利用 メソッド内catch例外利用 具体例を挙げて説明すると、「ClassB」を対象と
するクラス参照情報としては、図20に示すようなテー
ブルが生成されることになる。この例では、「継承」、
「変数」、「メソッドパラメタ」、「メソッド戻り
値」、「メソッド内メソッド呼び出し」、および、「メ
ソッド内catch例外」が利用種類として抽出されて
おり、それぞれについて、利用クラス、利用メンバ、参
照クラス、および、利用名が格納されている。例えば、
「継承」の場合、「ClassB」は「ClassA」
を継承しているので、利用クラスとしてClassBを
示す「22」と、参照クラスとして「ClassA」を
示す「11」と、利用名として「ClassA」が格納
されている。
【0063】このようにして抽出された各クラスの参照
情報は、まとめられてクラス参照情報DB22bに格納
される。その結果、クラス定義情報DB22aとクラス
参照情報DB22bには、対象となるソースプログラム
20を解析した結果が格納されることになる。
【0064】次に、このようにしてクラス定義情報DB
22aと、クラス参照情報DB22bに登録された情報
を参照し、特定のクラスを変更した場合に影響を被るク
ラスを検索する場合の処理について説明する。
【0065】クラス影響検索処理部23が起動される
と、例えば、図21に示すような画面70が表示装置1
1に表示されることになる。この画面70では、クラス
を検索する際に操作されるボタン70a、クラスを再検
索する際に操作されるボタン70b、より詳細な項目に
ついて検索をする際に操作されるボタン70c、詳細な
検索を再度行う際に操作されるボタン70d、ファイル
を検索する際に操作されるボタン70e、および、どの
クラスからも参照されていない未使用資産を検索する際
に操作されるボタン70fが表示されている。その下の
表示領域70gには、クラスの階層構造を示す樹形図が
表示される。また、表示領域70hには、検索結果が表
示される。
【0066】この図の表示領域70gにおいて「Cla
ssA」の左に表示されているチェックボックスをチェ
ックし、クラス検索を行うためのボタン70aを操作す
ると、クラス影響検索処理部23は、「ClassA」
を利用しているクラスをクラス参照情報DB22bから
検索する。いまの例では、「ClassB」、「Cla
ssC」、および、「ClassD」が「Class
A」を継承していることから、これらが影響クラスとし
て取得される。
【0067】続いて、クラス影響検索処理部23は、取
得されたクラスが下位のクラスを有している場合には、
その下位クラスについても同様の検索を行う。いまの例
では、「ClassB」が下位クラスを有しているの
で、該当する「ClassE」が取得されることにな
る。このような処理は、該当する下位クラスが存在しな
くなるまで繰り返される。
【0068】このようにしてクラスの検索が完了する
と、クラス影響検索処理部23は、検索結果を、図21
に示す表示領域70hに一覧表示する。このような表示
を参照することにより、ユーザは、「ClassA」を
変更した場合に影響を被るクラスについて知ることがで
きる。
【0069】以上の実施の形態では、樹形図上において
所望のクラスを指定するようにしたが、ファイル名から
目的のクラスを指定することも可能である。図22は、
そのような場合に対応する検索画面の表示例である。
【0070】この画面80では、検索しようとするファ
イルの名前を入力するテキストボックス80a、ファイ
ルに含まれている文字列を入力するテキストボックス8
0b、ファイルを探す場所を入力するテキストボックス
80cが表示されており、テキストボックス80cの右
隣りには検索対象となるフォルダを指定する際に操作さ
れるボタン80dが表示されている。
【0071】また、画面80の右上に表示されているボ
タン80eは、入力された条件で検索を実行する際に操
作される。ボタン80fは、入力された条件をクリアす
る際に操作される。
【0072】表示領域80gには、検索の結果が一覧表
示される。ボタン80hは、表示領域80gに表示され
ている項目を選択し、その選択した項目についてクラス
検索を行う場合に操作される。
【0073】ボタン80iは、表示領域80gに表示さ
れている項目を選択し、その選択した項目について詳細
検索を行う場合に操作される。ボタン80jは、選択内
容をキャンセルする際に操作され、ボタン80kは、操
作等に関するヘルプ画面を表示する際に操作される。
【0074】このような画面80において、名前として
「ClassA*」がテキストボックス80aに入力さ
れ、探す場所として「c:¥temp」がテキストボッ
クス80cに入力されたとする。なお、「*」はワイル
ドカードであり、任意の文字または文字列を示す。この
ような状態において、ボタン80eが操作されたとする
と、クラス影響検索処理部23は、文字列「Class
A*」を含むクラスを、「c:¥temp」から検索
し、得られた結果を表示領域80gに一覧表示する。こ
の例では、「ClassA」と「ClassAA」が検
索結果として表示されている。
【0075】続いて、表示領域80gの左端にあるチェ
ックボックスのうち、「ClassA」の左隣りに配置
されているチェックボックスをチェックした後、ボタン
80hを操作すると、前述の場合と同様に「Class
A」に対するクラス検索が実行され、図21に示す画面
70の表示領域70hに表示されているのと同様の内容
が表示されることになる。
【0076】次に、図23に示す画面70において、
「ClassEE」を検索対象として選択し、クラス検
索を行ったとする。図8に示すように、「ClassE
E」は、「ClassB」の第4行目においてインスタ
ンス化されており、第9行目においてそのメソッドが呼
び出されている。従って、「ClassEE」に対して
行った変更は、「ClassB」にも波及することにな
るので、クラス検索の結果、図23の表示領域70hに
示すように、影響クラスとして「ClassB」が表示
され、影響プロパティとして「e」と「methodB
1」が表示されることになる。
【0077】このような画面70を参照することによ
り、「ClassEE」を変更した場合において影響を
被るクラスとプロパティを特定することが可能となる。
次に、メソッドを変更した場合における影響範囲を特定
するためのメソッド影響検索(詳細検索)について説明
する。例えば、図21に示す画面70の表示領域70g
において、「ClassEE」を選択し、ボタン70c
を操作すると、図24に示す画面90が表示される。こ
の画面90では、「ClassEE」に含まれているメ
ソッドが表示領域90aに一覧表示されている。
【0078】このような画面90において、例えば、第
1行目に表示されている「methodEE」を選択
し、ボタン90bを操作すると、クラス影響検索処理部
23は、指定された「methodEE」が変更された
場合に影響を被るクラスを、図20に示すクラス参照テ
ーブルから検索する。即ち、クラス参照テーブルにおい
て、参照クラスが指定された変更クラスと一致し、利用
種類がメソッド呼び出しであり、かつ、メソッド呼び出
し名が一致する項目を検索する。いまの例では、「Cl
assEE」の「methodEE」を呼び出している
全てのクラスが特定され、図25に示すような検索結果
を示す画面70が表示されることになる。この例では、
表示領域70hに対して、「ClassEE」の「me
thodEE」を変更した場合に影響を被る影響クラス
として「ClassB」が、また、影響プロパティとし
て「methodB1」が、更に、呼び出し名として
「e.methodB1」が表示されている。
【0079】このような検索結果を参照することによ
り、あるメソッドを変更した場合に、その変更の影響を
被るクラスとそのメソッドを特定することが可能とな
る。次に、図25に示す画面70において、未使用資産
を検索するためのボタン70fが操作された場合の動作
について説明する。
【0080】このボタン70fが操作されると、クラス
影響検索処理部23は、クラステーブルに定義されてい
るにも拘わらず、クラス参照情報テーブルの参照クラス
に一度も出現しないクラスを検索する。
【0081】即ち、クラス影響検索処理部23は、図2
6に示すように、クラス参照情報テーブルの参照クラス
と、クラステーブルのクラスIDとを照合し、参照クラ
スに一度も出現しないクラスIDが存在するか否かを判
定する。そして、存在する場合には、該当するクラスを
取得し、図27に示すように、未使用資産一覧画面10
0に表示する。
【0082】この例では、未使用クラスとして、「Cl
assCC」と「ClassBB」が表示領域100a
に表示されており、そのパッケージ名とソースファイル
名が表示されている。
【0083】このような機能を用いることにより、どの
クラスからも参照されていない、いわば不要なクラスを
特定し、これを削除することにより、プログラムをスリ
ム化し、メモリ等の必要量を削減することが可能とな
る。
【0084】次に、以上の実施の形態において実行され
るフローチャートについて説明する。図28は、ソース
ファイルを解析し、クラス情報、クラスメンバ情報、ク
ラスメンバ内容情報、および、クラス参照情報を生成す
るフローチャートの一例である。このフローチャートが
開始されると、以下のステップが実行される。
【0085】ステップS10:クラス解析情報登録処理
部21は、クラス抽出条件を読み込む。なお、クラスの
抽出条件としては、図9に示す画面40から入力された
内容を用いる。なお、それ以外にも、抽出条件を記述し
たファイルやレジストリから情報を入力するようにして
もよい。
【0086】ステップS11:クラス解析情報登録処理
部21は、解析対象となるソースファイルをHDD10
dから読み込む。
【0087】ステップS12:クラス解析情報登録処理
部21は、ソースファイルの読み込みが終了したか否か
を判定し、読み込みが終了した場合にはステップS16
に進み、それ以外の場合にはステップS13に進む。
【0088】ステップS13:クラス解析情報登録処理
部21は、クラス情報およびクラスメンバ情報をソース
ファイルから抽出し、データベース22のクラス定義情
報DB22aに登録する。
【0089】ステップS14:クラス解析情報登録処理
部21は、詳細情報(クラスメンバ内容情報)の抽出を
除外するか否かを判定し、詳細情報の抽出を除外する場
合にはステップS11に進み、それ以外の場合にはステ
ップS15に進む。具体的には、パッケージが除外指定
されたパッケージと前方一致していない場合にはステッ
プS15に進む。
【0090】ステップS15:クラス解析情報登録処理
部21は、クラスメンバ詳細情報を抽出し、クラス定義
情報DB22aに登録した後、ステップS11に戻って
前述の場合と同様の処理を繰り返す。
【0091】ステップS16:クラス解析情報登録処理
部21は、各クラスを参照している関係を全てリンクす
ることにより、クラスリンク情報を登録する。
【0092】ステップS17:クラス解析情報登録処理
部21は、ステップS16において登録したリンクを参
照し、クラス参照情報を生成した後、クラス参照情報D
B22bに登録する。
【0093】次に、図29を参照し、クラス影響検索を
行う際に実行されるフローチャートについて説明する。
このフローチャートが開始されると、以下のステップが
実行される。
【0094】ステップS30:クラス影響検索処理部2
3は、図21に示す画面70において入力された変更ク
ラス条件を読み込む。
【0095】ステップS31:クラス影響検索処理部2
3は、ステップS30において指定されたクラスを利用
しているクラスを、クラス参照情報DB22bから検索
する。
【0096】ステップS32:クラス影響検索処理部2
3は、対象となるクラスに下位クラスが存在するか否か
を判定し、存在する場合にはステップS33に進み、そ
れ以外の場合にはステップS34に進む。
【0097】ステップS33:クラス影響検索処理部2
3は、変更クラス条件、即ち、検索の対象となるクラス
をステップS32で特定した下位クラスに変更する。
【0098】ステップS34:クラス影響検索処理部2
3は、検索結果を生成し、例えば、図21に示す表示領
域70hに表示する。
【0099】次に、図30を参照して、メソッド影響検
索を行う場合に実行されるフローチャートについて説明
する。このフローチャートが開始されると、以下のステ
ップが実行される。
【0100】ステップS50:クラス影響検索処理部2
3は、変更しようとするメンバとそのクラスとを、変更
クラスメンバ条件として、例えば、図24に示す画面9
0から読み込む。
【0101】ステップS51:クラス影響検索処理部2
3は、指定されたクラスをメソッド呼び出しにより利用
しているクラスであって、メソッド呼び出しが指定され
た条件と一致するクラスを、クラス参照情報DB22b
から検索する。
【0102】ステップS52:クラス影響検索処理部2
3は、指定されたクラスに下位クラスが存在するか否か
を判定し、存在する場合にはステップS53に進み、そ
れ以外の場合にはステップS55に進む。
【0103】ステップS53:クラス影響検索処理部2
3は、ステップS52で特定した下位クラスに同一のメ
ソッドが存在するか否かを判定し、同一のメソッド(名
前、パラメタが一致)が存在する場合には、オーバーラ
イドされているので、その場合にはステップS55に進
み、それ以外の場合にはステップS54に進む。
【0104】ステップS54:クラス影響検索処理部2
3は、変更クラス条件を下位クラスに変更した後、ステ
ップS51に戻って前述の場合と同様の処理を繰り返
す。その結果、サブクラスが存在しなくなるまで同様の
処理が繰り返される。
【0105】ステップS55:クラス影響検索処理部2
3は、検索結果を生成し、例えば、図25に示すような
画面70に表示する。
【0106】次に、図31を参照して、未使用資産を検
索する際に実行されるフローチャートについて説明す
る。このフローチャートが開始されると、以下の処理が
実行される。
【0107】ステップS60:クラス影響検索処理部2
3は、検索対象の条件を受ける。具体的には、クラス影
響検索処理部23は、検索対象パッケージの指定を受け
る。
【0108】ステップS61:クラス影響検索処理部2
3は、参照クラスにおいて未参照のクラスを検索する。
【0109】ステップS62:クラス影響検索処理部2
3は、検索結果を生成し、例えば、図27に示すような
画面100に対して表示する。
【0110】以上、図28〜図31に示す処理によれ
ば、図3に示す実施の形態において実行される機能を実
現することが可能となる。なお、以上の実施の形態で
は、オブジェクト指向言語として、JAVAを例に挙げ
て説明したが、その他のオブジェクト指向言語に対して
本発明を適用することも可能である。
【0111】また、以上の実施の形態は、ほんの一例で
あるので、本発明はこのような場合のみに限定されるも
のではないことはいうまでもない。なお、上記の処理機
能は、コンピュータによって実現することができる。そ
の場合、ソースファイル解析装置が有すべき機能の処理
内容は、コンピュータで読み取り可能な記録媒体に記録
されたプログラムに記述されており、このプログラムを
コンピュータで実行することにより、上記処理がコンピ
ュータで実現される。コンピュータで読み取り可能な記
録媒体としては、磁気記録装置や半導体メモリ等があ
る。市場へ流通させる場合には、CD−ROM(Compact
Disk Read Only Memory)やフレキシブルディスク等の
可搬型記録媒体にプログラムを格納して流通させたり、
ネットワークを介して接続されたコンピュータの記憶装
置に格納しておき、ネットワークを通じて他のコンピュ
ータに転送することもできる。コンピュータで実行する
際には、コンピュータ内のハードディスク装置等にプロ
グラムを格納しておき、メインメモリにロードして実行
する。
【0112】(付記1) オブジェクト指向言語で記述
されたソースファイルを解析する処理をコンピュータに
機能させるプログラムを格納したコンピュータ読み取り
可能な記録媒体において、コンピュータを、解析対象と
なるソースファイルを入力する入力手段、前記入力手段
によって入力されたソースファイルに含まれているクラ
スの参照関係を調査する参照関係調査手段、前記参照関
係調査手段による調査結果に基づいて、所定のクラスを
変更した際に、影響を受けるクラスを特定する影響クラ
ス特定手段、として機能させるプログラムを記録したコ
ンピュータ読み取り可能な記録媒体。
【0113】(付記2) 前記参照関係調査手段は、前
記クラスの参照関係の調査結果に応じて、クラスの定義
内容に係るクラス定義情報と、クラスの参照関係に係る
クラス参照情報と有する調査結果情報を生成し、前記影
響クラス特定手段は、前記調査結果情報のうちクラス参
照情報を参照して、影響を受けるクラスを特定すること
を特徴とする付記1記載の記録媒体。
【0114】(付記3) 前記クラス定義情報は、クラ
スの定義に係るクラス情報と、クラスメンバの定義に係
るクラスメンバ情報と、クラスメンバの内容に係るクラ
スメンバ内容情報とを有し、前記影響クラス特定手段
は、検索対象となるクラスに応じて、前記クラス情報、
前記クラスメンバ情報、または、前記クラスメンバ内容
情報のうち、必要な情報を選択し、影響を受けるクラス
を特定する、ことを特徴とする付記2記載の記録媒体。
【0115】(付記4) 前記参照関係調査手段は、ソ
ースファイル単位の解析を行った後、データベース単位
で前記クラス定義情報と前記クラス参照情報を生成する
ことを特徴とする付記2記載の記録媒体。
【0116】(付記5) 前記影響クラス特定手段は、
変更の対象となるクラスに参照関係を有する下位のクラ
スを順次検索して影響の有無を特定することを特徴とす
る付記1記載の記録媒体。
【0117】(付記6) 前記影響クラス特定手段は、
所定のクラスのメンバが変更された場合に、その影響を
受けるクラスを特定することを特徴とする付記1記載の
記録媒体。
【0118】(付記7) 前記参照関係調査手段の調査
結果を参照し、他のクラスから参照されていない未使用
のクラスを検出する未使用クラス検出手段を更に有する
ことを特徴とする付記1記載の記録媒体。
【0119】(付記8) オブジェクト指向言語で記述
されたソースファイルを解析するソースファイル解析方
法において、解析対象となるソースファイルを入力する
入力ステップと、前記入力ステップによって入力された
ソースファイルに含まれているクラスの参照関係を調査
する参照関係調査ステップと、前記参照関係調査ステッ
プによる調査結果に基づいて、所定のクラスを変更した
際に、影響を受けるクラスを特定する影響クラス特定ス
テップと、を有することを特徴とするソースファイル解
析方法。
【0120】(付記9) オブジェクト指向言語で記述
されたソースファイルを解析する処理をコンピュータに
機能させるプログラムにおいて、コンピュータを、解析
対象となるソースファイルを入力する入力手段、前記入
力手段によって入力されたソースファイルに含まれてい
るクラスの参照関係を調査する参照関係調査手段、前記
参照関係調査手段による調査結果に基づいて、所定のク
ラスを変更した際に、影響を受けるクラスを特定する影
響クラス特定手段、として機能させるプログラム。
【0121】
【発明の効果】以上説明したように本発明では、オブジ
ェクト指向言語で記述されたソースファイルを解析する
処理をコンピュータに機能させるプログラムを格納した
コンピュータ読み取り可能な記録媒体およびプログラム
により、コンピュータを、解析対象となるソースファイ
ルを入力する入力手段、入力手段によって入力されたソ
ースファイルに含まれているクラスの参照関係を調査す
る参照関係調査手段、参照関係調査手段による調査結果
に基づいて、所定のクラスを変更した際に、影響を受け
るクラスを特定する影響クラス特定手段、として機能さ
せるようにしたので、オブジェクト指向言語で記述され
たソースファイルの所定のクラスを変更する際に、その
影響を受けるクラスを容易に特定することができる。
【図面の簡単な説明】
【図1】本発明の動作原理を説明する原理図である。
【図2】本発明の実施の形態の構成例を示す図である。
【図3】ソースファイル解析方法を実現するためのアプ
リケーションプログラムが実行された際に形成される機
能ブロックを説明するための図である。
【図4】クラス定義情報の構成例を示す図である。
【図5】クラス定義情報とクラス参照情報の詳細を示す
図である。
【図6】本実施の形態において解析の対象となるソース
ファイルに含まれているクラスの階層構造を示す図であ
る。
【図7】「ClassA」のソースファイルを示す図で
ある。
【図8】「ClassB」のソースファイルを示す図で
ある。
【図9】解析対象となるクラスを指定するための画面の
一例である。
【図10】クラス情報を格納したクラステーブルの一例
を示す図である。
【図11】変数に関するクラスメンバ情報を格納したク
ラスメンバテーブルの一例を示す図である。
【図12】メソッドに関するクラスメンバ情報を格納し
たクラスメンバテーブルの一例を示す図である。
【図13】メソッド呼び出しに関するクラスメンバ内容
情報を格納したクラスメンバ内容テーブルの一例を示す
図である。
【図14】例外キャッチ(catch)に関するクラス
メンバ内容情報を格納したクラスメンバ内容テーブルの
一例を示す図である。
【図15】図10に示すクラステーブルの親クラスID
に対して該当するデータを格納した場合の一例を示す図
である。
【図16】図11に示す変数に関するクラスメンバテー
ブルの利用クラスIDに対して該当するデータを格納し
た場合の一例を示す図である。
【図17】図12に示すメソッドに関するクラスメンバ
テーブルの戻り値クラスIDと、パラメタクラスIDに
対して該当するデータを格納した場合の一例を示す図で
ある。
【図18】図13に示すメソッド呼び出しに関するクラ
スメンバ内容テーブルの利用クラスIDに対して該当す
るデータを格納した場合の一例を示す図である。
【図19】図14に示す例外キャッチに関するクラスメ
ンバ内容テーブルの例外クラスIDに対して該当するデ
ータを格納した場合の一例を示す図である。
【図20】「ClassB」を対象として生成されるク
ラス参照情報の一例を示す図である。
【図21】クラス影響検索処理部が起動された場合に表
示される画面の一例を示す図である。
【図22】ファイル名から目的のクラスを指定する画面
の一例を示す図である。
【図23】クラス影響検索処理部が起動された場合に表
示される画面の一例を示す図である。
【図24】図21に示す画面の表示領域70gにおい
て、「ClassEE」を選択し、ボタン70cを操作
した場合に表示される画面の一例である。
【図25】図24に示すボタン90bが操作された場合
に表示される画面の一例である。
【図26】未使用資産を検索する際に、クラス参照情報
テーブルの参照クラスと、クラステーブルのクラスID
とを照合し、参照クラスに一度も出現しないクラスID
が存在するか否かを判定する場合の様子を示す図であ
る。
【図27】未使用資産を検索した際に表示される画面の
一例である。
【図28】ソースファイルを解析し、クラス情報、クラ
スメンバ情報、クラスメンバ詳細情報、および、クラス
参照情報を生成するフローチャートの一例である。
【図29】クラス影響検索を行う際に実行されるフロー
チャートの一例である。
【図30】メソッド影響検索を行う場合に実行されるフ
ローチャートの一例である。
【図31】未使用資産を検索する際に実行されるフロー
チャートの一例である。
【図32】従来において、ソースファイルを変更する際
に、影響を受ける部位を特定するために使用されていた
クロスレファレンスと呼ばれる影響検索機能について説
明する図である。
【符号の説明】
1 ソースファイル 2 ソースファイル解析装置 2a 入力手段 2b 参照関係調査手段 2c 影響クラス特定手段 3 影響クラス 10 ソースファイル解析装置 10a CPU 10b ROM 10c RAM 10d HDD 10e GB 10f I/F 10g バス 11 表示装置 12 入力装置 20 ソースプログラム 21 クラス解析情報登録処理部 22 データベース 22a クラス定義情報DB 22b クラス参照情報DB 23 クラス影響検索処理部 24 条件 25 結果

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向言語で記述されたソー
    スファイルを解析する処理をコンピュータに機能させる
    プログラムを格納したコンピュータ読み取り可能な記録
    媒体において、 コンピュータを、 解析対象となるソースファイルを入力する入力手段、 前記入力手段によって入力されたソースファイルに含ま
    れているクラスの参照関係を調査する参照関係調査手
    段、 前記参照関係調査手段による調査結果に基づいて、所定
    のクラスを変更した際に、影響を受けるクラスを特定す
    る影響クラス特定手段、 として機能させるプログラムを記録したコンピュータ読
    み取り可能な記録媒体。
  2. 【請求項2】 前記参照関係調査手段は、前記クラスの
    参照関係の調査結果に応じて、クラスの定義内容に係る
    クラス定義情報と、クラスの参照関係に係るクラス参照
    情報と有する調査結果情報を生成し、 前記影響クラス特定手段は、前記調査結果情報のうちク
    ラス参照情報を参照して、影響を受けるクラスを特定す
    ることを特徴とする請求項1記載の記録媒体。
  3. 【請求項3】 前記クラス定義情報は、クラスの定義に
    係るクラス情報と、クラスメンバの定義に係るクラスメ
    ンバ情報と、クラスメンバの内容に係るクラスメンバ内
    容情報とを有し、 前記影響クラス特定手段は、検索対象となるクラスに応
    じて、前記クラス情報、前記クラスメンバ情報、また
    は、前記クラスメンバ内容情報のうち、必要な情報を選
    択し、影響を受けるクラスを特定する、 ことを特徴とする請求項2記載の記録媒体。
  4. 【請求項4】 前記影響クラス特定手段は、所定のクラ
    スのメンバが変更された場合に、その影響を受けるクラ
    スを特定することを特徴とする請求項1記載の記録媒
    体。
  5. 【請求項5】 前記参照関係調査手段の調査結果を参照
    し、他のクラスから参照されていない未使用のクラスを
    検出する未使用クラス検出手段を更に有することを特徴
    とする請求項1記載の記録媒体。
  6. 【請求項6】 オブジェクト指向言語で記述されたソー
    スファイルを解析する処理をコンピュータに機能させる
    プログラムにおいて、 コンピュータを、 解析対象となるソースファイルを入力する入力手段、 前記入力手段によって入力されたソースファイルに含ま
    れているクラスの参照関係を調査する参照関係調査手
    段、 前記参照関係調査手段による調査結果に基づいて、所定
    のクラスを変更した際に、影響を受けるクラスを特定す
    る影響クラス特定手段、 として機能させるプログラム。
JP2001357893A 2000-11-24 2001-11-22 記録媒体およびプログラム Pending JP2002222082A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001357893A JP2002222082A (ja) 2000-11-24 2001-11-22 記録媒体およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-356878 2000-11-24
JP2000356878 2000-11-24
JP2001357893A JP2002222082A (ja) 2000-11-24 2001-11-22 記録媒体およびプログラム

Publications (1)

Publication Number Publication Date
JP2002222082A true JP2002222082A (ja) 2002-08-09

Family

ID=26604497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001357893A Pending JP2002222082A (ja) 2000-11-24 2001-11-22 記録媒体およびプログラム

Country Status (1)

Country Link
JP (1) JP2002222082A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123254A (ja) * 2006-11-13 2008-05-29 Nippon Shoken Technology Kk Java言語プログラムを用いた大規模業務系の影響分析ツール
JP2009251769A (ja) * 2008-04-02 2009-10-29 Hitachi Ltd クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置
JP2012038029A (ja) * 2010-08-05 2012-02-23 Toshiba Corp 自動書き換えプログラムおよび自動書き換え装置
JP2012203860A (ja) * 2011-03-28 2012-10-22 Toshiba Corp オントロジ更新装置、方法、およびシステム
JP2016053838A (ja) * 2014-09-03 2016-04-14 三菱電機株式会社 ソースコード解析装置及びソースコード解析方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123254A (ja) * 2006-11-13 2008-05-29 Nippon Shoken Technology Kk Java言語プログラムを用いた大規模業務系の影響分析ツール
JP2009251769A (ja) * 2008-04-02 2009-10-29 Hitachi Ltd クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置
JP2012038029A (ja) * 2010-08-05 2012-02-23 Toshiba Corp 自動書き換えプログラムおよび自動書き換え装置
JP2012203860A (ja) * 2011-03-28 2012-10-22 Toshiba Corp オントロジ更新装置、方法、およびシステム
JP2016053838A (ja) * 2014-09-03 2016-04-14 三菱電機株式会社 ソースコード解析装置及びソースコード解析方法及びプログラム

Similar Documents

Publication Publication Date Title
JP4365142B2 (ja) プロパティをオブジェクトに関連付けするための、コンピュータ可読媒体、システム、および、方法
US6571247B1 (en) Object oriented technology analysis and design supporting method
US7437722B2 (en) Determining which software component versions of an issue resolution are included in a version of a software development project at a particular time
US6668371B2 (en) Method and apparatus for software component analysis
US7194475B2 (en) Method, system, and program for performing an impact analysis of program statements in at least one source code file
JP5367947B2 (ja) 用語データベース拡張のための方法およびシステム
US8850388B2 (en) Controlling application features
US20080120601A1 (en) Information processing apparatus, method and program for deciding priority of test case to be carried out in regression test background of the invention
US20120110560A1 (en) Data type provider for a web semantic store
JP2005011345A (ja) コードセグメント作成方法及びそのシステム
Garcés et al. White-box modernization of legacy applications: The oracle forms case study
US8607197B2 (en) Displaying HTTP session entry and exit points
EP3314409B1 (en) Tracing dependencies between development artifacts in a software development project
US8776010B2 (en) Data type provider for a data store
JP2020119348A (ja) 解析プログラム、解析方法および解析装置
US7069542B2 (en) Method and system for incremental actions relating to notify and target models
US8032858B2 (en) Method and system for navigationally displaying HTTP session entry and exit points
JP4330559B2 (ja) グリーン調達装置及びグリーン調達処理プログラム
US20050246773A1 (en) System and methods for processing partial trust applications
JP2002222082A (ja) 記録媒体およびプログラム
US7707569B2 (en) Method and apparatus for customizing model to code transformations
US6735762B2 (en) Record medium and method for analyzing a source file
US20060225047A1 (en) Generic software requirements analyzer
JP4535906B2 (ja) Umlモデル作成支援方法及びその装置
JP2004310279A (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: 20061010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070508