JPH1124901A - プログラム情報の解析・表示方法およびシステム - Google Patents
プログラム情報の解析・表示方法およびシステムInfo
- Publication number
- JPH1124901A JPH1124901A JP9171665A JP17166597A JPH1124901A JP H1124901 A JPH1124901 A JP H1124901A JP 9171665 A JP9171665 A JP 9171665A JP 17166597 A JP17166597 A JP 17166597A JP H1124901 A JPH1124901 A JP H1124901A
- Authority
- JP
- Japan
- Prior art keywords
- collaboration
- program information
- call
- program
- displaying
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 大規模なプログラム開発において、必要なプ
ログラム情報を絞り込んで表示する。 【解決手段】 デバッガ57の操作により、ある想定さ
れたコラボレーションに対する処理を、モジュールごと
に、例えば、適切なプログラムの箇所にブレイク・ポイ
ントを設定することにより行う。プログラムを実行する
と、ブレーク・ポイントを設定した時点までの呼び出し
関係がコール・スタックに積まれている。これをデバッ
ガ57を用いて、コラボレーション・レポジトリ51に
蓄積する。ビルダ52は、開発環境全体を統括してい
る。このビルダ52から、デバガ57を呼び出すこと
や、コラボレーション・マトリクス54、コール・グラ
フ55およびクラス・ブラウザ56等で構成されている
プログラム情報を表示する機能53を呼び出すこと等が
できる。
ログラム情報を絞り込んで表示する。 【解決手段】 デバッガ57の操作により、ある想定さ
れたコラボレーションに対する処理を、モジュールごと
に、例えば、適切なプログラムの箇所にブレイク・ポイ
ントを設定することにより行う。プログラムを実行する
と、ブレーク・ポイントを設定した時点までの呼び出し
関係がコール・スタックに積まれている。これをデバッ
ガ57を用いて、コラボレーション・レポジトリ51に
蓄積する。ビルダ52は、開発環境全体を統括してい
る。このビルダ52から、デバガ57を呼び出すこと
や、コラボレーション・マトリクス54、コール・グラ
フ55およびクラス・ブラウザ56等で構成されている
プログラム情報を表示する機能53を呼び出すこと等が
できる。
Description
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
プログラミングの開発環境における開発しているプログ
ラムの情報を表示するためのものであり、特に関連する
特定のクラスやメソッドのみを表示できるプログラム情
報の解析・表示方法およびシステムである。
プログラミングの開発環境における開発しているプログ
ラムの情報を表示するためのものであり、特に関連する
特定のクラスやメソッドのみを表示できるプログラム情
報の解析・表示方法およびシステムである。
【0002】
【従来の技術】通常のクラス・ブラウザでは、クラスの
一覧、各クラスごとのメンバー変数またはメソッドの一
覧を表示することができる。表示形態は様々で、木構造
で表示するもの、リスト・ボックスで表示するものが一
般的である。クラス・ブラウザの例を図1および図2に
示す。
一覧、各クラスごとのメンバー変数またはメソッドの一
覧を表示することができる。表示形態は様々で、木構造
で表示するもの、リスト・ボックスで表示するものが一
般的である。クラス・ブラウザの例を図1および図2に
示す。
【0003】図1において、ウインドウ11には、木構
造で表示したクラスおよびそのクラスに含まれるメンバ
ー変数やメソッド(メンバー関数)をその属性(public
/protected/private)を表すアイコンとともに表示して
いる。そして、特定のメンバー変数m_dwCents
12を特定する(反転文字で表示されている)と、その
部分のソースコードがウインドウ13に表示することが
できる。
造で表示したクラスおよびそのクラスに含まれるメンバ
ー変数やメソッド(メンバー関数)をその属性(public
/protected/private)を表すアイコンとともに表示して
いる。そして、特定のメンバー変数m_dwCents
12を特定する(反転文字で表示されている)と、その
部分のソースコードがウインドウ13に表示することが
できる。
【0004】また、図2においては、階層的にクラスを
表示する例を示している。この例においては、そして、
ウインドウ24には、表示対象である「プロジェクト」
が示されている。ウインドウ23にそのプロジェクトの
クラスの第1の階層のものが一覧表示されている。ウイ
ンドウ20には、クラスを木構造で表示することができ
る。ウインドウ20に表示されているクラスは、第1階
層のもの(21)と指定されたクラスであるLSsNo
deの第2階層のもの(22)である。
表示する例を示している。この例においては、そして、
ウインドウ24には、表示対象である「プロジェクト」
が示されている。ウインドウ23にそのプロジェクトの
クラスの第1の階層のものが一覧表示されている。ウイ
ンドウ20には、クラスを木構造で表示することができ
る。ウインドウ20に表示されているクラスは、第1階
層のもの(21)と指定されたクラスであるLSsNo
deの第2階層のもの(22)である。
【0005】このような表示機能は、ソースコードを見
るよりは効率的であるが、クラスやメソッドの数が膨大
となる実際のアプリケーションでは、特定のメンバー変
数やメソッドを探すことがしばしば困難となる。このよ
うな問題点を考慮して、Visual Basic 5(VB)やSNIFF で
は、メンバーの属性に基づいてこれらを分類する機能を
実現している。例えばVBではメンバー変数を、表示に関
するもの、サイズに関するもの等に分類して表示してお
り、SNIFF では、C++ におけるpublic/protected/priva
teといった属性を基とした分類が可能となっている。し
かしながら、このような分類機能を提供するだけでは、
膨大なプログラム情報から必要な情報を見つけだすため
の本質的な解決にはなっていない。
るよりは効率的であるが、クラスやメソッドの数が膨大
となる実際のアプリケーションでは、特定のメンバー変
数やメソッドを探すことがしばしば困難となる。このよ
うな問題点を考慮して、Visual Basic 5(VB)やSNIFF で
は、メンバーの属性に基づいてこれらを分類する機能を
実現している。例えばVBではメンバー変数を、表示に関
するもの、サイズに関するもの等に分類して表示してお
り、SNIFF では、C++ におけるpublic/protected/priva
teといった属性を基とした分類が可能となっている。し
かしながら、このような分類機能を提供するだけでは、
膨大なプログラム情報から必要な情報を見つけだすため
の本質的な解決にはなっていない。
【0006】また、プログラム情報を表示する別の機能
として、コール・グラフがある。これは、メソッドやメ
ンバー変数間の呼び出し関係を方向付グラフとして表示
するものである。この例を図3に示す。コール・グラフ
では、クラスをノードとして表現し(31〜33)、呼
び出しをノード間のエッジにより表現する。エッジに付
与されている名称は、呼び出されるクラスやメンバー変
数である。
として、コール・グラフがある。これは、メソッドやメ
ンバー変数間の呼び出し関係を方向付グラフとして表示
するものである。この例を図3に示す。コール・グラフ
では、クラスをノードとして表現し(31〜33)、呼
び出しをノード間のエッジにより表現する。エッジに付
与されている名称は、呼び出されるクラスやメンバー変
数である。
【0007】このようなグラフは、小規模のアプリケー
ションでは有効であるが、大規模なアプリケーションで
は、それぞれのクラスに多くのメソッドやメンバー変数
が定義されているため、グラフのノード並びにエッジの
数が爆発的に増えてしまう。
ションでは有効であるが、大規模なアプリケーションで
は、それぞれのクラスに多くのメソッドやメンバー変数
が定義されているため、グラフのノード並びにエッジの
数が爆発的に増えてしまう。
【0008】
【発明が解決しようとする課題】以上説明したように、
開発している大規模なアプリケーションを対象として、
プログラム情報を表示する場合、一度に大量の情報が提
示されてしまうということが根本的な問題点であった。
開発している大規模なアプリケーションを対象として、
プログラム情報を表示する場合、一度に大量の情報が提
示されてしまうということが根本的な問題点であった。
【0009】本発明の目的は、大規模なプログラム開発
のときに、必要なプログラム情報を簡単に絞り込んで表
示することである。
のときに、必要なプログラム情報を簡単に絞り込んで表
示することである。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、ソースレベルでプログラムの実行管理が
でき、コール・スタックから呼び出し関係を取り出すこ
とができる環境におけるプログラム情報の解析・表示方
法またはシステムにおいて、コラボレーションとして関
係付けられたクラス間のメソッドの呼び出し関係を格納
したコラボレーション・レポジトリを有し、前記コール
・スタックから前記コラボレーション・レポジトリに前
記メソッドの呼び出し関係を移動し、前記コラボレーシ
ョン・レポジトリからコラボレーションに関連付けて、
メソッドを表示することを特徴とする。
に、本発明は、ソースレベルでプログラムの実行管理が
でき、コール・スタックから呼び出し関係を取り出すこ
とができる環境におけるプログラム情報の解析・表示方
法またはシステムにおいて、コラボレーションとして関
係付けられたクラス間のメソッドの呼び出し関係を格納
したコラボレーション・レポジトリを有し、前記コール
・スタックから前記コラボレーション・レポジトリに前
記メソッドの呼び出し関係を移動し、前記コラボレーシ
ョン・レポジトリからコラボレーションに関連付けて、
メソッドを表示することを特徴とする。
【0011】また、前記コラボレーション・レポジトリ
に対して、コラボレーション関係を編集することができ
ることも本発明の特徴である。
に対して、コラボレーション関係を編集することができ
ることも本発明の特徴である。
【0012】前記メソッドの表示には、コラボレーショ
ン関係をマトリクスに表示することや、コラボレーショ
ン関係ごとのコール・グラフの表示を含んでいる。
ン関係をマトリクスに表示することや、コラボレーショ
ン関係ごとのコール・グラフの表示を含んでいる。
【0013】その上、コラボレーション・レポジトリか
らコラボレーションに関連付けて、メソッドを表示する
プログラム情報の解析・表示を実現するためのプログラ
ムを記録した記録媒体も本発明である。
らコラボレーションに関連付けて、メソッドを表示する
プログラム情報の解析・表示を実現するためのプログラ
ムを記録した記録媒体も本発明である。
【0014】本発明を用いることにより、コラボレーシ
ョン関係の情報を簡単に収集することができ、また、収
集したコラボレーションを編集・表示することができる
ので、大規模なプログラム開発において、プログラムの
情報を的確に把握することができる。
ョン関係の情報を簡単に収集することができ、また、収
集したコラボレーションを編集・表示することができる
ので、大規模なプログラム開発において、プログラムの
情報を的確に把握することができる。
【0015】
【発明の実施の形態】本発明の実施形態を、図面を参照
して詳細に説明する。
して詳細に説明する。
【0016】本発明においては、オブジェクト間のコラ
ボレーション(collaboration :協力関係)に着目し
て、必要なプログラム情報を絞り込んでいる。このコラ
ボレーションとは、オブジェクト指向の思想の基の分析
・設計においては、広く受け入れられている考え方であ
り、ある特定の処理やタスクに関連したオブジェクト間
の協力関係を意味する。具体的には、あるクラスにおけ
る呼び出し関係を意味している。
ボレーション(collaboration :協力関係)に着目し
て、必要なプログラム情報を絞り込んでいる。このコラ
ボレーションとは、オブジェクト指向の思想の基の分析
・設計においては、広く受け入れられている考え方であ
り、ある特定の処理やタスクに関連したオブジェクト間
の協力関係を意味する。具体的には、あるクラスにおけ
る呼び出し関係を意味している。
【0017】このコラボレーションを用いることによ
り、クラスに着目すると、そこで必要とされるクラスが
絞り込めるだけでなく、このクラス中のメンバー変数な
らびにメソッドも絞り込むことができる。図4(a)に
図3に示したコール・グラフと同様のものが示されてい
る。この図4(a)において、クラスA41とクラスC
43とが、ある処理に対して、コラボレーション(協力
関係)にあることが太線で示されている。この太線で示
された処理にのみに注目するとメンバー変数やメソッド
を絞り込むことができる。
り、クラスに着目すると、そこで必要とされるクラスが
絞り込めるだけでなく、このクラス中のメンバー変数な
らびにメソッドも絞り込むことができる。図4(a)に
図3に示したコール・グラフと同様のものが示されてい
る。この図4(a)において、クラスA41とクラスC
43とが、ある処理に対して、コラボレーション(協力
関係)にあることが太線で示されている。この太線で示
された処理にのみに注目するとメンバー変数やメソッド
を絞り込むことができる。
【0018】このように、ユーザがあるコラボレーショ
ンを想定して、関連するクラス・メンバー変数、メソッ
ドの集合を次々と定義していけば、コラボレーションご
とにプログラム情報の絞り込めが可能となる。
ンを想定して、関連するクラス・メンバー変数、メソッ
ドの集合を次々と定義していけば、コラボレーションご
とにプログラム情報の絞り込めが可能となる。
【0019】しかしながら、コラボレーションを定義す
る場合、ユーザ自身がクラスやメソッドを指定するとい
うことも可能であるが、非常に労力がかかるため現実的
ではない。そこで本発明では、デバッグ時に使用される
コール・スタックを利用している。これを図4(b)を
用いて説明する。
る場合、ユーザ自身がクラスやメソッドを指定するとい
うことも可能であるが、非常に労力がかかるため現実的
ではない。そこで本発明では、デバッグ時に使用される
コール・スタックを利用している。これを図4(b)を
用いて説明する。
【0020】さて、通常のデバッガでは、プログラムが
実行すると、ブレーク・ポイントを設定した場所でプロ
グラムが中断され、その時点でのコール・スタックを見
ることができる。このコール・スタックについてまず説
明する。
実行すると、ブレーク・ポイントを設定した場所でプロ
グラムが中断され、その時点でのコール・スタックを見
ることができる。このコール・スタックについてまず説
明する。
【0021】例えば、概略以下のような疑似コードの処
理をデバッカを用いて実行する。
理をデバッカを用いて実行する。
【0022】 まず、クラスAのメソッドMAXでクラスCのメソッド
MC2を呼び出す。このとき、コール・スタック44に
は、呼び出し元であるクラスAのメソッドMAXが積ま
れる(48)。次に、呼び出されたクラスCのメソッド
MC2から、クラスAのメソッドMA1が呼び出され
る。これで、コール・スタック44には、呼び出し元で
あるクラスCのメソッドMC2が積まれる(47)。
MC2を呼び出す。このとき、コール・スタック44に
は、呼び出し元であるクラスAのメソッドMAXが積ま
れる(48)。次に、呼び出されたクラスCのメソッド
MC2から、クラスAのメソッドMA1が呼び出され
る。これで、コール・スタック44には、呼び出し元で
あるクラスCのメソッドMC2が積まれる(47)。
【0023】クラスAのメソッドMA1では、クラスC
のメソッドMC1を呼び出し、呼び出し元であるクラス
AのメソッドMA1をコール・スタック44に積む(4
6)。クラスCのメソッドMC1ではクラスBのメソッ
ドMB1を呼び出し、呼び出し元であるクラスCのメソ
ッドMC1をコール・スタック44に積んだ(45)と
ころで、ブレーク・ポイントとなり、プログラムの実行
を中断する。
のメソッドMC1を呼び出し、呼び出し元であるクラス
AのメソッドMA1をコール・スタック44に積む(4
6)。クラスCのメソッドMC1ではクラスBのメソッ
ドMB1を呼び出し、呼び出し元であるクラスCのメソ
ッドMC1をコール・スタック44に積んだ(45)と
ころで、ブレーク・ポイントとなり、プログラムの実行
を中断する。
【0024】このブレーク・ポイントまでの時点のコー
ル・スタックがスナップ・ショットとして、デバッガか
らみることが可能である。
ル・スタックがスナップ・ショットとして、デバッガか
らみることが可能である。
【0025】さて、図4(b)に示されているコール・
スタック44にあるメソッドの呼び出し関係を用いる
と、スタックに積まれた順序で、図4(a)の太線で示
した関係を読みとることが可能である。
スタック44にあるメソッドの呼び出し関係を用いる
と、スタックに積まれた順序で、図4(a)の太線で示
した関係を読みとることが可能である。
【0026】本発明は、上述のコール・スタックを用い
て、想定したコラボレーション関係を実体に即して把握
しようとするものである。
て、想定したコラボレーション関係を実体に即して把握
しようとするものである。
【0027】コラボレーションの考え方を用いる開発環
境を、図5を用いて説明する。ビルダ(Builder )52
は、開発環境全体を統括している。このビルダ52か
ら、デバッガ(Debugger)57を呼び出すことや、コラ
ボレーション・マトリクス(Cllaboration Matrix )5
4、コール・グラフ(Call Graph)55およびクラス・
ブラウザ(Class Browser )56等で構成されているプ
ログラム情報を表示する機能53を呼び出すこと等がで
きる。このプログラム情報を表示する機能53について
は、後で詳しく説明する。
境を、図5を用いて説明する。ビルダ(Builder )52
は、開発環境全体を統括している。このビルダ52か
ら、デバッガ(Debugger)57を呼び出すことや、コラ
ボレーション・マトリクス(Cllaboration Matrix )5
4、コール・グラフ(Call Graph)55およびクラス・
ブラウザ(Class Browser )56等で構成されているプ
ログラム情報を表示する機能53を呼び出すこと等がで
きる。このプログラム情報を表示する機能53について
は、後で詳しく説明する。
【0028】まず、デバッガ57の操作により、ある想
定されたコラボレーションに対する処理を、モジュール
ごとに、例えば、プログラム内の適切な箇所にブレイク
・ポイントを設定することにより行う。すると、先に説
明したように、ブレーク・ポイントを設定した時点まで
の呼び出し関係がコール・スタックに積まれている。こ
れをデバッガ57を用いるか、専用のツールで想定した
コラボレーション名等を付してコラボレーション・レポ
ジトリ(Collaboration Repository)51に蓄積する。
これを複数回繰り返し行うことにより、より詳細で網羅
的なコラボレーション情報を集めることができる。ま
た、コール・スタック内の呼び出し関係をコラボレーシ
ョン・レジストリ51に移す際に、コール・スタックか
ら移すメソッドを選択することも可能である。
定されたコラボレーションに対する処理を、モジュール
ごとに、例えば、プログラム内の適切な箇所にブレイク
・ポイントを設定することにより行う。すると、先に説
明したように、ブレーク・ポイントを設定した時点まで
の呼び出し関係がコール・スタックに積まれている。こ
れをデバッガ57を用いるか、専用のツールで想定した
コラボレーション名等を付してコラボレーション・レポ
ジトリ(Collaboration Repository)51に蓄積する。
これを複数回繰り返し行うことにより、より詳細で網羅
的なコラボレーション情報を集めることができる。ま
た、コール・スタック内の呼び出し関係をコラボレーシ
ョン・レジストリ51に移す際に、コール・スタックか
ら移すメソッドを選択することも可能である。
【0029】このようにして、デバッガ57を用いるこ
とにより、コラボレーション対応に関連するクラスの情
報を、コラボレーション・レポジトリ51に集めること
ができる。そして、このコラボレーション・レポジトリ
51にあるコラボレーションごとのメソッドの集合を用
いて、いろいろにプログラム情報を表示することができ
る。
とにより、コラボレーション対応に関連するクラスの情
報を、コラボレーション・レポジトリ51に集めること
ができる。そして、このコラボレーション・レポジトリ
51にあるコラボレーションごとのメソッドの集合を用
いて、いろいろにプログラム情報を表示することができ
る。
【0030】コラボレーション・レポジトリ51に保存
されたコラボレーションは、そのままで使える場合もあ
るが、そうでもない場合もあるので、コラボレーション
を編集する機能も必要になる。そのためにコラボレーシ
ョン・レポジトリを編集する機能であるエディタ58を
有している。このエディタ58はビルダ52により起動
することができる。
されたコラボレーションは、そのままで使える場合もあ
るが、そうでもない場合もあるので、コラボレーション
を編集する機能も必要になる。そのためにコラボレーシ
ョン・レポジトリを編集する機能であるエディタ58を
有している。このエディタ58はビルダ52により起動
することができる。
【0031】このエディタ58を、その表示画面である
図6を用いて説明する。左側のウインドウ61には、コ
ラボレーションのリストであり、これから編集したいコ
ラボレーションを選択する。右側のウインドウ64に
は、選択したコラボレーションに含まれるメソッドのリ
ストが表示される。下のコピー(copy)ボタン65や削
除(delete)ボタン66を用いることにより、コラボレ
ーションに含まれるメソッドのコピーや削除を行うこと
ができる。別のコラボレーションに含まれるメソッドを
マージする場合には、真ん中のマージ(Merge )ボタン
62を用いてマージすることができる。
図6を用いて説明する。左側のウインドウ61には、コ
ラボレーションのリストであり、これから編集したいコ
ラボレーションを選択する。右側のウインドウ64に
は、選択したコラボレーションに含まれるメソッドのリ
ストが表示される。下のコピー(copy)ボタン65や削
除(delete)ボタン66を用いることにより、コラボレ
ーションに含まれるメソッドのコピーや削除を行うこと
ができる。別のコラボレーションに含まれるメソッドを
マージする場合には、真ん中のマージ(Merge )ボタン
62を用いてマージすることができる。
【0032】コラボレーションを用いた表示機能53と
して、まず、クラス・ブラウザ56について、図7の表
示画面を用いて説明する。
して、まず、クラス・ブラウザ56について、図7の表
示画面を用いて説明する。
【0033】図7において、クラス・ブラウザ56をリ
スト・ボックスを利用して実現した例を示している。上
部のウインドウ71には、コラボレーションを指定する
ためのコンボ・ボックス71が用意されている。このコ
ンボ・ボックス71になにも指定しない(デフォルト)
と、全てのクラスを指定することになり、ウインドウ7
2には、全てのクラスが表示される。このコンボ・ボッ
クス71にコラボレーションが入力されると、このコン
ボ・ボックスで特定されるコラボレーションに関連する
クラスおよびメソッドのみが表示される。
スト・ボックスを利用して実現した例を示している。上
部のウインドウ71には、コラボレーションを指定する
ためのコンボ・ボックス71が用意されている。このコ
ンボ・ボックス71になにも指定しない(デフォルト)
と、全てのクラスを指定することになり、ウインドウ7
2には、全てのクラスが表示される。このコンボ・ボッ
クス71にコラボレーションが入力されると、このコン
ボ・ボックスで特定されるコラボレーションに関連する
クラスおよびメソッドのみが表示される。
【0034】図8は、コラボレーションを利用したコー
ル・グラフ55の例を示している。図7と同様に、上部
にコラボレーションを指定するためのコンボ・ボックス
81が用意されている。コール・グラフの場合は、コン
ボ・ボックス81になにも指定しない(デフォルト)と
きは、ウインドウ82になにも表示しない。特定のコラ
ボレーションがコンボ・ボックス81に入力された場合
に、入力されたコラボレーションに関連するクラスおよ
びメソッドのグラフがウインドウ82に表示される。
ル・グラフ55の例を示している。図7と同様に、上部
にコラボレーションを指定するためのコンボ・ボックス
81が用意されている。コール・グラフの場合は、コン
ボ・ボックス81になにも指定しない(デフォルト)と
きは、ウインドウ82になにも表示しない。特定のコラ
ボレーションがコンボ・ボックス81に入力された場合
に、入力されたコラボレーションに関連するクラスおよ
びメソッドのグラフがウインドウ82に表示される。
【0035】図9に、コラボレーション・マトリクス5
4を表示する例を示す。上部のウインドウ91に表示さ
れているテーブルが、コラボレーション・マトリクスで
ある。これは、コラボレーションとクラスに含まれてい
るメソッドとの関連をマトリクス形式にまとめて表示し
たものである。例えば、図9に表示されているテーブル
で説明すると、コラボレーション1に対しては、クラス
A内のメソッドであるMA1とクラスC内のMC1およ
びMC2に関連している。また、コラボレーション2に
対しては、クラスAのMA1、クラスBのMB1および
クラスCのクラスMC1が関連している。クラスAのM
A1とクラスCのMC1とは、コラボレーション1およ
び2の双方に関連していることが分かる。
4を表示する例を示す。上部のウインドウ91に表示さ
れているテーブルが、コラボレーション・マトリクスで
ある。これは、コラボレーションとクラスに含まれてい
るメソッドとの関連をマトリクス形式にまとめて表示し
たものである。例えば、図9に表示されているテーブル
で説明すると、コラボレーション1に対しては、クラス
A内のメソッドであるMA1とクラスC内のMC1およ
びMC2に関連している。また、コラボレーション2に
対しては、クラスAのMA1、クラスBのMB1および
クラスCのクラスMC1が関連している。クラスAのM
A1とクラスCのMC1とは、コラボレーション1およ
び2の双方に関連していることが分かる。
【0036】下部のボタン94〜97により、ウインド
ウ91に表示するコラボレーションやクラスの追加、削
除を指定することができる。例えば、コラボレーション
追加ボタン94をクリックすると、コラボレーションの
リストボックスが現れ、そこで特定のコラボレーション
を選択すると、選択されたコラボレーションがテーブル
に追加され、関連するメソッドが対応するクラスのセル
に表示される。
ウ91に表示するコラボレーションやクラスの追加、削
除を指定することができる。例えば、コラボレーション
追加ボタン94をクリックすると、コラボレーションの
リストボックスが現れ、そこで特定のコラボレーション
を選択すると、選択されたコラボレーションがテーブル
に追加され、関連するメソッドが対応するクラスのセル
に表示される。
【0037】また、セル中のメソッドをクリックする
と、ソースコードを表示するエディタのウインドウが開
かれ、選択したメソッドのソースコードを確認したり、
修正することができる。
と、ソースコードを表示するエディタのウインドウが開
かれ、選択したメソッドのソースコードを確認したり、
修正することができる。
【0038】また、プログラムでその機能を実行してい
る部分に関して、それを記録媒体上に格納し、それをコ
ンピュータ・システムで読み出すことにより、実施する
こともできる。この記録媒体には、フロッピー・ディス
ク、CD−ROM、磁気テープ、ROMカセット等があ
る。
る部分に関して、それを記録媒体上に格納し、それをコ
ンピュータ・システムで読み出すことにより、実施する
こともできる。この記録媒体には、フロッピー・ディス
ク、CD−ROM、磁気テープ、ROMカセット等があ
る。
【0039】上述においては、デバッガでブレイクポイ
ントまで実行することによって生成したコール・スタッ
クを使用して、クラス間の実行することによって生成し
たコール・スタックを使用して、クラス間の呼び出し関
係の情報を取得している。しかし、ソースレベルでプロ
グラムの実行管理ができればよく、例えば、プロファイ
ラにコール・スタックを記録するような機能を持たせる
ことによってもクラス間の呼び出し関係の情報を取得す
ることも可能である。
ントまで実行することによって生成したコール・スタッ
クを使用して、クラス間の実行することによって生成し
たコール・スタックを使用して、クラス間の呼び出し関
係の情報を取得している。しかし、ソースレベルでプロ
グラムの実行管理ができればよく、例えば、プロファイ
ラにコール・スタックを記録するような機能を持たせる
ことによってもクラス間の呼び出し関係の情報を取得す
ることも可能である。
【0040】
【発明の効果】上記の説明のように、本発明によれば、
大規模のプログラム開発に対して有効である、コラボレ
ーション単位のプログラム情報の表示が実現することが
できる。
大規模のプログラム開発に対して有効である、コラボレ
ーション単位のプログラム情報の表示が実現することが
できる。
【図1】従来のクラス・ブラウザの例を示す図である。
【図2】従来のクラス・ブラウザの他の例を示す図であ
る。
る。
【図3】従来のコール・グラフの例を示す図である。
【図4】本発明のコラボレーションとコール・スタック
を説明する図である。
を説明する図である。
【図5】本発明の開発環境を説明する図である。
【図6】本発明のコラボレーションを編集するエディタ
を説明する図である。
を説明する図である。
【図7】本発明のクラス・ブラウザの例を示す図であ
る。
る。
【図8】本発明のコール・グラフの例を示す図である。
【図9】本発明のコラボレーション・マトリクスを説明
する図である。
する図である。
51 デバッガ 52 ビルダ 54 コラボレーション・マトリクス表示 55 コール・グラフ表示 56 クラス・ブラウザ 57 デバッガ 58 エディタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 祐一 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 (72)発明者 大川 昌弘 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 (72)発明者 菊池 道夫 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内
Claims (9)
- 【請求項1】 ソースレベルでプログラムの実行管理が
でき、コール・スタックから呼び出し関係を取り出すこ
とができる環境におけるプログラム情報の解析・表示方
法において、 コラボレーションとして関係付けられたクラス間のメソ
ッドの呼び出し関係を格納したコラボレーション・レポ
ジトリを有し、 前記コール・スタックから前記コラボレーション・レポ
ジトリに前記メソッドの呼び出し関係を移動し、 前記コラボレーション・レポジトリからコラボレーショ
ンに関連付けて、メソッドを表示することを特徴とする
プログラム情報の解析・表示方法。 - 【請求項2】 請求項1記載のプログラム情報の解析・
表示方法において、 コラボレーション・レポジトリに対して、コラボレーシ
ョン関係を編集することができることを特徴とするプロ
グラム情報の解析・表示方法。 - 【請求項3】 請求項1または2記載のプログラム情報
の解析・表示方法において、前記メソッドの表示は、コ
ラボレーション関係をマトリクスに表示することを特徴
とするプログラム情報の解析・表示方法。 - 【請求項4】 請求項1または2記載のプログラム情報
の解析・表示方法において、前記メソッドの表示は、コ
ラボレーション関係ごとのコール・グラフであることを
特徴とするプログラム情報の解析・表示方法。 - 【請求項5】 ソースレベルでプログラムの実行管理が
でき、コール・スタックから呼び出し関係を取り出すこ
とができる環境を有するプログラム情報の解析・表示シ
ステムにおいて、 コラボレーションとして関係付けられたクラス間のメソ
ッドの呼び出し関係を格納したコラボレーション・レポ
ジトリを有し、 前記コール・スタックから前記コラボレーション・レポ
ジトリに前記メソッドの呼び出し関係を移動し、 前記コラボレーション・レポジトリからコラボレーショ
ンに関連付けて、メソッドを表示することを特徴とする
プログラム情報の解析・表示システム。 - 【請求項6】 請求項5記載のプログラム情報の解析・
表示システムにおいて、 コラボレーション・レポジトリに対して、コラボレーシ
ョン関係を編集することができることを特徴とするプロ
グラム情報の解析・表示システム。 - 【請求項7】 請求項5または6記載のプログラム情報
の解析・表示システムにおいて、前記メソッドの表示
は、コラボレーション関係をマトリクスに表示すること
を特徴とするプログラム情報の解析・表示システム。 - 【請求項8】 請求項5または6記載のプログラム情報
の解析・表示システムにおいて、前記メソッドの表示
は、コラボレーション関係ごとのコール・グラフである
ことを特徴とするプログラム情報の解析・表示システ
ム。 - 【請求項9】 ソースレベルでプログラムの実行管理が
でき、コール・スタックから呼び出し関係を取り出すこ
とができる環境におけるプログラム情報の解析・表示を
実現するためのプログラムを記録した記録媒体におい
て、 コラボレーション・レポジトリからコラボレーションに
関連付けて、メソッドを表示することを特徴とするプロ
グラム情報の解析・表示を実現するためのプログラムを
記録した記録媒体。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9171665A JPH1124901A (ja) | 1997-06-27 | 1997-06-27 | プログラム情報の解析・表示方法およびシステム |
| US09/376,846 US6240549B1 (en) | 1997-06-27 | 1999-08-18 | Method and system for analyzing and displaying program information |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9171665A JPH1124901A (ja) | 1997-06-27 | 1997-06-27 | プログラム情報の解析・表示方法およびシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1124901A true JPH1124901A (ja) | 1999-01-29 |
Family
ID=15927438
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9171665A Pending JPH1124901A (ja) | 1997-06-27 | 1997-06-27 | プログラム情報の解析・表示方法およびシステム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6240549B1 (ja) |
| JP (1) | JPH1124901A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007241426A (ja) * | 2006-03-06 | 2007-09-20 | Hitachi Software Eng Co Ltd | アプリケーションの障害原因の特定作業支援システム |
| JP2010033543A (ja) * | 2008-06-24 | 2010-02-12 | Smg Kk | ソフトウエア動作監視システム、そのクライアントコンピュータおよびサーバコンピュータ、並びに、そのプログラム |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6874105B2 (en) * | 1998-10-30 | 2005-03-29 | International Business Machines Corporation | Operation graph based event monitoring system |
| US6493868B1 (en) * | 1998-11-02 | 2002-12-10 | Texas Instruments Incorporated | Integrated development tool |
| US6496842B1 (en) * | 1999-05-28 | 2002-12-17 | Survol Interactive Technologies | Navigating heirarchically organized information |
| US8042098B2 (en) * | 2000-12-06 | 2011-10-18 | Axiomatic Design Software, Inc. | Method and apparatus for producing software |
| US6922826B2 (en) * | 2001-07-03 | 2005-07-26 | International Business Machines Corporation | Debugger impact reduction through breakpoint motion |
| US20030011647A1 (en) * | 2001-07-16 | 2003-01-16 | International Business Machines Corporation | System and method for indicating a status of multiple features of a data processing system |
| US6971089B2 (en) * | 2001-08-01 | 2005-11-29 | International Business Machines Corporation | Debugger impact reduction through motion of induction variable based breakpoints |
| US7644394B2 (en) * | 2001-11-30 | 2010-01-05 | International Business Machines Corporation | Object-oriented creation breakpoints |
| US7398519B2 (en) * | 2001-11-30 | 2008-07-08 | International Business Machines Corporation | Inheritance breakpoints for use in debugging object-oriented computer programs |
| US20050132336A1 (en) * | 2003-12-16 | 2005-06-16 | Intel Corporation | Analyzing software performance data using hierarchical models of software structure |
| US7434205B1 (en) | 2004-02-19 | 2008-10-07 | Steenhagen Shawn K | Virtual type interpretation, interaction and detection |
| US7546587B2 (en) | 2004-03-01 | 2009-06-09 | Microsoft Corporation | Run-time call stack verification |
| US7650593B2 (en) * | 2004-03-25 | 2010-01-19 | Microsoft Corporation | Proxy objects for display |
| US7827566B2 (en) * | 2004-05-28 | 2010-11-02 | Sap Ag | Graphical user interface for monitoring classloading references |
| US9038040B2 (en) * | 2006-01-25 | 2015-05-19 | International Business Machines Corporation | Method for partitioning programs between a general purpose core and one or more accelerators |
| US7735069B2 (en) * | 2006-02-09 | 2010-06-08 | International Business Machines Corporation | Creating software debug breakpoints activated by specific call patterns |
| US20070256054A1 (en) * | 2006-04-28 | 2007-11-01 | Paul Byrne | Using 3-dimensional rendering effects to facilitate visualization of complex source code structures |
| US8296741B1 (en) * | 2007-03-05 | 2012-10-23 | Google Inc. | Identifying function-level code dependency by simulating runtime binding |
| US8312417B2 (en) * | 2007-05-18 | 2012-11-13 | International Business Machines Corporation | Using dynamic call graphs for creating state machines |
| US8745537B1 (en) * | 2008-02-15 | 2014-06-03 | The Mathworks, Inc. | Graphical interface for managing and monitoring the status of a graphical model |
| US8516452B2 (en) * | 2009-12-08 | 2013-08-20 | International Business Machines Corporation | Feedback-directed call graph expansion |
| US8490055B2 (en) | 2010-09-17 | 2013-07-16 | Ca, Inc. | Generating dependency maps from dependency data |
| US8438427B2 (en) | 2011-04-08 | 2013-05-07 | Ca, Inc. | Visualizing relationships between a transaction trace graph and a map of logical subsystems |
| US8516301B2 (en) | 2011-04-08 | 2013-08-20 | Ca, Inc. | Visualizing transaction traces as flows through a map of logical subsystems |
| US8782614B2 (en) | 2011-04-08 | 2014-07-15 | Ca, Inc. | Visualization of JVM and cross-JVM call stacks |
| US9202185B2 (en) | 2011-04-08 | 2015-12-01 | Ca, Inc. | Transaction model with structural and behavioral description of complex transactions |
| US8943480B2 (en) * | 2011-12-13 | 2015-01-27 | International Business Machines Corporation | Setting breakpoints in optimized instructions |
| US8990780B2 (en) * | 2012-03-29 | 2015-03-24 | International Business Machines Corporation | Setting breakpoints in optimized instructions |
| US8789181B2 (en) | 2012-04-11 | 2014-07-22 | Ca, Inc. | Flow data for security data loss prevention |
| US9274931B2 (en) * | 2013-05-06 | 2016-03-01 | International Business Machines Corporation | Inserting implicit sequence points into computer program code to support debug operations |
| US9330199B2 (en) * | 2014-07-21 | 2016-05-03 | Facebook, Inc. | Striping of directed graphs and nodes with improved functionality |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5339433A (en) * | 1992-11-19 | 1994-08-16 | Borland International, Inc. | Symbol browsing in an object-oriented development system |
| US5481712A (en) * | 1993-04-06 | 1996-01-02 | Cognex Corporation | Method and apparatus for interactively generating a computer program for machine vision analysis of an object |
| US5500881A (en) * | 1993-07-12 | 1996-03-19 | Digital Equipment Corporation | Language scoping for modular, flexible, concise, configuration descriptions |
| US5592600A (en) * | 1994-09-27 | 1997-01-07 | International Business Machines Corporation | Animated display showing execution of object-oriented programs |
| US5740440A (en) * | 1995-01-06 | 1998-04-14 | Objective Software Technology | Dynamic object visualization and browsing system |
| US5781900A (en) * | 1996-01-02 | 1998-07-14 | Sofmap Future Design, Inc. | Flexible hyperlink association system |
-
1997
- 1997-06-27 JP JP9171665A patent/JPH1124901A/ja active Pending
-
1999
- 1999-08-18 US US09/376,846 patent/US6240549B1/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007241426A (ja) * | 2006-03-06 | 2007-09-20 | Hitachi Software Eng Co Ltd | アプリケーションの障害原因の特定作業支援システム |
| JP2010033543A (ja) * | 2008-06-24 | 2010-02-12 | Smg Kk | ソフトウエア動作監視システム、そのクライアントコンピュータおよびサーバコンピュータ、並びに、そのプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US6240549B1 (en) | 2001-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1124901A (ja) | プログラム情報の解析・表示方法およびシステム | |
| US6493732B2 (en) | Method of and an apparatus for displaying version information and configuration and a computer-readable recording medium on which a version and configuration information display program is recorded | |
| US7337401B2 (en) | User interface element representation with simplified view | |
| JP3639410B2 (ja) | コンピュータ・システムおよびコンピュータ・システムを操作する方法 | |
| JP4347371B2 (ja) | 階層ファイル構造の構成要素の選択システムおよび方法 | |
| US5715413A (en) | Dragging and dropping with an instantiation object | |
| JPH09510567A (ja) | ドキュメント・プロキシィ・フレームワーク | |
| JPH08511118A (ja) | コンテナ・オブジェクト・システム | |
| JPH0683598A (ja) | ジョブフロー仕様書自動作成方法 | |
| US8375324B1 (en) | Computer-implemented document manager application enabler system and method | |
| JP2002108649A (ja) | トレース解析を支援するためのプログラムを記録した記録媒体及びプログラム製品 | |
| JPH0934844A (ja) | グループ環境設定方法及びそのシステム | |
| JP7302146B2 (ja) | 情報処理装置、情報処理システム及びプログラム | |
| JP3533674B2 (ja) | 情報表示装置およびその方法 | |
| JP3245509B2 (ja) | 分析装置 | |
| JPH0736684A (ja) | ドメイン指向部品管理方法 | |
| JPH10289106A (ja) | 情報処理装置 | |
| JPH1195992A (ja) | データ作成支援装置、オブジェクト指向分析設計支援装置及びデータ管理方法 | |
| JPH0954688A (ja) | Gui設計支援方法 | |
| JPH09231064A (ja) | ソフトウエア開発支援システム及び該システムを記憶した媒体 | |
| JPH05108458A (ja) | ハイパーテキスト装置 | |
| JP4199610B2 (ja) | 文書表示装置および方法 | |
| Cheng | Visual exploration of large amounts of record-based sequence data | |
| JP2002297425A (ja) | ファイル管理プログラム、ファイル管理プログラムを記録したコンピュータ読取可能な記録媒体、ファイル管理装置およびファイル管理方法 | |
| JP2004295442A (ja) | アプリケーションソフトウエアにおけるツリーコントロールとリストコントロールの合体表示制御方法及びこれに用いるアプリケーションソフトウエア用のプログラム |