JPH0844547A - オブジェクト指向ソフトウェアの視覚化 - Google Patents

オブジェクト指向ソフトウェアの視覚化

Info

Publication number
JPH0844547A
JPH0844547A JP7148800A JP14880095A JPH0844547A JP H0844547 A JPH0844547 A JP H0844547A JP 7148800 A JP7148800 A JP 7148800A JP 14880095 A JP14880095 A JP 14880095A JP H0844547 A JPH0844547 A JP H0844547A
Authority
JP
Japan
Prior art keywords
visualization
instance
hook
graphical
rules
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
JP7148800A
Other languages
English (en)
Other versions
JP3033937B2 (ja
Inventor
Johannes Christiaan Laffra
ヨハネス・クリスチャン・ラッフラ
Malhotora Ashok
アショク・マルホトラ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0844547A publication Critical patent/JPH0844547A/ja
Application granted granted Critical
Publication of JP3033937B2 publication Critical patent/JP3033937B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 (修正有) 【目的】オブジェクト指向ソフトウェア・システム用に
カスタム化された視覚化の改善されたシステムと方法の
提供。 【構成】オブジェクト指向システムのメソッド230
は、グラフィカル・インタフェースで視覚化できるグラ
フィカル情報を生成できるメソッド・フック260,2
70によって自動的に編成される。メソッド・フック2
60,270を実行すると、作成および破壊されるオブ
ジェクト・インスタンス205、開始あるいは終了され
るメソッド230のオカレンスを示すことができる。メ
ソッド・フック260,270はグラフィカル情報と其
の視覚化を更新するためのルールを備えた視覚化スクリ
プト285を使用する監視機能の実行を開始する。更新
は視覚化されたオブジェクト・インスタンス205の現
在の状態に適合したものとなる。ルールの変更や、制約
事項の監視機能によって、視覚化を修正することもでき
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はオブジェクト指向ソフト
ウェアの視覚化を特に強調した、ソフトウェア・システ
ムの実行を視覚化する分野に関する。
【0002】
【従来の技術】コンピュータ・プログラミングの分野に
おいて、コンピュータ・プログラムの実行をグラフィカ
ル・インタフェースで視覚化するのが望ましいことがし
ばしばある。インタフェースにもたらされる視覚表示
は、説明または理解のためにアルゴリズムの仕組みをユ
ーザに示すために使用される場合がある。オブジェクト
指向システムの実行の視覚化は、従来の技術においてあ
る程度まで検討されてきている。典型的には、これらの
視覚化システムは以下のような問題を対象とするもので
ある。
【0003】・オブジェクト指向システムのプログラム
状態のどの局面を視覚化すべきかを、ユーザはどのよう
に選択するのか。 ・選択した局面の各々をどのように表示すべきか。 ・選択した局面をいつ表示すべきか。 ・表示をいつリフレッシュすべきか。
【0004】Balsa(IEEE Computer, Vol. 21, No. 5,
May 1988, pp. 14-36)はプログラムの重要な事象を捕
択するために追加されたプロシージャ呼出しを開示して
いる。各事象は1つまたは複数の視覚化プロセスに分散
され、これらのプロセスが視覚化を構成するグラフィッ
ク表示を作成し、更新する。しかしながら、これは本質
的にマニュアルのプロセスである。特別なコードを手作
業で作成し、コンパイルし、アプリケーションとリンク
させて、視覚化を作成する。視覚化の目的がデバッグで
ある場合、バグが見つかり、修正されてから、コードを
除去しなければならない。これは他のバグにつながりか
ねないプロセスである。
【0005】TANGO(IEEE Computer, Vol. 23, No. 9,
Sept. 1990, pp.27-39)は位置、画像、パスおよび変異
などの、事象ならびに視覚化を指定するために使用でき
る多数のオブジェクト・クラスを開示している。しかし
ながら、事前定義されたオブジェクトはプロセスをある
程度単純化するものではあるが、プロセスは依然として
マニュアルのままである。
【0006】
【発明が解決しようとする課題】本発明の目的は、ユー
ザがオブジェクト指向ソフトウェア・システム用にカス
タム化された視覚化を簡単かつ容易に作成できるように
する改善されたシステムおよび方法を提供することであ
る。
【0007】本発明の他の目的は、プログラム設計、デ
バッグ、および検査、ならびに教育および学習のため
に、コンピュータで実行されるオブジェクト指向ソフト
ウェアの視覚化をカスタム化するための改善されたシス
テムおよび方法を提供することである。
【0008】
【課題を解決するための手段】本発明はオブジェクト指
向ソフトウェアの内部の仕組みを視覚化するための効率
のよいシステムおよび方法である。
【0009】オブジェクト指向システムは1つまたは複
数のオブジェクト・クラスを有するアプリケーション・
プログラムを有している。これらのオブジェクト・クラ
スの各々は変数を備えた1つまたは複数のオブジェクト
・インスタンスを有している。オブジェクト・クラスは
変数の値を変更することによって、インスタンスの状態
を変更できる方法も有している。
【0010】これらの方法はグラフィカル・インタフェ
ースで視覚化できるグラフィカル情報を生成することの
できるメソッド・フックによって編成される。メソッド
・フックは自動技法によって新たに追加されたものであ
る。メソッド・フックを実行すると、作成されるオブジ
ェクト・インスタンス、破壊されるオブジェクト・イン
スタンス、開始されるメソッドまたは終了されるメソッ
ドのオカレンスを示すことができる。これらのオカレン
スの1つの事象において、メソッド・フックはグラフィ
カル情報を使用する監視機能、ならびに視覚化スクリプ
トの実行を開始し、視覚化を更新する1つまたは複数の
ルールがグラフィカル・インタフェースに示される。更
新は視覚化されているオブジェクト・インスタンスの現
行状態に適合したものとなろう。ルールを変更して、ア
プリケーション・プログラムの再コンパイルまたは再リ
ンクなしに、あるいはソース・コードに対する手作業に
よる変更なしに、視覚化を改変することができる。制約
を監視機能によって使用して、視覚化を改変することも
できる。
【0011】
【実施例】図1は本発明の好ましい実施例が作動するコ
ンピュータ・システム100を示すブロック図である。
好ましい実施例は1つまたは複数のアプリケーション・
プログラム102を含んでいる。アプリケーション・プ
ログラム102の1つのタイプはコンパイラ105で、
これはオプティマイザ106を含んでいる。コンパイラ
105およびオプティマイザ106はソース・プログラ
ム(他のアプリケーション・プログラム102と同様
な)を最適化された実行可能コードに変換するように構
成されている。一般的にいって、ソース・プログラムは
最適化された形態に変換され、次いで、実行可能コード
に変換される。コンパイラ105およびオプティマイザ
106はハードウェア装置112を含んでいるコンピュ
ータ・プラットフォーム104で作動する。ハードウェ
ア装置112は1つまたは複数の中央演算処理装置(C
PU)116、ランダム・アクセス・メモリ(RAM)
114および入出力インタフェース118を含んでい
る。マイクロ命令コード110、たとえば縮小命令セッ
トもプラットフォーム104に含まれている。グラフィ
ック表示装置126、データ記憶装置130、および印
刷装置134を含む各種の周辺構成要素をコンピュータ
・プラットフォーム104に接続することもできる。オ
ペレーティング・システム108がコンピュータ・シス
テム100の各種の構成要素の作動を調整する。このよ
うなコンピュータ・システム100の例には、IBM
RISC System/6000(RISC Sys
tem/6000はIBM Corporationの
商標である)がある。コンピュータ分野の技術者が本発
明の意図する範囲内の多くの同等なコンピュータ・シス
テム100を熟知していうることが容易に理解されよ
う。
【0012】本発明は詳細にいえば、オブジェクト指向
システムに関する。それ故、1つまたは複数のアプリケ
ーション・プログラム102はオブジェクト指向アプリ
ケーションとなろう。コンパイラ105およびオプティ
マイザ106はオブジェクト指向コンピュータ言語、た
とえば、C++やSmalltalkを処理する能力を
有するものである。オブジェクト指向システムは当分野
で周知のものである。
【0013】図2はオブジェクト指向システムの1つま
たは複数のオブジェクトの構造、ならびにこれらをどの
ように改変して、本発明で使用される構造を作成するか
を示すブロック図である。
【0014】オブジェクト・クラス200は通常、典型
的なものが205である複数のオブジェクト・インスタ
ンスを有している。各オブジェクト・インスタンス20
5は1つまたは複数の変数210を含んでいる。インス
タンス内の変数210のセットはオブジェクト・インス
タンスのステート220と定義されている。クラス内の
インスタンス205は同じ変数定義(すなわち、変数の
タイプおよび数)を有しているが、各インスタンスの変
数は実行時に異なる値を有することができる。したがっ
て、所与のインスタンスのステートも、そのインスタン
ス変数の実際の値によって、実行時に定義される。
【0015】オブジェクト・クラス200はさらに、オ
ブジェクト・クラスに常駐している各インスタンス上で
作動できる1つまたは複数のメソッド230を含んでい
る。メソッド230は実行可能ステートメントを集めた
ものであり、これらのステートメントはメソッド230
が実行されるクラス200内のインスタンス205のス
テートを変えることができる。したがって、実行時に、
メソッドはインスタンスのステートを定義するインスタ
ンス変数セット210内のインスタンス変数の1つまた
は複数の値を変更することによって、インスタンスのス
テートを変更する。
【0016】任意のオブジェクト・クラスのメソッドを
呼び出して、多くの方法で実行することができる。これ
らは同一のオブジェクト・クラス200内の他のメソッ
ド230による呼出し、他のオブジェクト・クラス20
0内のインスタンス205からの呼出し、もしくはオブ
ジェクト指向システム外の呼出しサイトを含んでいる。
換言すると、任意の周知の従来技術のプロシージャを使
用して、メソッド230を呼び出すことができる。
【0017】さらに説明するために、典型的なオブジェ
クト・クラスをEmployee200と呼ぶ。オブジ
ェクト・クラスEmployee200は会社内の全従
業員についての情報を表す。複数のインスタンス205
は個々の従業員に関する一連のレコードとなり、最初の
インスタンス204から最後のインスタンス206まで
を含んでいることができる。各インスタンスは所与の値
を有する1組のインスタンス変数210(メンバあるい
は属性210ともいう)からなっている。これらの値は
インスタンスに関連する特定の従業員を記述する。たと
えば、変数nameおよびemployee numb
erおよびsalaryはインスタンスの変数210の
セットであり、したがって、所与の従業員を記述するイ
ンスタンスのステート220を定義している。
【0018】上述のオブジェクト指向構造は周知であ
る。
【0019】本発明において、パーサ240はオブジェ
クト指向システムにおける1つまたは複数のオブジェク
ト・クラス200のメソッドの定義をまず「読み取っ
て」、メソッド・フック(260および270)データ
構造体をどこへ新たに挿入するかを決定する。好ましい
実施例において、パーサ240はメソッド・フック(2
60および270)を挿入するためのソース・コード内
の場所を見つけられるように、オブジェクト・クラス定
義(すなわち、変数およびメソッドの定義のソース・コ
ード)を読み取る。パーサ240はメソッド構文の指示
を使用することによって、たとえば、各メソッドの開始
および終了区切り文字を認識することによって各メソッ
ドの始まりと終わりをまず判定することによってソース
・コードを分析する。通常、これらの区切り文字はオブ
ジェクト指向言語によって異なるものであり、たとえ
ば、C++では使用される区切り文字は「{」およ
び「}」である。異なるオブジェクト指向言語では、他
の指示(区切り文字)を使用することができる。あるい
は、パーサ240はメソッド260の始めだけにメソッ
ド・フックをおくことができる。
【0020】たとえば、オブジェクト指向言語C++に
おいて、メソッド・フックをスタックに変数の宣言を挿
入して作成することができる。この変数が作成されるの
は、C++コードの囲まれた本体(すなわち、メソッド
230)が実行されたときであり、削除されるのは、メ
ソッドが終了したときである。変数は特別なタイプのも
のであり、変数が作成されたとき、コードの特別な部分
(C++で「コンストラクタ」と呼ぶ)が実行されるよ
うになっている(これによって、フック260が形成さ
れる)。さらに、変数が再度削除されたとき、特別なコ
ードが実行される(C++で「デストラクタ」と呼
ぶ)。したがって、変数の作成および削除は、メソッド
が実行されるたびに行われる。コンパイル後フックを挿
入する他の好ましい方法については、以下で説明する。
【0021】フックは実行可能コードの形を取り、情報
を監視機能に渡すために使用される(図3参照)。オブ
ジェクト指向アプリケーション・プログラムの対象とな
るオブジェクト・クラスのインスタンスが作成または削
除されるたびに、また対象となるオブジェクト・クラス
のメソッドに出入りするたびに、情報が渡される。対象
となるオブジェクト・クラスはフックが挿入されている
クラスである。
【0022】さらに、情報の受け渡しに課されるいくつ
かの条件がある。たとえば、呼出しをバッファに集め、
ある数が選択された後、まとめて処理される。
【0023】3つのインスタンス変数および1つのメソ
ッドを備えたC++のクラス定義の例は次のようにな
る。
【0024】1. class Employee { 2. char *name; 3. int employee_number; 4. float salary; 5. void RaiseSalary(int); 6. }; 7. void Employee::RaiseSalary(float new_salary) 8. { 9. salary = new_salary; 10.}
【0025】パーサ240によって構成した場合、7行
目ないし10行目で定義されているメソッド230の定
義を次のように修正できる。
【0026】7. void Employee::RaiseSalary(float ne
w_salary) 8. { 8a. _SPECIAL_HOOK_TYPE_hook(this, "Employee::R
aiseSalary", 8b. new_salary); 9. salary = new_salary; 10.}
【0027】8a行目と8b行目のコードはメソッド2
30に対するフックを形成する。メソッドRaiseSalary
がEmployeeというタイプのインスタンスで呼び出される
たびに、その従業員のサラリーが更新され、8a行目と
8b行目のステートメントが実行される。これはスタッ
クの変数の宣言である。上述のように、このステートメ
ントを実行することによって、監視機能(図3で説明)
に対する呼出しが行われる。これはフックをどのように
C++のプログラムに挿入したら、メソッド230の実
行を検出できるかを示している。実行されると、これら
のメソッドはインスタンスを操作する、すなわちこれら
の変数210に対して修正を行うことができる。
【0028】C++を使用した他の好ましい実施例にお
いて、パーサ240は所与のクラスのコンストラクタお
よびデストラクタにフックをおくこともできる。コンス
トラクタおよびデストラクタは特別なC++メソッドで
あり、これらはそのクラスのインスタンスが作成され、
再度削除されたときに実行される。これによって、コン
ストラクタおよびデストラクタのメソッド・フック26
0および270は、インスタンスが作成され、削除され
る時期を示す。コンストラクタまたはデストラクタのい
ずれかがクラス定義で定義されていない場合には、パー
サ240は挿入されたメソッド・フックを使ってコンス
トラクタおよびデストラクタを生成することができる。
【0029】クラス定義の文法解析する際に、パーサ2
40は実行時タイプ・ファシリティを生成して、オブジ
ェクト・インスタンスのインスタンス変数を実行時に検
査ないし修正できるようにすることができる。
【0030】パーサはオブジェクト指向システムの1つ
または複数のオブジェクト・クラスに作用することがで
きる。どのクラスを編成するか(フックが挿入されるも
の)を選択するかは、ユーザに任されている。編成され
るクラスだけが実行時にグラフィカル・インタフェース
126で視覚化される。
【0031】フック260および270の挿入後、構成
されたコードが当分野で周知の技法を使用して、コンパ
イルされ、リンクされる(280)。
【0032】システムの中には、編成をコンパイル(2
80)後に行い、これによって編成を実行可能コードに
直接行えるものもある。これは実行可能コードをパッチ
することにより、実行可能コード内で所与のメソッドの
始まりと終わりを見つけだすことにより、かつ実行可能
コードで直接、フック260および270それぞれの実
行可能バージョンを挿入することによって行われる。こ
のプロセスにおいて、パーサ240は実行可能コードに
作動するパーサ(構文解析部)である。さらに、オブジ
ェクト指向言語のためのコンパイラの機能を拡張して、
本発明の目的に合わせてフック260および270を直
接生成することもできる。
【0033】さらに他の好ましい実施例において、クラ
ス・メソッドの実行を周知の技法を使用して、インタプ
リタ・モードで行うことができる。この場合、フック2
60および270をインタプリタ内部から実行できる。
これはSmalltalkなどのオブジェクト指向言語
の場合である。このプロセスではパーサ240が必要な
くなる。
【0034】パーサ240はオブジェクト・クラス20
0を新たに編成して、上述のように挿入されたフック2
60および270とともにもとのクラス定義を形成する
構造体250を作成する。このようにして、オブジェク
ト・クラスが手作業を何ら使用せずに編成される。
【0035】実行可能コード290の実行前に、新規の
視覚化スクリプト285がユーザによって作成され、実
行可能コード290によって使用される。スクリプト2
85は監視機能(図3)に、フック260および270
によって生成される情報を解釈する方法を伝える。視覚
化スクリプトの解釈プロセスを図4で説明する。
【0036】視覚化スクリプト285は新規な形態の読
取り可能ソース・コードでルール288を集めたもので
ある。視覚化スクリプト285は1つまたは複数のオブ
ジェクト・クラスを識別し、これらのオブジェクト・ク
ラスのインスタンスを表示装置126に表示する方法を
指定する。この指定は視覚化スクリプトのルール288
を使用して行われる(図4のブロック410ないし45
0も参照)。たとえば、グラフィカル表示装置に示され
た視覚化が所与の部門の全従業員のサラリーを示してい
る場合、視覚化スクリプトは個々の従業員のサラリーを
棒グラフの1本の棒として表示するためのルールを含ん
でいる。これはルールの1つに「Employee S
alaries」というタイトルの付いたウィンドウを
作成させることによって行われる。他のルールは棒の高
さがサラリーの関数である従業員1人に対して1本の棒
を作成することになる。他のルール(または同じルー
ル)は従業員のサラリーがマネージャのものよりも高い
場合には、棒を赤に着色する。したがって、各従業員イ
ンスタンスに対するこのようなルールのセットはその部
門の各従業員(インスタンス)のサラリーの棒グラフを
作成することとなる。視覚化スクリプトが受動的なもの
であることに留意されたい。これは監視機能によって選
択的に実行される指定にすぎない。
【0037】図3は本発明によって使用される監視機能
300の好ましい実施例の流れ図である。監視機能はフ
ック260および270が実行されたときに、これらに
よって生成される情報を受け取る。監視機能によって収
集される情報はグラフィック表示装置で視覚化され、視
覚化スクリプト285で見つけだされるルール288の
セットによってガイドされる。特定のフックが実行され
るたびに、監視機能300は現在の表示およびスクリプ
トを検査する。監視機能300はフックおよび視覚化ス
クリプトに応じて、表示を修正する。前述したように、
フック260または270はあるインスタンスで実行さ
れる特定のメソッドの開始または終了についてオブジェ
クト・インスタンスの作成または削除を通知することが
できる。フックの性質に応じて、異なる処置を監視機能
が取ることもできる。フックがインスタンスの作成また
は削除を通知した場合には、視覚化スクリプト285を
使用して、表示装置でインスタンスの視覚的表示を生成
または除去を行うことができる。フックがメソッドの実
行を通知した場合には、以前に作成されたオブジェクト
の表示が対応するインスタンスのステートをもはや適切
に視覚化しなくなったときに、表示を更新することが必
要となる。すなわち、1つまたは複数のメソッドの実行
中に、インスタンスのステートが更新され、オブジェク
トの表示がグラフィック表示装置に利用できる場合に
は、このステートの変化を反映するために、再描画する
ことが必要となる。
【0038】メソッドが開始または終了したこと、ある
いはオブジェクト・インスタンスが作成または削除され
たことを示すメソッド・フック(260、270)が実
行された後、監視機能300が実行される。監視機能は
視覚化スクリプト(図4で説明する)の一部または全部
を選択的に評価して、グラフィカル・インタフェース1
26におけるオブジェクト指向システムの視覚化の表示
を構築ないし修正する方法を決定する。監視機能300
は視覚化スクリプトのルール288によって決定される
いくつかのタスクを行う。これらのタスクには、1.監
視機能を実行させる条件によって行われた変更を視覚化
するかどうかを決定する、2.視覚化をどのように修正
するかを決定する、3.視覚化スクリプトを使用して視
覚化を修正する、4.いくつかの制約が満たされた場合
に、修正を拡張することが含まれている。
【0039】ステップ310において、メソッド・フッ
ク260または270の一方の実行可能バージョンが実
行時に実行されたときに、監視機能300が実行され
る。
【0040】ステップ320において、監視機能はメソ
ッドの開始または終了、あるいはオブジェクト・インス
タンスの作成または削除によって生じた変更が、視覚化
すべきオブジェクト・インスタンスの変更を引き起こす
かどうかを判定する。これはオブジェクト・インスタン
スがグラフィック表示装置に現在表示されており、その
現在のステートがもはや視覚化で反映されていない場合
である。好ましい実施例において、監視機能は視覚化ス
クリプト285を使用している。視覚化スクリプトはグ
ラフィック表示装置でのオブジェクト・インスタンスの
表示のためのルール288を定義する。監視機能300
を視覚化スクリプトで参照されるオブジェクト・クラス
のメソッド・フックが呼び出した場合、そのオブジェク
ト・クラスは表示されるか、あるいは実行時にグラフィ
カル・インタフェース126で修正することが必要とな
る。オブジェクト・クラスをグラフィック表示装置に表
示すべきかどうかは、該当する視覚化スクリプトに視覚
化ルール288を与えることによって決定される。所与
の視覚化スクリプトを異なるルールと交換することによ
って、ソース・コードの再コンパイルまたは再リンクを
必要とせずに、オブジェクト指向プログラムの異なる視
覚化を作成することができる。
【0041】メソッド・フックがグラフィック表示の変
化をもたらさない場合、監視機能はステップ395へジ
ャンプして、戻る。
【0042】活動化されたフックが新しいオブジェクト
・インスタンスの作成を通知した場合、次のステップ3
30では、視覚化スクリプトにこのオブジェクト・イン
スタンスを視覚化するためのルールがあるかどうかを判
断するためのチェックが行われる。これが行われない場
合には、監視機能300は次のステップ350へジャン
プする。この新たに作成されたインスタンスを視覚化す
るルールがスクリプトにある場合には、スクリプトを使
用して、必要な視覚化340を実際に生成する。たとえ
ば、所与のルール288を使用して、クラスEmployeeの
オブジェクト・インスタンスが矩形として表示され、そ
のボックスの高さは従業員のsalaryの関数となる。さら
に、他のルール288を使用して、テキスト・ラベルが
矩形に近接して生成され、この従業員のnameを表示す
る。クラスEmployeeのオブジェクトが作成されるたび
に、フックがこのタイプに対するコンストラクタで実行
され、監視機能300に通知が行われ、また視覚化スク
リプト285が所与の従業員を視覚化するための2つの
ルールを見つけだすために使用される。従業員の視覚化
後に、たとえば、その従業員のサラリーが更新された場
合には、表示を後で更新する必要があることがある。こ
れはステップ320で行われることとなる。この例にお
いて、従業員のサラリーを表すボックスを更新すること
が必要となる。従業員のnameが同じままであれば、ラベ
ルを再描画する必要はない。
【0043】活動化されたメソッドが既存のオブジェク
ト・インスタンスの削除を通知し、このインスタンスの
視覚化が以前に生成されている場合には、ステップ33
0はこのオブジェクト・インスタンスの視覚化を削除す
る。これが行われない場合には、監視機能は次のステッ
プ350へジャンプする。Employeeの例において、矩形
とラベルの両方をグラフィック表示装置から除去する必
要がある。
【0044】ステップ350はメソッド・トリガが活動
化されているかどうかをチェックする。視覚化スクリプ
ト285は所与のメソッドの実行に対するユーザの関心
を指定できる特別なルール288を含んでいることがで
きる(図4の450も参照)。メソッド・トリガのルー
ルはクラス名、メソッド名、およびこのメソッドの開始
(フック260に対応)、またはこのメソッドの終了
(フック270)に関心を持っているかどうかを識別す
る。スクリプトがフックの活動化にマッチするルールを
含んでいる場合(310)、トリガに対する活動化コー
ドが360で実行される(視覚化スクリプト285の該
当するルール288を使用して)。スクリプトが現在活
動化されているフックにマッチする1つまたは複数のル
ールを含んでいない場合、監視機能300はステップ3
70へジャンプする。メソッド・トリガを使用して、た
とえば、所与のメソッドが実行された回数を計数し、あ
る閾値に達しているときに、表示装置を更新することが
できる。さらに、メソッド・トリガを使用して、たとえ
ば、所与のメソッドが、たとえば、視覚項目を赤に着色
することによって開始されたときに表示を変更し、メソ
ッドが、たとえば、視覚項目を緑に戻すことによって再
度終了したときに、表示をリセットすることができる。
【0045】ステップ30において、スクリプトによっ
ておそらく定義された一連の制約を解決する(図4の4
40参照)。制約ルールを解決すると、視覚化変数が更
新され、これによって表示に影響を及ぼす。制約が定義
されていない場合には、ステップ370は何の影響も及
ぼさない。
【0046】ステップ380において、表示が実際に更
新される。監視機能の実行時に以前に作成され、まだ活
動状態の各視覚表現がチェックされる。所与のオブジェ
クト・インスタンスに対する1つまたは複数の視覚化ル
ール288のセットが再検討され、表示のための各パラ
メータがスクリプト285を使用して再計算される。視
覚表現の各パラメータの値は1つまたは複数の視覚化変
数(おそらく、メソッド・トリガまたは制約によって更
新された)の関数である。あるいは、パラメータの値は
この視覚表現がリンクされているインスタンスの1つま
たは複数のインスタンス変数の関数となる。視覚表現が
以前の計算と異なっていることを380が検出すると、
390で再描画される。
【0047】好ましい実施例において、プロセス380
に対する各種の最適化が考えられている。視覚化スクリ
プトを内部データ構造に変換し、指定と実際の値の迅速
な比較を容易とすることができる。さらに、表示を異な
る速度で更新することができる(多数の変更を1つにま
とめるために)。加えて、2重バッファリング、モーフ
ィング、およびスムージングなどのコンピュータ・グラ
フィックスおよびアニメーションで周知の技法を使用し
て、ある表現の他のものへの移行を変えることができ
る。
【0048】図4は視覚化スクリプト言語で利用できる
構文要素にしたがって取ることのできる処置を示す。ま
ず、410において、グラフィカル・インタフェース1
26に示される視覚化を定義するための1つまたは複数
のグローバル・エンティティを生成することができる。
スクリプトが活動状態となったとき、およびスクリプト
が非活動状態となって、削除されたときに、エンティテ
ィに対するルールが実行される。通常、編成されたプロ
グラムが活動化されたとき、およびプログラムが停止し
て、非活動状態となったときに、スクリプトは活動状態
となる。410で生成されたグローバル・エンティティ
には名称が与えられる。これらのエンティティは一般的
なプログラミング言語で周知の基本タイプ(整数、文字
およびストリングを含むが、これらに限定されるもので
はない)、または一連の視覚要素(ウィンドウ、矩形、
円およびテキストを含むが、これらに限定されるもので
はない)のタイプのいずれかのタイプを有している。基
本タイプの要素は要素のタイプのドメインからの初期値
によって初期設定される。視覚タイプの要素は1つまた
は複数のパラメータのセットによって定義される。各パ
ラメータの値は周知の機能演算子(+、−および*を含
むが、これらに限定されるものではない)を使用した、
1つまたは複数の定数値または1つまたは複数のグロー
バル・エンティティ、あるいはこれら両方を参照する式
によって与えられる。ルールの指定は宣言型であり、図
3の監視機能が視覚エンティティの実際の表示をグロー
バル・エンティティのいずれかに対する現在の値にした
がったものにしなければならないことを示す。所与の視
覚エンティティを決定するグローバル・エンティティの
1つが値を変更した場合、視覚エンティティの表示は自
動的に行われる。ユーザは表示の変化を管理する方法で
はなく、エンティティの外観を指定するだけですむ。好
ましい実施例において、グローバル・エンティティは通
常、表示として使用されるか(タイプがwindowの場
合)、あるいはウィンドウ内の装飾として使用される
(視覚化がどんなものであるかを説明する場合)。
【0049】所与のオブジェクト・インスタンスが作成
されたときに、構文要素420を活動化することができ
る。この場合、インスタンスのステートを、視覚環境に
関連した場合にだけ活動状態となるローカル変数といわ
れる1つまたは複数の特別なインスタンス変数によって
拡張することができる。ローカル変数は名前で呼ばれ、
410のグローバル視覚エンティティに類似したタイプ
を有している。ローカル・インスタンスのタイプが視覚
エンティティの1つである場合、そのパラメータの値は
1つまたは複数の定数値、または1つまたは複数のグロ
ーバル・エンティティ、または1つまたは複数のローカ
ル変数、またはインスタンスのステートからの1つまた
は複数のインスタンス変数(210)、あるいはこれら
すべての組合せによって決定される(図2の220参
照)。
【0050】所与のオブジェクト・インスタンスが作成
されたとき、構文要素430を活動化することができ
る。この場合、オブジェクト・インスタンスは1つまた
は複数のエンティティまたはビューによって表すことが
できる。視覚タイプの要素は1つまたは複数のパラメー
タのセットによって定義される。これらのパラメータの
値は1つまたは複数の定数値、または1つまたは複数の
グローバル・エンティティ、または1つまたは複数のロ
ーカル変数、またはインスタンスのステートからの1つ
または複数のインスタンス変数(210)、あるいはこ
れらすべての組合せによって決定される(図2の220
参照)。1つまたは複数のパラメータを決定する1つま
たは複数の要素が値を変更した場合、表現が再計算さ
れ、再描画される(図3参照)。
【0051】構文要素440は一連の制約事項を形成す
る。制約ベースのプログラミングは所与のセットの変数
のドメインを制限するための周知の宣言型技法である。
この場合、制約事項をグローバル変数またはローカル変
数に対して定義することができる。制約事項は2組の変
数に対する関係を定義する。関係は宣言型である(ユー
ザによって一回定義されるものであり、解決は監視機能
300の一部である制約システム370に任される)。
制約事項は2つのオペランドと1つの演算子の形態とな
る。オペランドはグローバル変数、またはローカル変
数、または定数値、またはインスタンス変数、または周
知の数値オペランド、あるいはこれらすべてに対する式
である。演算子は比較演算子(<、>=、および==な
どの)である。所与の制約が無効化された場合、制約事
項の全セットが制約事項の有効なセットを形成するま
で、制約レゾルバ(constraint resolver)370が1
つまたは複数のグローバル変数またはローカル変数を変
更する。所与の視覚化スクリプト285における制約ル
ール288の使い方の例については、図5を参照された
い。
【0052】構文要素440は1つまたは複数のメソッ
ド・トリガの指定を可能とする。メソッド・トリガはク
ラス名およびメソッド名を指し、実行時(310)に実
行されるフック260および270がこのトリガにマッ
チしたときに、何を行うかを定義する。フック260お
よび270はクラス名およびメソッド名を指す。フック
のクラス名がトリガのクラス名とマッチしており、フッ
クのメソッド名がトリガのメソッド名とマッチしている
とき、トリガはフックとマッチし、対応する処置が実行
される。実行される処置はグローバル変数またはローカ
ル変数に新しい値を割り当てることからなっている。い
くつかの好ましい実施例においては、処置がオーディオ
装置での所与の音色の生成、あるいはスリープ・ステー
トメントの活動化であって、視覚化の遅延、あるいは現
在実行中の視覚化に影響を及ぼす何からの態様をもたら
すものであることもある。
【0053】視覚化スクリプトをユーザが直接、周知の
テキスト・エディタあるいはワード・プロセッサを使用
して、テキストの形で生成することができる。あるい
は、実際の視覚化スクリプトをコンピュータ・プログラ
ムによって生成することができる。たとえば、ビジュア
ル・スクリプト・ビルダと呼ばれることのある対話型ツ
ールは、図面やその他の技法の形でユーザが与える仕様
からスクリプトを生成することができる。図面は視覚化
を定義するための規則を指定する。さらに他の好ましい
実施例においては、たとえばプログラムについての設計
情報から推論される知識によって、スクリプトを(半)
自動的に生成することができる。後者の場合、スクリプ
トは指定言語として直接作用するものではなく、異なる
プログラム開発ツールの間の通信媒体として作用する。
【0054】C++におけるリンク・リストのオブジェ
クト・クラスの例を以下に示す。このクラスの例は図5
を説明するために使用される。
【0055】class List { public: int value; List *next; void SetValue(int value); List(List *, int); };
【0056】クラスListは2つのインスタンス変数、整
数のvalueおよびリストの次の要素nextに対するポイン
タを有している。クラスListはSetValue()(インスタン
ス変数valueを更新する)と、所与のvalueおよびリスト
内の次の要素に対するポインタによってクラスListのイ
ンスタンスを作成するList()という2つのメソッドを有
している。
【0057】サンプル・プログラムにおいて、クラスLi
stの6つのインスタンスが作成され、任意の初期値によ
って初期化され、周知のリンク・リスト・データ構造に
リンクされる。作成後、プログラムはリンク・リストを
分類し、リンク・リスト内のノードの値が整数値の配列
された集合を形成するようにする。
【0058】リンク・リストが実行時に実行されたとき
に、そのリンク・リストを視覚化するために使用される
スクリプトのサンプルを以下に示す。
【0059】1. GLOBAL Sort Window 400 400 600
200 2. LOCAL List x Integer 570 3. TYPE List Box Sort x 50 9 value "black" 1
"gray80" 4. ENSURE List x < next.x-15
【0060】本例において、図4の410で認められる
ように、1行目はSortというグローバル・ウィンドウを
作成して、視覚化を表示し、ウィンドウ・システム技術
で周知のアドレス指定技法を使用して、ウィンドウを位
置(400,400)に配置し、600×200画素の
寸法を与える。
【0061】図4で説明した構文要素420を使用し
て、2行目は視覚化で使用されるローカル変数によっ
て、クラスListの各インスタンスのステートを拡張す
る。本例において、2行目は初期値が「570」のxと
いう整数値を指定する。この変数はクラスListのすべて
のインスタンスに追加される。
【0062】図4で説明した構文要素430を使用し
て、本例の3行目はSortウィンドウに表示すべきボ
ックスを定義する。ボックスの水平位置は2行目で定義
したx変数の値である。垂直位置は定数「50」であ
る。ボックスの幅は定数「9」であり、高さはvalueイ
ンスタンス変数の値である。3行目の他の部分は境界線
の色や幅、およびボックスの塗りつぶし色などの他の属
性を指定する。4行目はビューで定義した制約事項を適
用する。本質的に、4行目は次のインスタンスのx変数
の関数として、x変数の値を制限する。これによって、
このインスタンスに対するボックスが、リンク・リスト
内の次のインスタンスに対するボックスからの一定位置
に描かれる。
【0063】図5はリンク・リストの3つのビューを示
す。一番上のビュー510はデータ構造の初期化中のリ
ストの視覚化を示す。中間のビュー520は分類アルゴ
リズムが進行している際の、リストについて考えられる
視覚化を示す。一番下のビュー530はアルゴリズムが
分類を終わった後でのリストの視覚化を示す。
【0064】本開示により、当分野の技術者には本発明
者が意図している範囲内の他の同等な実施例を開発でき
るであろう。
【0065】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0066】(1)コンピュータ・システムのグラフィ
カル・インタフェース上でのオブジェクト指向プログラ
ムの実行を視覚化するためのコンピュータ・システムに
おいて、コンピュータ・システム上で実行できる1つま
たは複数のオブジェクト指向アプリケーション・プログ
ラムであって、該アプリケーション・プログラムが1つ
または複数のオブジェクト・クラスを有しており、各オ
ブジェクト・クラスが1つまたは複数のオブジェクト・
インスタンスを有しており、各オブジェクト・インスタ
ンスが1つまたは複数の変数を有しており、変数の各々
が値を有しており、各オブジェクト・インスタンスの1
つまたは複数の変数の値がこれらのオブジェクト・イン
スタンスのステートを定義する変数セットであり、各オ
ブジェクト・クラスが変数セットの値を変更することに
よってインスタンスのステートを変更することのできる
ステートメントの集合である1つまたは複数のメソッド
をさらに有しているアプリケーション・プログラムと、
オブジェクト・インスタンスの1つまたは複数のメソッ
ドに挿入された1つまたは複数のメソッド・フック・デ
ータ構造であって、メソッド・フックがグラフィカル・
インタフェースに視覚化すべきグラフィカル情報を生成
できるメソッド・フック・データ構造と、1つまたは複
数のルールを含んでおり、ルールを使用してグラフィカ
ル・インタフェースでの視覚化を定義する視覚化スクリ
プトと、あるオカレンスを示すメソッド・フックが実行
されたときに実行される、グラフィカル情報および視覚
化スクリプトおよびグラフィカル・インタフェース上で
の視覚化を更新するためのルールを使用する監視機能と
からなるコンピュータ・システム。 (2)メソッド・フックがメソッドの前に挿入されるこ
とを特徴とする、上記(1)に記載のシステム。 (3)メソッド・フックがメソッドの前後に挿入される
ことを特徴とする、上記(1)に記載のシステム。 (4)オカレンスが作成されるオブジェクト・インスタ
ンスのいずれか1つであり、オブジェクト・インスタン
スが破壊され、メソッドが開始され、メソッドが終了さ
れることを特徴とする、上記(1)に記載のシステム。 (5)メソッド・フックがパーサによって挿入されるこ
とを特徴とする、上記(1)に記載のシステム。 (6)メソッド・フックがコンパイル後に挿入されるこ
とを特徴とする、上記(1)に記載のシステム。 (7)メソッド・フックがインタプリタによって挿入さ
れることを特徴とする、上記(1)に記載のシステム。 (8)視覚化が更新されて、1つまたは複数のオブジェ
クト・インスタンスのステートの変化を示すことを特徴
とする、上記(1)に記載のシステム。 (9)視覚化が1つまたは複数の制約を満足する態様で
更新されることを特徴とする、上記(1)に記載のシス
テム。 (10)アプリケーション・プログラムの実施および実
行と無関係に、ルールを変更できることを特徴とする、
上記(1)に記載のシステム。 (11)オブジェクト指向システムのアプリケーション
・プログラムの実行を視覚化する方法において、グラフ
ィカル・インタフェースで視覚化すべきグラフィカル情
報を生成できるメソッド・フックによって、オブジェク
ト指向システムのアプリケーション・プログラムにおけ
る1つまたは複数のオブジェクト・クラスに1つまたは
複数のメソッドを編成するステップと、グラフィカル情
報および1つまたは複数のルールを有する視覚化スクリ
プトを使用して、グラフィカル・インタフェース上の視
覚化を更新する監視機能を、メソッドが実行されたとき
に実行するステップと、グラフィカル情報によってグラ
フィカル・インタフェースを更新して、視覚化がオブジ
ェクト・クラスの1つまたは複数のオブジェクト・イン
スタンスの現在のステートに適合するようにするステッ
プとからなる方法。
【0067】
【発明の効果】本発明により、更新は視覚化されたオブ
ジェクト・インスタンスの現在の状態に適合したものと
なる。ルールを変更して、アプリケーション・プログラ
ムを再コンパイルあるいは再リンクすることなく、視覚
化を修正することができる。制約事項を監視機能によっ
て使用して、視覚化を修正することもできる。
【図面の簡単な説明】
【図1】本発明を実行するコンピュータ・システムのブ
ロック図である。
【図2】1つまたは複数のオブジェクト・クラスをどの
ように改変して、本発明の新規な構造を作成するかを示
す図である。
【図3】本方法のステップの流れ図である。
【図4】オブジェクト・インスタンスを表示されたビュ
ーと関連づけるステップの流れ図である。
【図5】視覚化スクリプトによって生成される表示の図
である。
【符号の説明】
100 コンピュータ・システム 102 アプリケーション・プログラム 104 コンピュータ・プラットフォーム 105 コンパイラ 106 オプティマイザ 108 オペレーティング・システム 110 マイクロ命令セット 112 ハードウェア装置 114 ランダム・アクセス・メモリ(RAM) 116 中央演算処理装置(CPU) 118 入出力インタフェース 126 グラフィック表示装置 130 データ記憶装置 134 印刷装置 200 オブジェクト・クラス 205 オブジェクト・インスタンス 210 変数 220 ステート 230 メソッド 240 パーサ 250 構造体 260 メソッド・フック 270 メソッド・フック 280 実行可能コード 285 視覚化スクリプト 288 ルール 290 実行可能コード 300 監視機能 420 構文要素
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アショク・マルホトラ アメリカ合衆国10520 ニューヨーク州ク ロトン・オン・ハドソン ヘシアン・ヒル ズ・ロード 212

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムのグラフィカル・
    インタフェース上でのオブジェクト指向プログラムの実
    行を視覚化するためのコンピュータ・システムにおい
    て、 コンピュータ・システム上で実行できる1つまたは複数
    のオブジェクト指向アプリケーション・プログラムであ
    って、該アプリケーション・プログラムが1つまたは複
    数のオブジェクト・クラスを有しており、各オブジェク
    ト・クラスが1つまたは複数のオブジェクト・インスタ
    ンスを有しており、各オブジェクト・インスタンスが1
    つまたは複数の変数を有しており、変数の各々が値を有
    しており、各オブジェクト・インスタンスの1つまたは
    複数の変数の値がこれらのオブジェクト・インスタンス
    のステートを定義する変数セットであり、各オブジェク
    ト・クラスが変数セットの値を変更することによってイ
    ンスタンスのステートを変更することのできるステート
    メントの集合である1つまたは複数のメソッドをさらに
    有しているアプリケーション・プログラムと、 オブジェクト・インスタンスの1つまたは複数のメソッ
    ドに挿入された1つまたは複数のメソッド・フック・デ
    ータ構造であって、メソッド・フックがグラフィカル・
    インタフェースに視覚化すべきグラフィカル情報を生成
    できるメソッド・フック・データ構造と、 1つまたは複数のルールを含んでおり、ルールを使用し
    てグラフィカル・インタフェースでの視覚化を定義する
    視覚化スクリプトと、 あるオカレンスを示すメソッド・フックが実行されたと
    きに実行される、グラフィカル情報および視覚化スクリ
    プトおよびグラフィカル・インタフェース上での視覚化
    を更新するためのルールを使用する監視機能とからなる
    コンピュータ・システム。
  2. 【請求項2】メソッド・フックがメソッドの前に挿入さ
    れることを特徴とする、請求項1に記載のシステム。
  3. 【請求項3】メソッド・フックがメソッドの前後に挿入
    されることを特徴とする、請求項1に記載のシステム。
  4. 【請求項4】オカレンスが作成されるオブジェクト・イ
    ンスタンスのいずれか1つであり、オブジェクト・イン
    スタンスが破壊され、メソッドが開始され、メソッドが
    終了されることを特徴とする、請求項1に記載のシステ
    ム。
  5. 【請求項5】メソッド・フックがパーサによって挿入さ
    れることを特徴とする、請求項1に記載のシステム。
  6. 【請求項6】メソッド・フックがコンパイル後に挿入さ
    れることを特徴とする、請求項1に記載のシステム。
  7. 【請求項7】メソッド・フックがインタプリタによって
    挿入されることを特徴とする、請求項1に記載のシステ
    ム。
  8. 【請求項8】視覚化が更新されて、1つまたは複数のオ
    ブジェクト・インスタンスのステートの変化を示すこと
    を特徴とする、請求項1に記載のシステム。
  9. 【請求項9】視覚化が1つまたは複数の制約を満足する
    態様で更新されることを特徴とする、請求項1に記載の
    システム。
  10. 【請求項10】アプリケーション・プログラムの実施お
    よび実行と無関係に、ルールを変更できることを特徴と
    する、請求項1に記載のシステム。
  11. 【請求項11】オブジェクト指向システムのアプリケー
    ション・プログラムの実行を視覚化する方法において、 グラフィカル・インタフェースで視覚化すべきグラフィ
    カル情報を生成できるメソッド・フックによって、オブ
    ジェクト指向システムのアプリケーション・プログラム
    における1つまたは複数のオブジェクト・クラスに1つ
    または複数のメソッドを編成するステップと、 グラフィカル情報および1つまたは複数のルールを有す
    る視覚化スクリプトを使用して、グラフィカル・インタ
    フェース上の視覚化を更新する監視機能を、メソッドが
    実行されたときに実行するステップと、 グラフィカル情報によってグラフィカル・インタフェー
    スを更新して、視覚化がオブジェクト・クラスの1つま
    たは複数のオブジェクト・インスタンスの現在のステー
    トに適合するようにするステップとからなる方法。
JP7148800A 1994-06-23 1995-06-15 オブジェクト指向プログラムの実行を視覚化するためのコンピュータ・システム Expired - Fee Related JP3033937B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26466394A 1994-06-23 1994-06-23
US264663 1994-06-23

Publications (2)

Publication Number Publication Date
JPH0844547A true JPH0844547A (ja) 1996-02-16
JP3033937B2 JP3033937B2 (ja) 2000-04-17

Family

ID=23007074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7148800A Expired - Fee Related JP3033937B2 (ja) 1994-06-23 1995-06-15 オブジェクト指向プログラムの実行を視覚化するためのコンピュータ・システム

Country Status (5)

Country Link
US (1) US5832270A (ja)
EP (1) EP0689132B1 (ja)
JP (1) JP3033937B2 (ja)
KR (1) KR100207881B1 (ja)
DE (1) DE69518123T2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2219557C (en) * 1997-10-29 2002-12-10 Ibm Canada Limited-Ibm Canada Limitee Run-time instrumentation for object oriented programmed applications
US5966541A (en) * 1997-12-04 1999-10-12 Incert Software Corporation Test protection, and repair through binary-code augmentation
US6205491B1 (en) * 1997-12-18 2001-03-20 Sun Microsystems, Inc. Method and apparatus for deferred throwing of exceptions in C++
GB2340266B (en) 1998-07-31 2003-03-12 Sony Uk Ltd Data processing
US6192511B1 (en) * 1998-09-16 2001-02-20 International Business Machines Corporation Technique for test coverage of visual programs
US6212675B1 (en) * 1998-09-16 2001-04-03 International Business Machines Corporation Presentation of visual program test coverage information
US6189142B1 (en) * 1998-09-16 2001-02-13 International Business Machines Corporation Visual program runtime performance analysis
FR2785413B1 (fr) * 1998-10-30 2001-08-24 Bull Sa Procede de generation d'interfaces pour la commande par un utilisateur d'un systeme informatique
US6029158A (en) 1998-12-22 2000-02-22 Ac Properties B.V. System, method and article of manufacture for a simulation enabled feedback system
US6542880B2 (en) 1998-12-22 2003-04-01 Indeliq, Inc. System, method and article of manufacture for a goal based system utilizing a table based architecture
US6535861B1 (en) 1998-12-22 2003-03-18 Accenture Properties (2) B.V. Goal based educational system with support for dynamic characteristics tuning using a spread sheet object
US6101489A (en) 1998-12-22 2000-08-08 Ac Properties, B.V. System, method and article of manufacture for a goal based system utilizing a time based model
US6745170B2 (en) 1999-02-08 2004-06-01 Indeliq, Inc. Goal based educational system with support for dynamic characteristic tuning
US6782374B2 (en) * 1998-12-22 2004-08-24 Accenture Global Services Gmbh System, method and article of manufacturing for a runtime program analysis tool for a simulation engine
US6018732A (en) 1998-12-22 2000-01-25 Ac Properties B.V. System, method and article of manufacture for a runtime program regression analysis tool for a simulation engine
US6018730A (en) 1998-12-22 2000-01-25 Ac Properties B.V. System, method and article of manufacture for a simulation engine with a help website and processing engine
US6029159A (en) 1998-12-22 2000-02-22 Ac Properties B.V. System, method and article of manufacture for a simulation enabled accounting tutorial system
US5987443A (en) 1998-12-22 1999-11-16 Ac Properties B. V. System, method and article of manufacture for a goal based educational system
US7194444B1 (en) 1999-02-08 2007-03-20 Indeliq, Inc. Goal based flow of a control presentation system
US7065513B1 (en) 1999-02-08 2006-06-20 Accenture, Llp Simulation enabled feedback system
US6970858B1 (en) 1999-02-08 2005-11-29 Accenture, Llp Goal based system utilizing an activity table
US7054848B1 (en) 1999-02-08 2006-05-30 Accenture, Llp Goal based system utilizing a time based model
US7386524B2 (en) 1999-02-08 2008-06-10 Accenture Global Services Gmbh Simulation enabled focused feedback tutorial system
US7156665B1 (en) 1999-02-08 2007-01-02 Accenture, Llp Goal based educational system with support for dynamic tailored feedback
US7065512B1 (en) 1999-02-08 2006-06-20 Accenture, Llp Dynamic toolbar in a tutorial system
US7089222B1 (en) 1999-02-08 2006-08-08 Accenture, Llp Goal based system tailored to the characteristics of a particular user
DE19907328C2 (de) * 1999-02-20 2002-10-24 Johannes Reichardt Verfahren und System zur visuellen Programmierung
US7152092B2 (en) 1999-05-05 2006-12-19 Indeliq, Inc. Creating chat rooms with multiple roles for multiple participants
AU4826100A (en) 1999-05-05 2000-11-17 Accenture Properties (2) Bv System, method and article of manufacture for creating collaborative simulationswith multiple roles for a single student
US6611822B1 (en) 1999-05-05 2003-08-26 Ac Properties B.V. System method and article of manufacture for creating collaborative application sharing
US6993513B2 (en) 1999-05-05 2006-01-31 Indeliq, Inc. Interactive simulations utilizing a remote knowledge base
US6760902B1 (en) * 1999-08-31 2004-07-06 James Alan Ott Method and apparatus for implicitly generating and supporting a user interface
US6736642B2 (en) 1999-08-31 2004-05-18 Indeliq, Inc. Computer enabled training of a user to validate assumptions
US6973649B1 (en) * 1999-09-30 2005-12-06 International Business Machines Corporation Utilizing programming object visual representation for state reflection
US6502099B1 (en) 1999-12-16 2002-12-31 International Business Machines Corporation Method and system for extending the functionality of an application
US6683624B1 (en) * 2000-08-17 2004-01-27 International Business Machines Corporation System and method for managing programming object visual representations participating in alternative execution paths
US6968540B2 (en) * 2000-10-25 2005-11-22 Opnet Technologies Inc. Software instrumentation method and apparatus
US6694507B2 (en) * 2000-12-15 2004-02-17 International Business Machines Corporation Method and apparatus for analyzing performance of object oriented programming code
US20040015879A1 (en) * 2001-03-23 2004-01-22 International Business Machines Corporation Method and apparatus for tracing details of a program task
US20020147860A1 (en) * 2001-04-05 2002-10-10 International Business Machines Corporation Method, apparatus, and program for generating Java full thread dumps from a remote JVM
US20040060043A1 (en) * 2002-07-19 2004-03-25 Frysinger George P. Method and apparatus for instrumentation ON/OFF
GB0322050D0 (en) * 2003-09-20 2003-10-22 Spiratech Ltd Modelling and simulation method
US20050079508A1 (en) * 2003-10-10 2005-04-14 Judy Dering Constraints-based analysis of gene expression data
US7500226B2 (en) * 2004-03-02 2009-03-03 Microsoft Corporation Efficient checking of state-dependent constraints
US20060026379A1 (en) * 2004-07-27 2006-02-02 Samsung Electronics Co., Ltd. Effective memory management method and device in object-oriented application
FR2879775B1 (fr) * 2004-12-22 2007-03-02 Trusted Logic Sa Procede pour l'evacuation de caracteristiques operationnelles d'un programme
US20070113282A1 (en) * 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
WO2007067894A2 (en) * 2005-12-05 2007-06-14 National Instruments Corporation Implementing a design flow for a programmable hardware element that includes or is coupled to a processor
US7904886B2 (en) * 2006-03-13 2011-03-08 International Business Machines Corporation Method for executing an application in a virtual container forming a virtualized environment session
US8020146B2 (en) * 2006-07-24 2011-09-13 International Business Machines Corporation Applying deferred refactoring and API changes in an IDE
US8176467B2 (en) * 2006-07-25 2012-05-08 Harris Corporation Computer program generation system and method thereof
US9489418B2 (en) 2007-04-27 2016-11-08 International Business Machines Corporation Processing database queries embedded in application source code from within integrated development environment tool
US8566793B2 (en) * 2007-04-27 2013-10-22 International Business Machines Corporation Detecting and displaying errors in database statements within integrated development environment tool
US8856753B2 (en) * 2008-04-18 2014-10-07 International Business Machines Corporation Granular measurement of processor performance in executing sections of software code
US8190587B1 (en) * 2008-12-11 2012-05-29 Network Appliance, Inc. In-place image promotion
KR101110023B1 (ko) 2010-01-29 2012-03-02 한국과학기술원 어플리케이션 제작 장치 및 이를 구현하는 기록 매체
US8863094B2 (en) 2010-05-18 2014-10-14 International Business Machines Corporation Framework for a software error inject tool
US20120144367A1 (en) * 2010-12-06 2012-06-07 Microsoft Corporation Events fired pre- and post-method execution
CN103123601B (zh) * 2011-11-17 2016-05-25 北京神州泰岳软件股份有限公司 基于Symbian系统的软件开发故障查找的方法和装置
US9690935B2 (en) * 2012-12-31 2017-06-27 Fireeye, Inc. Identification of obfuscated computer items using visual algorithms
WO2020045929A1 (en) * 2018-08-27 2020-03-05 Samsung Electronics Co., Ltd. Code coverage method for embedded system on chip

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US5247651A (en) * 1990-04-17 1993-09-21 At&T Bell Laboratories Interactive computer program specification and simulation system
US5454086A (en) * 1992-08-11 1995-09-26 International Business Machines Corporation Dynamic program analyzer facility
DE69317982T2 (de) * 1992-10-09 1998-11-19 Sun Microsystems Inc Verfahren und Anlage zur Realzeitdatensammlung und Anzeigevorrichtung
US5483468A (en) * 1992-10-23 1996-01-09 International Business Machines Corporation System and method for concurrent recording and displaying of system performance data
US5307498A (en) * 1992-12-04 1994-04-26 International Business Machines Corporation Automated method for adding hooks to software
US5420968A (en) * 1993-09-30 1995-05-30 International Business Machines Corporation Data processing system and method for displaying dynamic images having visual appearances indicative of real world status

Also Published As

Publication number Publication date
EP0689132B1 (en) 2000-07-26
EP0689132A3 (en) 1996-12-11
EP0689132A2 (en) 1995-12-27
KR100207881B1 (ko) 1999-07-15
DE69518123D1 (de) 2000-08-31
JP3033937B2 (ja) 2000-04-17
US5832270A (en) 1998-11-03
KR960002080A (ko) 1996-01-26
DE69518123T2 (de) 2001-03-29

Similar Documents

Publication Publication Date Title
JP3033937B2 (ja) オブジェクト指向プログラムの実行を視覚化するためのコンピュータ・システム
US7877245B1 (en) Graphical functions
US7171646B2 (en) Generating source code for object oriented elements with language neutral transient meta model and correlating display of names, symbols and code
US6807548B1 (en) System and methodology providing automated selection adjustment for refactoring
US7810069B2 (en) Methods and systems for relating data structures and object-oriented elements for distributed computing
US5740440A (en) Dynamic object visualization and browsing system
US7055130B2 (en) Methods and systems for identifying dependencies between object-oriented elements
US8171449B2 (en) Generating sequence diagrams using call trees
US7055131B2 (en) Methods and systems for animating the interaction of objects in an object oriented program
JP4195479B2 (ja) インクリメンタル生成システム
US6002867A (en) Development system with methods providing visual form inheritance
US10437574B2 (en) System and method for providing code completion features for code modules
KR20040004619A (ko) 구식 소프트웨어 애플리케이션을 최신의 객체 지향시스템으로 전환하는 방법과 시스템
US6518979B1 (en) Automatically-maintained customizable user interfaces
JP5147240B2 (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
Koni-N’Sapu A scenario based approach for refactoring duplicated code in object oriented systems
US10915302B2 (en) Identification and visualization of associations among code generated from a model and sources that affect code generation
Anlauff et al. Formal aspects of and development environments for montages
US20040205669A1 (en) Arrangement to perform object-oriented programming
Dunsmore Comprehension and visualisation of object-oriented code for inspections
Bardohl Visual definition of visual languages based on algebraic graph transformation
Blunk et al. Prototyping domain specific languages as extensions of a general purpose language
Jakumeit et al. The GrGen .NET User Manual
Clement et al. CENTAUR: Towards a “software tool box” for programming environments
Nagy et al. Composition graphs: A foundation for reasoning about aspect-oriented composition

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees