JP2001125779A - オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体 - Google Patents

オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体

Info

Publication number
JP2001125779A
JP2001125779A JP30564399A JP30564399A JP2001125779A JP 2001125779 A JP2001125779 A JP 2001125779A JP 30564399 A JP30564399 A JP 30564399A JP 30564399 A JP30564399 A JP 30564399A JP 2001125779 A JP2001125779 A JP 2001125779A
Authority
JP
Japan
Prior art keywords
source file
file
configuration
configuration relationship
class
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
Application number
JP30564399A
Other languages
English (en)
Other versions
JP3531728B2 (ja
Inventor
Yukio Ozaki
裕毅男 尾崎
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP30564399A priority Critical patent/JP3531728B2/ja
Publication of JP2001125779A publication Critical patent/JP2001125779A/ja
Application granted granted Critical
Publication of JP3531728B2 publication Critical patent/JP3531728B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 オブジェクト指向型プログラミング言語にお
ける資産の構成関係を管理し、資産の利用状態を解析で
きる構成関係管理装置を提供する。 【解決手段】 資産の構成関係を抽出するために設定さ
れたキーワードをコメントとして含むソースファイルを
入力し、ソースファイル中のキーワードを参照してソー
スファイルの資産の構成関係を抽出すると共に、キーワ
ードに対応する構成関係出力用クラスをソースファイル
に埋め込むソースファイル解析部10と、構成関係出力
用クラスを埋め込まれたソースファイルからコンピュー
タで実行可能なプログラムを生成する実行可能ファイル
生成部30と、ソースファイルに書き込まれている全資
産の構成関係に関するデータファイルと、構成関係出力
用クラスを埋め込まれたプログラムを実行することによ
って得られる実資産の構成関係に関するデータファイル
とを比較して、資産の利用状態を解析する構成関係解析
部50とを備える。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、オブジェクト指向
型プログラミング言語で作成されたプログラムに対して
資産の構成関係を管理する構成関係管理装置及び構成関
係管理方法並びに構成関係管理プログラムを格納した記
憶媒体関する。
【0002】
【従来の技術】システム開発などの大規模なプログラミ
ング作業を行う場合、複数のプログラマーにより作業が
行われるため、作業全体の見通しを良くして効率よく作
業を行うためにプログラムにおける資産の構成関係を管
理することが必要である。また今日、システム開発など
にはオブジェクト指向型プログラミング言語が頻繁に用
いられるようになってきている。
【0003】オブジェクト指向型プログラミング言語に
おいて、資産とは、いくつかのオブジェクトに共通する
機能や性質(属性)を定義した「クラス」や、オブジェク
トの実行する手続きを記述した「メソッド(メンバ関
数)」等を意味する。また、構成関係とは、クラスとク
ラスの関係やクラスとメソッドの関係、メソッドの呼び
出し関係などを意味する。
【0004】従来、作成されたプログラムにおける資産
を解析して、構成関係を出力する手段(ツールなど)は
存在したが、いずれも作成されたプログラム自体を解析
して構成関係を抽出するものであり、当該プログラムの
実行時に実際に利用されている資産を解析するものでは
なかった。
【0005】
【発明が解決しようとする課題】上述したように、従
来、オブジェクト指向型プログラミング言語における構
成関係の管理手段は、実際にプログラムの実行時の動作
をトレースしないため、プログラムの実行時に実際に使
用されている実資産を検証することができなかった。そ
のため、プログラム中に実行時に実際には使用されない
無駄な資産が含まれてしまうおそれがあるという欠点が
あった。
【0006】本発明は、上記従来の欠点を解決し、オブ
ジェクト指向型プログラミング言語における資産の構成
関係を管理し、資産の利用状態を解析できる構成関係管
理装置及び構成関係管理方法並びに構成関係管理プログ
ラムを格納した記憶媒体を提供することを目的とする。
【0007】
【課題を解決するための手段】上記の目的を達成する本
発明の構成関係管理装置は、資産の構成関係を抽出する
ために設定されたキーワードをコメントとして含むソー
スファイルを入力し、該ソースファイル中の該キーワー
ドを参照して該ソースファイルの資産の構成関係を抽出
すると共に、該キーワードに対応する構成関係を出力す
るためのクラスを該ソースファイルに埋め込むソースフ
ァイル解析手段と、前記ソースファイル解析手段により
構成関係を出力するためのクラスを埋め込まれたソース
ファイルからコンピュータで実行可能なプログラムを生
成する実行可能ファイル生成手段と、前記ソースファイ
ル解析手段により抽出された前記ソースファイルに書き
込まれている全資産の構成関係に関するデータファイル
と、前記実行可能ファイル生成手段が前記構成関係を出
力するためのクラスを埋め込まれたプログラムを実行す
ることによって得られる実際に使用される資産の構成関
係に関するデータファイルとを比較して、前記ソースフ
ァイルにおける資産の利用状態を解析する構成関係解析
手段とを備えることを特徴とする。
【0008】このような構成とすることにより、プログ
ラムの実行時に資産の利用状態をトレースすることがで
きるため、プログラムに書き込まれている全資産とプロ
グラムの実行時に実際に利用されている資産を比較する
ことができるため、無駄な資産がないか、利用頻度の高
い資産はどれかといった、資産の利用状態を検証するこ
とが可能である。
【0009】請求項2の本発明の構成関係管理装置は、
前記ソースファイル解析部が、前記ソースファイルを読
み込んで、該ソースファイルに前記キーワードがコメン
トとして埋め込まれていないかを検索し、検出されたキ
ーワードに対応する構成関係に関するデータファイルを
作成して出力する構成関係抽出手段と、前記検出された
キーワードに対応するクラスを前記ソースファイルの該
当個所に埋め込む前処理手段とを備え、前記実行可能フ
ァイル生成手段が、コンピュータに実行可能なプログラ
ムを生成する際に、前記ソースファイル解析手段の前記
前処理手段により前記ソースファイルに埋め込まれたク
ラスの実体を生成したプログラムにリンクさせるリンク
手段を備えることを特徴とする。
【0010】請求項3の本発明の構成関係管理装置は、
前記ソースファイル解析手段により抽出された前記ソー
スファイルに書き込まれている全資産の構成関係に関す
るデータファイルと、前記実行可能ファイル生成手段が
前記構成関係を出力するためのクラスを埋め込まれたプ
ログラムを実行することによって得られる実際に使用さ
れる資産の構成関係に関するデータファイルとを登録し
て保持するデータベースを更に備え、前記構成関係解析
手段が、任意のタイミングで該2種類のデータファイル
を読み込み、比較を行うことを特徴とする。
【0011】また、上記の目的を達成する本発明の構成
関係管理方法は、ソースファイルを作成する際に、資産
の構成関係を抽出するために設定されたキーワードをコ
メントとして書き込むステップと、前記ソースファイル
を入力し、該ソースファイル中の前記キーワードを参照
して該ソースファイルの資産の構成関係を抽出するステ
ップと、前記キーワードに対応する構成関係を出力する
ためのクラスを前記ソースファイルに埋め込むステップ
と、構成関係抽出ステップでためのクラスを埋め込まれ
た前記ソースファイルからコンピュータで実行可能なプ
ログラムを生成するステップと、生成された前記コンピ
ュータで実行可能なプログラムを実行するステップと、
前記構成関係抽出ステップにおいて抽出された前記ソー
スファイルに書き込まれている全資産の構成関係に関す
るデータファイルと、前記ファイル実行ステップにおい
て前記構成関係を出力するためのクラスを埋め込まれた
プログラムを実行することによって得られる実際に使用
される資産の構成関係に関するデータファイルとを比較
して、前記ソースファイルにおける資産の利用状態を解
析するステップとを含むことを特徴とする。
【0012】請求項5の本発明の構成関係管理方法は、
前記コンピュータで実行可能なプログラムを生成するス
テップが、前記クラスの埋め込みステップにおいて前記
ソースファイルに埋め込まれたクラスの実体を生成した
プログラムにリンクさせるステップを含むことを特徴と
する。
【0013】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。
【0014】本実施の形態の前提として、予め、資産の
構成関係を抽出するために用いるキーワードが設定され
る。キーワードは、関係の種別ごとに用意する。オブジ
ェクト指向型プログラミング言語を用いてプログラムを
作成するプログラマーは、開発中のソースコード(Java
なら.javaファイル、C++なら.hと.cppファイルなど)の
中の適切な箇所に、当該キーワードをコメントとして埋
め込む。この際、クラスの継承関係や集約関係、クラス
とメソッドやメンバ変数との関係などが構成関係情報の
対象になる。すなわち、以上のように設定されたキーワ
ードを適宜埋め込んだソースファイルが本実施の形態に
よる処理の対象となる。
【0015】図1は、本発明の一実施形態による構成関
係管理装置の構成を示すブロック図である。本実施形態
の構成関係管理装置100は、オブジェクト指向型プロ
グラミング言語で記述されたソースファイルから、クラ
スやメソッドなどの資産を解析して抽出し当該資産の構
成関係を把握すると共に、当該ソースファイルを実行し
て実際に使用される実資産の構成関係を把握し、両方の
構成関係を比較解析する。ここで、構成関係管理装置1
00に入力されるソースファイルは上述したキーワード
が埋め込まれたファイルである。そして、ソースファイ
ル中のキーワードを手掛かりとして資産の構成関係が把
握される。
【0016】図1を参照すると、本実施の形態の構成関
係管理装置100は、ソースファイル中の資産を解析し
て構成関係を抽出するソースファイル解析部10と、抽
出された構成関係をデータベース60に登録する第1構
成関係情報登録部20と、ソースファイルから実行可能
なプログラムファイルを生成して実行させると共に実資
産の構成関係を抽出する実行可能ファイル生成部30、
抽出された実資産の構成関係をデータベース60に登録
する第2構成関係情報登録部40と、データベース60
に登録されたソースファイル中の資産の構成関係と実資
産の構成関係とを比較する構成関係解析部50とを備え
る。
【0017】また、構成関係管理部100には、ソース
ファイルや各種のコマンドを入力するための入力装置1
10と、実行可能ファイル生成部30により生成された
実行可能なプログラムファイルを実行するファイル実行
部120と、構成関係解析部50による解析結果を出力
する出力装置130とが接続されており、構成関係管理
部100の動作を支援する。
【0018】図1を参照して構成関係管理装置100の
動作を概略的に説明する。まず、入力装置110からオ
ブジェクト指向型プログラミング言語で記述されキーワ
ードの埋め込まれたソースファイルが入力される。そし
て、ソースファイル解析部10において、キーワードを
手掛かりとしてソースファイルから資産が抽出されて構
成関係のファイル(第1構成関係情報ファイル)が作成
される。また、ソースファイル解析部10において、ソ
ースコードには、埋め込まれているキーワードに対応し
て、構成関係を出力する特殊なクラスとそのクラスのメ
ソッド呼び出しコードが追加される。さらに、実行可能
ファイル生成部30により、追加コードの挿入されたソ
ースファイルからコンピュータで実行可能なプログラム
ファイルが生成されてファイル実行部120に送られ
る。ファイル実行部120で当該プログラムファイルが
実行され、追加コードに基づいて、実行時に使用された
実資産の構成関係のファイル(第2構成関係情報ファイ
ル)が作成される。作成された第1、第2構成関係情報
ファイルはデータベース60に登録される。この後、構
成関係解析部50によりデータベース60から読み出さ
れた第1、第2構成関係情報ファイルが比較され、比較
結果が出力装置130から出力される。
【0019】なお、ソースファイルに追加される、構成
関係を出力するためのクラスやメソッドの実体は、ライ
ブラリなどで予め用意されている。また、実行可能ファ
イル生成部30によるコンピュータで実行可能なプログ
ラムファイルの生成において、処理対象であるプログラ
ミング言語がコンパイラ言語である場合は、ソースコー
ドはコンパイルされ、オブジェクトプログラムになり、
用意してあったライブラリをリンクして実行ファイルが
作成される。一方、処理対象であるプログラミング言語
がインタプリタ言語である場合は、ソースコードからイ
ンタプリタ実行可能な形式のファイルが作成される。以
下、ソースファイルを記述したオブジェクト指向型プロ
グラミング言語がコンパイラ言語である場合を主に説明
するが、必要に応じてインタプリタ言語である場合につ
いても説明する。
【0020】次に、各構成要素について詳細に説明す
る。図2はソースファイル解析部10の構成を示すブロ
ック図である。図2を参照すると、ソースファイル解析
部10は、ソースファイルの解析を行う構成関係抽出部
11と、ソースファイルに構成関係を出力するためのク
ラスやクラスのメソッドを埋め込むプリプロセッサ部1
2とを備える。構成関係抽出部11は、ソースファイル
アクセス部111と、解析処理部112と、関係情報出
力部113とを備え、プリプロセッサ部121は、キー
ワード展開部121と、ソース出力部122とを備え
る。また、図示のように、ソースファイル解析部10の
処理には、資産の構成関係を出力するのキーワードを集
めた構成関係出力用キーワードファイル210と、構成
関係出力用キーワードファイル210に格納されている
各キーワードに対応して資産の構成関係を出力するクラ
スやクラスのメソッド呼び出しを集めた構成関係出力ク
ラス外部ファイル220とが使用される。
【0021】構成関係抽出部11において、ソースファ
イルアクセス部111は、入力装置110から入力され
たソースファイルを読み込み、所定の記憶装置に展開す
る。記憶装置としては、RAMその他の内部メモリを用
いることができる。解析処理部112は、ソースファイ
ルアクセス部111により記憶装置に展開されたソース
ファイルを解析し、構成関係出力用キーワードファイル
210に含まれているキーワードが、当該ソースファイ
ルのコメントとして埋め込まれていないか検索する。そ
して、ソースファイル中にキーワードに該当するコメン
トが見つかれば、当該キーワードに対応する構成関係を
抽出して記憶装置に格納する。関係情報出力部113
は、解析処理部112により抽出された構成関係を記憶
装置から読み出して、第1構成関係情報ファイルとして
出力する。
【0022】プリプロセッサ部12において、キーワー
ド展開部121は、ソース解析部112と同様に、記憶
装置上に展開されたソースファイルの中からキーワード
に該当するコメントを検索し、見つかれば、構成関係出
力クラス外部ファイル220に含まれている構成関係を
出力するためのクラスやクラスのメソッド呼び出しの中
から該当するものを選んでソースファイルの該当個所に
埋め込む。この作業をキーワードの展開という。ソース
出力部122は、キーワード展開部121によりキーワ
ードが展開されたソースファイルを解析済みソースファ
イルとして出力する。
【0023】図3は第1構成関係登録部20の構成を示
すブロック図である。図3を参照すると、第1構成関係
登録部20は、ソースファイル解析部10の構成関係抽
出部11から出力された第1構成関係情報ファイルを読
み込む構成関係読み込み部21と、構成関係読み込み部
21にて読み込んだ第1構成関係情報ファイルをデータ
ベース60に登録するデータベースアクセス部22とを
備える。
【0024】図4は実行可能ファイル生成部30の構成
を示すブロック図である。図4を参照すると、実行ファ
イル生成部30は、ソースファイルをコンパイルするコ
ンパイル部31と、コンパイル部31によりコンパイル
されたオブジェクトプログラムを結合するリンク部32
とを備える。また、図示のように、実行可能ファイル生
成部30の処理には、構成関係を出力するためのクラス
やメソッドの実体を集めた構成関係出力ライブラリ41
0が使用される。
【0025】コンパイル部31は、ソースファイル解析
部10のプリプロセッサ部12から出力された解析済み
ソースファイルを読み込み、コンパイラを呼び出してオ
ブジェクトファイルを生成する。
【0026】リンク部32は、コンパイル部31により
生成されたオブジェクトファイルを読み込み、リンカを
呼び出して当該オブジェクトファイルと構成関係出力ラ
イブラリ410とをリンクさせ、コンピュータが実行可
能なプログラムファイル(実行可能ファイル)として出
力する。
【0027】実行可能ファイル生成部30のリンク部3
2から出力された実行可能ファイルはファイル実行部1
20に送られる。ファイル実行部120は、入力した実
行可能ファイルを実行する。当該実行可能ファイルには
ソースファイル解析部10及び実行可能ファイル生成部
30の処理により、構成関係を出力するためのクラスや
メソッドが埋め込まれているため、当該実行可能ファイ
ルを実行すると、実行時に実際に使用された実資産の構
成関係が出力されることとなる。出力された実資産の構
成関係は、第2構成関係情報ファイルとして出力され
る。
【0028】ここで、プログラミング言語がJavaのよう
なインタプリタ言語である場合について説明する。プロ
グラミング言語がインタプリタ言語である場合、図5に
示すように、実行可能ファイル生成部30は、コンパイ
ル部33を備え、ソースファイル解析部10のプリプロ
セッサ部12から出力された解析済みソースファイルを
読み込み、コンパイラを呼び出してインタプリタが実行
可能な中間コードのインタプリタ実行可能ファイルにし
て出力する。
【0029】この場合ファイル実行部120は、インタ
プリタにより当該インタプリタ実行可能ファイルを実行
する。上述したコンパイラ言語の場合と同様に、当該イ
ンタプリタ実行可能ファイルにはソースファイル解析部
10及び実行可能ファイル生成部30の処理により、構
成関係を出力するためのクラスやメソッドが埋め込まれ
ているため、当該インタプリタ実行可能ファイルを実行
すると、実行時に実際に使用された実資産の構成関係が
出力されることとなる。出力された実資産の構成関係
は、第2構成関係情報ファイルとして出力される。
【0030】第2構成関係登録部40は、図3に示した
第1構成関係登録部20と同様の構成をしており、ファ
イル実行部120により出力された第2構成関係情報フ
ァイルを読み込んで、データベース60に登録する。
【0031】図6は構成関係解析部50の構成を示すブ
ロック図である。図6を参照すると、構成関係解析部5
0は、構成関係情報読み込み部51と、構成関係情報比
較部52と、解析結果出力部53とを備える。構成関係
読み込み部51は、データベース60から第1構成関係
情報ファイルと第2構成関係情報ファイルとを読み込ん
で、所定の記憶装置に展開する。構成関係情報比較部5
2は、記憶装置に展開された第1構成関係情報ファイル
と第2構成関係情報ファイルとを比較する。すなわち、
ソースファイルの段階でファイル中に含まれている資産
全体の構成関係と、実際にプログラムを実行した際に使
用された実資産の構成関係とが比較される。ソースファ
イル中に、プログラムを実行した際には使用されない資
産が含まれているときは、この比較によってそのような
無駄な資産が検出されることとなる。解析結果出力部5
3は、構成関係情報比較部52の比較結果を受け取って
出力装置130に出力する。
【0032】次に、本実施の形態の動作について、図7
及び図8のフローチャートを参照して説明する。図7は
ソースファイルのビルド時(コンパイル時)の動作を示
し、図8は生成されたアプリケーションプログラム(オ
ブジェクトプログラム)の実行時の動作を示す。前提条
件として、ソースファイルには、上述したように関係情
報を出力するためのキーワードをコメントとして書き込
んである。
【0033】図7を参照すると、まず、ソースファイル
がソースファイル解析部10の構成関係抽出部11に読
み込まれ、記憶装置上に展開される(ステップ70
1)。そして、解析処理部112によりソースファイル
上のコメント内のキーワードの検索が行われる(ステッ
プ702)。
【0034】プログラミング言語としてC++を用いた
場合を例として、キーワードの検索を具体的に説明す
る。ここでは、キーワードの書き込みに関して図9に示
すような規則があるものとする。図9を参照すると、ク
ラスCabcは、クラスCbaseを継承しており、クラスCothe
rを集約している。メンバ関数は、func1、func2、func3
の3つある。クラススコープの中で、関数スコープの外
に// inheritance、//aggregation、// member member-
function のようなコメントがあれば、クラスの継承関
係、集約関係とクラスとメンバ関数の関係が出力され
る。関数のスコープの中で// calling functionのよう
なコメントがあれば、関数の呼び出し関係が出力され
る。図9の例では、まず、コメントが順番に検索され、
コメントの中に特定のキーワードがないか検索する。も
し、クラスのスコープ内に特定のキーワード(// inher
itance)が見つかれば、そのクラスと親クラスとの関係
を関係種別と共に記憶装置上に待避する。// aggregati
on、// member-functionなども同様に待避する。もし、
関数のスコープ内に// calling member-functionが見つ
かれば、その関数と呼び出し関数との呼び出し関係を記
憶装置上に待避する。
【0035】以上のようにして、ソースファイルの全て
の解析が完了した後、記憶装置上に待避された関係情報
が第1構成関係情報ファイルとして出力される(ステッ
プ703)。第1構成関係情報ファイルには、例えば図
10に示すような構成関係が記述される。
【0036】次に、第1構成関係情報登録部20によ
り、第1構成関係情報ファイルがデータベース60に登
録される(ステップ704)。なお、当該処理は、ステ
ップ703で第1構成関係情報ファイルが出力された際
に直ちに行うのではなく、後で単独で動作させることも
できる。
【0037】次に、ソースファイルから生成されるオブ
ジェクトプログラムの実行時に構成関係情報の出力が行
えるように、プリプロセッサ部12のキーワード展開部
121により、コメントとして書き込まれているキーワ
ードがソースコードとして展開される(ステップ70
5)。このとき展開される内容は、構成関係情報を出力
するためのクラスの宣言とそのクラスのメソッド呼び出
しである。クラススコープの中のコメントは、クラスの
コンストラクタに関係を出力する処理として展開され
る。関数のスコープの中のコメントは、その関数内で関
係を出力する処理として展開される。// calling membe
r-functionの場合、実際に関数が呼び出される直前に関
係を出力する処理が展開される。なお、ステップ705
のキーワード展開処理は、必ずしも図7に示すように第
1構成関係情報ファイルの出力(ステップ703)やデ
ータベース60への登録(ステップ704)の後に行わ
なくても良く、キーワードの検索(ステップ702)後
に、第1構成関係情報ファイルの出力の前、あるいは並
行して実行しても良い。
【0038】次に、プリプロセッサ部12から出力され
た、キーワードがソースコードとして展開されたソース
ファイルが、実行可能ファイル生成部30に読み込まれ
てコンパイルされ、コンピュータで実行可能な実行可能
ファイル(アプリケーションプログラム)に変換されて
出力される(ステップ706)。
【0039】次に、図8を参照してアプリケーションプ
ログラムの実行時の動作を説明する。まず、実行可能フ
ァイル生成部30により作成されたアプリケーションプ
ログラムが、ファイル実行部120により実行される
(ステップ801)。ファイル実行部120は、実行に
際してアプリケーションプログラムの制御により、実際
に動作した部分の構成関係情報を第2構成関係情報ファ
イルとして出力する。具体的には、例えば実行時に、ク
ラスのインスタンスが生成されたときにコンストラクタ
でクラスの関係を出力する。また実際にメソッド呼び出
される直前にメソッドとメソッドの関係を出力する。
【0040】次に、第2構成関係情報登録部40によ
り、第2構成関係情報ファイルがデータベース60に登
録される(ステップ802)。なお、当該処理は、ステ
ップ801で第2構成関係情報ファイルが出力された際
に直ちに行うのではなく、後で任意のタイミングで動作
させることもできる。
【0041】次に、以下の手順で構成関係情報解析処理
(ステップ803〜ステップ806)が行われる。当該
処理は、第1、第2構成関係情報ファイルがデータベー
スに登録された後であれば、任意のタイミングで動作さ
せることができる。言い換えれば、ステップ704にお
ける第1構成関係情報ファイルのデータベース60への
登録と、ステップ802における第2構成関係情報ファ
イルのデータベース60への登録とは、構成関係情報解
析処理を実行する前に行われていれば良い。
【0042】構成関係情報解析処理において、まず、解
析対象となる資産が指定される(ステップ803)。デ
ータベース60上に第1構成関係情報ファイルによる資
産全体の構成関係と第2構成関係情報ファイルによる実
行時の構成関係とが存在するとき、指定された資産をキ
ーに、構成関係情報読み込み部51により、ソースファ
イル解析時の構成関係情報と実行時の構成関係情報とが
取得される(ステップ804)。次に、構成関係情報比
較部52により、当該処理で得られたデータが比較さ
れ、資産の利用状況が解析される(ステップ805)。
具体的には、例えば実行時に実際に利用されている資
産、利用されていない資産、利用頻度等が解析される。
そして、解析結果出力部53により、構成関係情報比較
部52の解析結果がファイル、画面、印刷物等の形式で
出力される(ステップ806)。
【0043】以上のようにして、本実施の形態によれ
ば、作成されたソースファイルに含まれている資産全体
の構成関係に加え、当該ソースファイルから生成された
オブジェクトプログラム(アプリケーションプログラ
ム)を実行する際に実際に使用される実資産の構成関係
を取得でき、さらに二つの構成関係を比較することによ
ってオブジェクトプログラムの実行の際に使用されない
無駄な構成関係を検出することができる。
【0044】上述した実施の形態では、ソースファイル
を解析して作成される第1構成関係情報ファイルとオブ
ジェクトプログラムを実行して得られる第2構成関係情
報ファイルとをデータベース60に登録しておき、任意
のタイミングで比較するようにしたが、第1、第2構成
関係情報ファイルをデータベース60に格納せず、直接
構成関係解析部50に入力して二つのファイルを比較す
ることもできる。この場合の構成情報管理装置の構成を
図11に示す。
【0045】図11に示すように、構成関係管理装置1
40は、ソースファイル解析部10と、実行可能ファイ
ル生成部30と、構成関係解析部50とを備えており、
図1に示す構成関係管理装置100と比較して、第1構
成関係情報登録部20と第2構成関係情報登録部40と
を省略した構成となっている。動作においても、第1、
第2構成関係情報ファイルがデータベース60に登録さ
れず、直接構成関係解析部50に参照されること以外は
図1の構成関係管理装置100と同様である。ただし、
第1、第2構成関係情報ファイルがデータベース60に
登録されないため、構成関係解析部50が処理において
使用する記憶装置の記憶容量を考慮すれば、構成関係解
析部50による二つのファイルの比較は任意のタイミン
グで行うのではなく、ファイルの作成後、直ちに行われ
るのが好ましい。また、解析すべき資産の量が多い場合
は、データベースを利用するべきである。しかしなが
ら、解析すべき資産が少量であれば、データベース60
を利用せずに作成される第1、第2構成関係情報ファイ
ルを直接利用するほうが、動作環境が単純となり、手軽
に利用できる。
【0046】以上、好ましい実施の形態をあげて本発明
を説明したが、本発明は必ずしも上記実施の形態に限定
されるものではない。
【0047】
【発明の効果】以上説明したように、本発明の構成関係
管理装置及び構成関係管理方法並びに構成関係管理プロ
グラムを格納した記憶媒体によれば、プログラムの実行
時に資産の利用状態をトレースし、プログラムに書き込
まれている全資産とプログラムの実行時に実際に利用さ
れている資産とを比較することができるため、利用され
ていない無駄な資産がないか、頻繁に利用されている資
産はどれなのか、資産の利用の流れといった、実際のプ
ログラムの実行に伴う資産の利用状態を解析し管理する
ことができるという効果がある。
【0048】これにより、無駄な資産が検出された場合
に当該資産を削除するようにソースファイルを書き換え
れば、無駄のない最適化されたプログラムを得ることが
できる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態による構成関係管理装
置の構成を示すブロック図である。
【図2】 本実施の形態におけるソースファイル解析部
の構成を示すブロック図である。
【図3】 本実施の形態における第1構成関係情報登録
部の構成を示すブロック図である。
【図4】 本実施の形態における実行可能ファイル生成
部の構成を示すブロック図である。
【図5】 本実施の形態における実行可能ファイル生成
部の他の構成を示すブロック図である。
【図6】 本実施の形態における構成関係解析部の構成
を示すブロック図である。
【図7】 本実施の形態によるソースファイルのビルド
時の動作を示すフローチャートである。
【図8】 本実施の形態によるアプリケーションプログ
ラムの実行時の動作を示すフローチャートである。
【図9】 本実施の形態に用いるキーワードの書き込み
に関する規則を示す図である。
【図10】 第1構成関係情報ファイルに記述される構
成関係の例を示す図である。
【図11】 本発明の一実施の形態による構成関係管理
装置の変形例を示すブロック図である。
【符号の説明】
10 ソースファイル解析部 11 構成関係抽出部 111 ソースファイルアクセス部 112 解析処理部 113 関係情報出力部 12 プリプロセッサ部 121 キーワード展開部 122 ソース出力部 20 第1関係情報登録部 21 構成関係読み込み部 22 データベースアクセス部 30 実行可能ファイル生成部 31、33 コンパイル部 32 リンク部 40 第2構成関係情報登録部 50 構成関係解析部 51 構成関係情報読み込み部 52 構成関係情報比較部 53 解析結果出力部 60 データベース 100、140 構成関係管理装置 110 入力装置 120 ファイル実行部 130 出力装置 210 構成関係出力用キーワードファイル 220 構成関係出力クラス外部ファイル 410 構成関係出力ライブラリ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 資産の構成関係を抽出するために設定さ
    れたキーワードをコメントとして含むソースファイルを
    入力し、該ソースファイル中の該キーワードを参照して
    該ソースファイルの資産の構成関係を抽出すると共に、
    該キーワードに対応する構成関係を出力するためのクラ
    スを該ソースファイルに埋め込むソースファイル解析手
    段と、 前記ソースファイル解析手段により構成関係を出力する
    ためのクラスを埋め込まれたソースファイルからコンピ
    ュータで実行可能なプログラムを生成する実行可能ファ
    イル生成手段と、 前記ソースファイル解析手段により抽出された前記ソー
    スファイルに書き込まれている全資産の構成関係に関す
    るデータファイルと、前記実行可能ファイル生成手段が
    前記構成関係を出力するためのクラスを埋め込まれたプ
    ログラムを実行することによって得られる実際に使用さ
    れる資産の構成関係に関するデータファイルとを比較し
    て、前記ソースファイルにおける資産の利用状態を解析
    する構成関係解析手段とを備えることを特徴とする構成
    関係管理装置。
  2. 【請求項2】 前記ソースファイル解析部が、 前記ソースファイルを読み込んで、該ソースファイルに
    前記キーワードがコメントとして埋め込まれていないか
    を検索し、検出されたキーワードに対応する構成関係に
    関するデータファイルを作成して出力する構成関係抽出
    手段と、 前記検出されたキーワードに対応するクラスを前記ソー
    スファイルの該当個所に埋め込む前処理手段とを備え、 前記実行可能ファイル生成手段が、 コンピュータに実行可能なプログラムを生成する際に、
    前記ソースファイル解析手段の前記前処理手段により前
    記ソースファイルに埋め込まれたクラスの実体を生成し
    たプログラムにリンクさせるリンク手段を備えることを
    特徴とする請求項1に記載の構成関係管理装置。
  3. 【請求項3】 前記ソースファイル解析手段により抽出
    された前記ソースファイルに書き込まれている全資産の
    構成関係に関するデータファイルと、前記実行可能ファ
    イル生成手段が前記構成関係を出力するためのクラスを
    埋め込まれたプログラムを実行することによって得られ
    る実際に使用される資産の構成関係に関するデータファ
    イルとを登録して保持するデータベースを更に備え、 前記構成関係解析手段が、任意のタイミングで該2種類
    のデータファイルを読み込み、比較を行うことを特徴と
    する請求項1または請求項2に記載の構成関係管理装
    置。
  4. 【請求項4】 ソースファイルを作成する際に、資産の
    構成関係を抽出するために設定されたキーワードをコメ
    ントとして書き込むステップと、 前記ソースファイルを入力し、該ソースファイル中の前
    記キーワードを参照して該ソースファイルの資産の構成
    関係を抽出するステップと、 前記キーワードに対応する構成関係を出力するためのク
    ラスを前記ソースファイルに埋め込むステップと、 構成関係抽出ステップでためのクラスを埋め込まれた前
    記ソースファイルからコンピュータで実行可能なプログ
    ラムを生成するステップと、 生成された前記コンピュータで実行可能なプログラムを
    実行するステップと、 前記構成関係抽出ステップにおいて抽出された前記ソー
    スファイルに書き込まれている全資産の構成関係に関す
    るデータファイルと、前記ファイル実行ステップにおい
    て前記構成関係を出力するためのクラスを埋め込まれた
    プログラムを実行することによって得られる実際に使用
    される資産の構成関係に関するデータファイルとを比較
    して、前記ソースファイルにおける資産の利用状態を解
    析するステップとを含むことを特徴とする構成関係管理
    方法。
  5. 【請求項5】 前記コンピュータで実行可能なプログラ
    ムを生成するステップが、 前記クラスの埋め込みステップにおいて前記ソースファ
    イルに埋め込まれたクラスの実体を生成したプログラム
    にリンクさせるステップを含むことを特徴とする請求項
    4に記載の構成関係管理方法。
  6. 【請求項6】 コンピュータで読み込み、実行可能なプ
    ログラムを格納した記憶媒体であって、 前記プログラムが、 資産の構成関係を抽出するために設定されたキーワード
    をコメントとして含むソースファイルを入力し、該ソー
    スファイル中の該キーワードを参照して該ソースファイ
    ルの資産の構成関係を抽出するステップと、 前記キーワードに対応する構成関係を出力するためのク
    ラスを前記ソースファイルに埋め込むステップと、 構成関係抽出ステップでためのクラスを埋め込まれた前
    記ソースファイルからコンピュータで実行可能なプログ
    ラムを生成するステップと、 生成された前記コンピュータで実行可能なプログラムを
    実行するステップと、 前記構成関係抽出ステップにおいて抽出された前記ソー
    スファイルに書き込まれている全資産の構成関係に関す
    るデータファイルと、前記ファイル実行ステップにおい
    て前記構成関係を出力するためのクラスを埋め込まれた
    プログラムを実行することによって得られる実際に使用
    される資産の構成関係に関するデータファイルとを比較
    して、前記ソースファイルにおける資産の利用状態を解
    析するステップとを含むことを特徴とする記憶媒体。
  7. 【請求項7】 前記記憶媒体に格納されるプログラムに
    おける前記コンピュータで実行可能なプログラムを生成
    するステップが、 前記クラスの埋め込みステップにおいて前記ソースファ
    イルに埋め込まれたクラスの実体を生成したプログラム
    にリンクさせるステップを含むことを特徴とする請求項
    6に記載の記憶媒体。
JP30564399A 1999-10-27 1999-10-27 オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体 Expired - Fee Related JP3531728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30564399A JP3531728B2 (ja) 1999-10-27 1999-10-27 オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30564399A JP3531728B2 (ja) 1999-10-27 1999-10-27 オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体

Publications (2)

Publication Number Publication Date
JP2001125779A true JP2001125779A (ja) 2001-05-11
JP3531728B2 JP3531728B2 (ja) 2004-05-31

Family

ID=17947611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30564399A Expired - Fee Related JP3531728B2 (ja) 1999-10-27 1999-10-27 オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体

Country Status (1)

Country Link
JP (1) JP3531728B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020518073A (ja) * 2017-04-28 2020-06-18 エルゼットラブズ ゲーエムベーハー モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開
JP2022009562A (ja) * 2017-04-28 2022-01-14 エルゼットラブズ ゲーエムベーハー モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020518073A (ja) * 2017-04-28 2020-06-18 エルゼットラブズ ゲーエムベーハー モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開
JP2022009562A (ja) * 2017-04-28 2022-01-14 エルゼットラブズ ゲーエムベーハー モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開
JP7057571B2 (ja) 2017-04-28 2022-04-20 エルゼットラブズ ゲーエムベーハー モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開
JP7316591B2 (ja) 2017-04-28 2023-07-28 エルゼットラブズ ゲーエムベーハー モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開

Also Published As

Publication number Publication date
JP3531728B2 (ja) 2004-05-31

Similar Documents

Publication Publication Date Title
Dig et al. The role of refactorings in API evolution
US7565364B1 (en) Annotation processor discovery
US8423971B2 (en) Generating an application software library
KR100750834B1 (ko) 자바 바이트 코드의 데이터 모니터링 시 모니터링된 데이터의 호출관계 규명 방법 및 이 방법을 이용한 알고리즘을 통해 자바 어플리케이션의 각종 성능 데이터를 추출하기 위한 컴퓨터 판독 가능한 기록 매체
US20090024426A1 (en) Method and Apparatus for Dynamic Evolution in Business Performance Management
Lam et al. A type system and analysis for the automatic extraction and enforcement of design information
Favre Preprocessors from an abstract point of view
US7499956B1 (en) Annotation processing from source files and class files
JP2018510445A (ja) プログラム性能を向上させる領域特化システムおよび方法
US7624381B1 (en) Portable detection of start and completion of object construction
Ferenc Recognizing Design Patterns in C++ programs with the integration of Columbus and Maisa
Samuel et al. A novel test case design technique using dynamic slicing of UML sequence diagrams
Avrunin et al. Comparing finite-state verification techniques for concurrent software
Washizaki et al. ProMeTA: a taxonomy for program metamodels in program reverse engineering
JP2010140407A (ja) ソースコード検査装置
Rinard et al. Active learning for inference and regeneration of computer programs that store and retrieve data
Garcia et al. JaDA–the Java deadlock analyser
EP2535813B1 (en) Method and device for generating an alert during an analysis of performance of a computer application
JP3531728B2 (ja) オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体
Ferrarotti et al. Stepwise abstraction of high-level system specifications from source code
Şora Unified modeling of static relationships between program elements
CN114546836A (zh) 基于下推自动机引导的公共组件库自动化测试方法及装置
García-Díaz et al. MCTest: towards an improvement of match algorithms for models
Zhang et al. A declarative approach for Java code instrumentation
CN117235746B (zh) 一种基于多维ast融合检测的源代码安全管控平台

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040119

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: 20040212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040225

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: 20080312

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees