JPH08314752A - Object-oriented system development support device - Google Patents

Object-oriented system development support device

Info

Publication number
JPH08314752A
JPH08314752A JP7142660A JP14266095A JPH08314752A JP H08314752 A JPH08314752 A JP H08314752A JP 7142660 A JP7142660 A JP 7142660A JP 14266095 A JP14266095 A JP 14266095A JP H08314752 A JPH08314752 A JP H08314752A
Authority
JP
Japan
Prior art keywords
behavior
file
oriented system
development support
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.)
Pending
Application number
JP7142660A
Other languages
Japanese (ja)
Inventor
Hidekazu Kato
英一 加藤
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP7142660A priority Critical patent/JPH08314752A/en
Publication of JPH08314752A publication Critical patent/JPH08314752A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 オブジェクト指向システムを実際に動作させ
たときのシステムの挙動、すなわち、オブジェクトの振
る舞いなどをユーザが容易に理解することが可能であ
る。 【構成】 この開発支援装置は、オブジェクト指向シス
テムの開発環境において、オブジェクト指向システムを
実際に起動した際に、オブジェクト間でのメッセージの
授受(やりとり)やオブジェクトの生成や削除などのオブ
ジェクトの振る舞い(挙動)を認識するオブジェクト挙動
認識手段1と、オブジェクト挙動認識手段1で認識され
たオブジェクトの振る舞いをファイルFに保存する保存
手段2と、保存手段によってファイルFに保存されたオ
ブジェクトの挙動を読み取り出力する出力手段3とを備
えている。
(57) [Abstract] [Purpose] The user can easily understand the behavior of the system when the object-oriented system is actually operated, that is, the behavior of the object. [Structure] This development support device is a development environment for an object-oriented system, and when an object-oriented system is actually started, the behavior of objects such as message exchange (exchange) between objects and object creation and deletion ( Behavior recognition unit 1 for recognizing behavior), a storage unit 2 for storing the behavior of the object recognized by the object behavior recognition unit 1 in a file F, and a behavior of the object stored in the file F by the storage unit for reading and outputting. Output means 3 for

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、オブジェクト指向技術
を用いるオブジェクト指向システムの開発支援装置に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a development support device for an object-oriented system using object-oriented technology.

【0002】[0002]

【従来の技術】従来、オブジェクト指向システムを開発
するのに、システム開発に必要なオブジェクトモデル
図,事象トレース図,データフロー図などを構築するツ
ールがあった。また、システムの実装を支援するツール
としてはオブジェクトモデル図からクラスの定義をファ
イルに書き出すようなツールがあった。
2. Description of the Related Art Conventionally, in developing an object-oriented system, there have been tools for constructing an object model diagram, an event trace diagram, a data flow diagram, etc. necessary for system development. Also, as a tool that supports the implementation of the system, there was a tool that writes the definition of a class from an object model diagram to a file.

【0003】しかしながら、オブジェクトモデル図,事
象トレース図,データフロー図などを構築するツール
は、システムの実装に入る前のフェーズ、すなわち分
析,設計を支援するためのツールであり、また、オブジ
ェクトモデル図からクラスの定義をファイルに書き出す
ようなツールは、静的なデータやシステムの実行前の開
発段階を支援するものであり、いずれのツールも、シス
テム開発のためのデバッグ,すなわちオブジェクト指向
システムを実際に動作させたときのオブジェクト間の時
間的流れのデバッグ(動的チェック)を行なうようになっ
ていない。
However, a tool for constructing an object model diagram, an event trace diagram, a data flow diagram, etc. is a tool for supporting the phase before the implementation of the system, that is, analysis and design, and the object model diagram. Tools such as writing class definitions from .. to a file support static data and pre-execution development stages of the system, and both tools provide debugging for system development, that is, an object-oriented system. It is not designed to debug (dynamic check) the temporal flow between objects when it is run in.

【0004】また、従来では、オブジェクト指向システ
ムを開発するのに有効なデバッグツールは、存在してい
ない。これは、オブジェクト指向システムでは、従来の
ウォーターフォールのように処理が一方向に流れるのと
は異なって、オブジェクト間のメッセージのやりとりに
より処理が進行し、処理が再び元に戻ることも可能とな
っているので、現在の処理がどこで行われているか、ど
のようなデータを扱っているかが見えにくく、また、処
理がどのように進行していくのかが把握しにくく、全体
としてデバッグ作業が困難であること、また、オブジェ
クト指向システムでは、オブジェクト指向に特有なクラ
ス階層を用いることにより、継承機能を用いて、差分に
よるプログラミングを行うことができるが、その反面、
上位のクラスに記述されていることは下位のクラスで記
述する必要がないため、下位のクラス定義だけを見ただ
けでは、そのクラスの持つすべての属性やメソッドを把
握したことにはならないことなどに起因している。この
ため例えば、C++言語のデバッグをC言語のデバッグ
環境を流用し行なうというような形で、オブジェクト指
向システムのデバッグを行なうための技術は、現在のと
ころ確立されていない。
Conventionally, there is no effective debug tool for developing an object-oriented system. This is because in an object-oriented system, unlike the conventional waterfall, where the processing flows in one direction, the processing can be progressed by exchanging messages between objects, and the processing can be returned again. As a result, it is difficult to see where the current processing is being performed and what kind of data is being processed, and it is difficult to understand how the processing is progressing. On the other hand, in the object-oriented system, by using the class hierarchy peculiar to the object-oriented system, the inheritance function can be used to perform programming by the difference, but on the other hand,
What is described in the upper class does not need to be described in the lower class, so just looking at the lower class definition does not mean that all the attributes and methods of the class are understood. Due to. Therefore, for example, a technique for debugging an object-oriented system in the form of utilizing the C language debugging environment for the C ++ language debugging has not been established at present.

【0005】[0005]

【発明が解決しようとする課題】本発明は、オブジェク
ト指向システムを実際に動作させたときのシステムの挙
動、すなわち、オブジェクトの振る舞いなどをユーザが
容易に理解することの可能なオブジェクト指向システム
の開発支援装置を提供することを目的としている。
SUMMARY OF THE INVENTION The present invention is directed to the development of an object-oriented system in which the user can easily understand the behavior of the system when the object-oriented system is actually operated, that is, the behavior of the object. The purpose is to provide a support device.

【0006】[0006]

【課題を解決するための手段および作用】上記目的を達
成するために、請求項1乃至請求項9記載の発明では、
オブジェクト指向システムの開発環境において、オブジ
ェクト指向システムを実際に起動した際に、オブジェク
ト間でのメッセージの授受やオブジェクトの生成や削除
などのオブジェクトの振る舞いを認識するオブジェクト
挙動認識手段と、オブジェクト挙動認識手段によって認
識されたオブジェクトの振る舞いをファイルに保存する
保存手段と、前記保存手段によってファイルに保存され
たオブジェクトの振る舞いを読み取り出力する出力手段
とを備えている。これにより、オブジェクト指向システ
ムを実際に動作させたときのシステムの挙動、すなわ
ち、オブジェクトの振る舞いなどをユーザが容易に理解
することができる。
In order to achieve the above object, the inventions according to claim 1 to claim 9
In an object-oriented system development environment, when an object-oriented system is actually started, an object behavior recognition means and an object behavior recognition means for recognizing behaviors of objects such as message exchange between objects and generation and deletion of objects The storage unit stores the behavior of the object recognized by the file in a file, and the output unit reads and outputs the behavior of the object stored in the file by the storage unit. As a result, the user can easily understand the behavior of the system when the object-oriented system is actually operated, that is, the behavior of the object.

【0007】特に、請求項3記載の発明では、前記オブ
ジェクト挙動認識手段は、特定のオブジェクトに注目
し、該特定のオブジェクトに関する振る舞いのみを認識
するので、必要なデータのみを集中して取り扱うことが
でき、不必要なデータを省くことができる。
In particular, according to the third aspect of the invention, since the object behavior recognition means focuses on a specific object and recognizes only the behavior related to the specific object, only necessary data can be handled in a concentrated manner. It is possible to omit unnecessary data.

【0008】また、請求項6記載の発明では、さらに、
前記オブジェクト挙動認識手段,前記データ認識手段
を、オブジェクト指向システムの実行前にファイルに埋
め込む第2の埋込手段を有しており、第2の埋込手段
は、ソースプログラムを解析することによって、オブジ
ェクトの生成や削除,メッセージの送信などの振る舞い
の箇所を自動認識してオブジェクト挙動認識手段を埋め
込むことができる。これにより、ユーザは、オブジェク
ト挙動認識手段をこのオブジェクト指向システムに自ら
設定する必要がなく、ユーザの作業効率を著しく向上さ
せることができる。
In the invention according to claim 6, further,
The object behavior recognizing means and the data recognizing means have a second embedding means for embedding them in a file before the execution of the object-oriented system. The second embedding means analyzes the source program, Object behavior recognition means can be embedded by automatically recognizing behavioral points such as object creation and deletion, and message transmission. As a result, the user does not need to set the object behavior recognition means in this object-oriented system by himself, and the working efficiency of the user can be significantly improved.

【0009】また、請求項7記載の発明では、前記出力
手段は、前記ファイルに保存された内容を視覚化して表
示するようになっており、例えば、システムの振る舞い
をユーザに提示する場合には、オブジェクトを四角や円
などで表示したり、また、メッセージの授受(やりとり)
をユーザに提示する場合には、オブジェクト間にリンク
を表示するなどによって、ユーザは視覚的に容易にシス
テムの振る舞いを把握できる。
Further, in the invention according to claim 7, the output means is adapted to visualize and display the contents stored in the file. For example, when presenting the behavior of the system to the user. , Display objects as squares or circles, and send and receive messages (exchange)
When presenting to the user, the user can visually and easily grasp the behavior of the system by displaying a link between the objects.

【0010】また、請求項8記載の発明では、前記出力
手段は、前記ファイルに保存された内容を視覚化して表
示する際に、ユーザの要求に応じて、システムの稼働に
合わせて、逐次、システムの稼働状況を表示する。これ
により、時間の経過によるシステムの振る舞いをユーザ
に提示したり、また、時間をさかのぼってシステムの振
る舞いをユーザに提示すること(すなわち、時間をさか
のぼってシステムの振る舞いをたどること)も可能とな
る。
Further, in the invention according to claim 8, when the output means visualizes and displays the contents stored in the file, the output means successively responds to the operation of the system in response to the user's request. Display the operating status of the system. This makes it possible to present the behavior of the system to the user over time, and also to present the behavior of the system to the user by going back in time (that is, tracing the behavior of the system by going back in time). .

【0011】また、請求項9記載の発明では、オブジェ
クトの振る舞いをシステムの実行と同時に視覚化して表
示する。これにより、ユーザは、リアルタイムに容易に
システムの振る舞いを理解することができる。
According to the ninth aspect of the invention, the behavior of the object is visualized and displayed simultaneously with the execution of the system. This allows the user to easily understand the behavior of the system in real time.

【0012】[0012]

【実施例】以下、本発明の実施例を図面に基づいて説明
する。図1は本発明に係るオブジェクト指向システムの
開発支援装置の一実施例の構成図である。図1を参照す
ると、この開発支援装置は、オブジェクト指向システム
の開発環境において、オブジェクト指向システムを実際
に起動した際に、オブジェクト間でのメッセージの授受
(やりとり)やオブジェクトの生成や削除などのオブジェ
クトの振る舞い(挙動)を認識するオブジェクト挙動認識
手段1と、オブジェクト挙動認識手段1で認識されたオ
ブジェクトの振る舞いをファイルFに保存する保存手段
2と、保存手段によってファイルFに保存されたオブジ
ェクトの挙動を読み取り出力する出力手段3とを備えて
いる。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram of an embodiment of an object-oriented system development support apparatus according to the present invention. Referring to FIG. 1, this development support device is a development environment for an object-oriented system, and when an object-oriented system is actually started, a message is exchanged between the objects.
An object behavior recognition means 1 for recognizing the behavior (behavior) of the object such as (interaction) and generation or deletion of the object; a storage means 2 for saving the behavior of the object recognized by the object behavior recognition means 1 in a file F; The output means 3 reads and outputs the behavior of the object stored in the file F by the storage means.

【0013】ここで、オブジェクト挙動認識手段1によ
ってオブジェクト間でのメッセージの授受が認識される
と、保存手段2は、認識されたメッセージを、オブジェ
クト間で授受がなされた順にファイルに保存し、出力手
段3は、ファイル保存されたメッセージをも出力するよ
うになっている。
When the object behavior recognition means 1 recognizes the exchange of messages between the objects, the storage means 2 stores the recognized messages in a file in the order in which the exchanges are made between the objects, and outputs them. The means 3 is also adapted to output a message saved in a file.

【0014】また、オブジェクト挙動認識手段1は、特
定のオブジェクトに注目し、該特定のオブジェクトに関
する振る舞いのみを認識するよう、これを構成すること
ができる。注目する特定のオブジェクトを指定すること
を可能にするよう構成する場合には、必要なデータのみ
を集中して取り扱うことができる。
Further, the object behavior recognition means 1 can be constructed so as to focus on a specific object and recognize only the behavior related to the specific object. When it is configured so that a specific object of interest can be designated, only necessary data can be handled centrally.

【0015】また、この開発支援装置は、さらに、メッ
セージ間で授受されるメッセージ内のデータを認識する
データ認識手段4を有し、保存手段2は、さらに、デー
タ認識手段で認識されたメッセージ内のデータをもファ
イルFに保存し、出力手段3は、さらに、ファイルFに
保存されたメッセージ内のデータをも出力するようにな
っている。
The development support apparatus further has a data recognition means 4 for recognizing the data in the message exchanged between the messages, and the storage means 2 further has the data recognition means for recognizing the data in the message. Is also stored in the file F, and the output means 3 further outputs the data in the message stored in the file F.

【0016】さらに、本実施例の開発支援装置は、保存
手段2をオブジェクト指向システムの実行前に、オブジ
ェクト指向システムの所定の箇所に埋め込む第1の埋込
手段6と、オブジェクト挙動認識手段1および/または
データ認識手段4を、オブジェクト指向システムの実行
前に、オブジェクト指向システムの所定の箇所に埋め込
む第2の埋込手段7とを有している。
Further, the development support apparatus of the present embodiment includes the first embedding means 6 for embedding the storage means 2 in a predetermined portion of the object-oriented system before executing the object-oriented system, the object behavior recognition means 1, and And / or the data recognizing means 4 and the second embedding means 7 for embedding the data recognizing means 4 in a predetermined position of the object oriented system before the execution of the object oriented system.

【0017】すなわち、システム実行時のオブジェクト
の挙動(振る舞い)として、オブジェクト間のメッセージ
の授受,オブジェクトの生成,削除などを認識する機能
を有するオブジェクト挙動認識手段1は、第2の埋込手
段7によってオブジェクトの所定の振る舞いの箇所に埋
め込まれて使用されるようになっている。また、メッセ
ージ間でやりとりされるメッセージ内のデータを認識す
る機能を有するデータ認識手段4も、第2の埋込手段7
によってオブジェクト間でメッセージの授受がなされる
箇所に埋め込まれて使用されるようになっている。
That is, as the behavior (behavior) of objects during system execution, the object behavior recognizing means 1 having a function of recognizing the exchange of messages between objects, the generation and deletion of objects, etc., is the second embedding means 7 It is designed to be used by embedding it in a predetermined behavior part of an object. Further, the data recognizing means 4 having the function of recognizing the data in the messages exchanged between the messages is also the second embedding means 7.
Is used by being embedded in a place where messages are exchanged between objects.

【0018】より詳細には、上記第1および第2の埋込
手段6,7は、ソースプログラムを解析することによ
り、オブジェクトの生成や削除,メッセージの送信など
のオブジェクトの振る舞いの箇所を自動認識して、デー
タ認識手段4,オブジェクト挙動認識手段1を埋め込む
ようになっており、ユーザがオブジェクトの振る舞いの
箇所を教える必要がなく、これらを自動的に埋め込む機
能を備えている。
More specifically, the first and second embedding means 6 and 7 automatically recognize the location of object behavior such as object generation and deletion, message transmission, etc. by analyzing the source program. Then, the data recognizing means 4 and the object behavior recognizing means 1 are embedded, and it is not necessary for the user to teach the location of the behavior of the object, and a function of automatically embedding them is provided.

【0019】また、上記出力手段3は、ファイルFに保
存された内容を視覚化して例えば表示するようになって
いる。より詳しくは、出力手段3は、例えば、オブジェ
クトの振る舞いが書き出されたファイルFを読み込み、
システムの振る舞いをユーザに例えば表示するようにな
っている。例えば、オブジェクトを四角や円などで、ま
たメッセージのやりとりの際にはオブジェクト間にリン
クを表示するなどして、システムの振る舞いをユーザが
視覚的に容易に把握できる形に出力するようになってい
る。
Further, the output means 3 is adapted to visualize the contents stored in the file F and display them, for example. More specifically, the output unit 3 reads, for example, the file F in which the behavior of the object is written,
For example, the behavior of the system is displayed to the user. For example, objects are displayed in squares or circles, and links are displayed between objects when exchanging messages, so that the behavior of the system can be output in a form that the user can easily visually understand. There is.

【0020】なお、出力手段3としては、ファイルFに
保存された内容を視覚化して例えば表示する際に、さら
に、ユーザの要求に応じてシステムの稼働に合わせて、
逐次、システムの稼働状況をも表示する機能を有してい
ても良い。これにより、時間の経過によるシステムの振
る舞いをユーザに提示したり、また、時間をさかのぼっ
てシステムの振る舞いを逆にたどることも可能となる。
As the output means 3, when the contents stored in the file F are visualized and displayed, for example, further, according to the user's request, in accordance with the operation of the system,
It may have a function of sequentially displaying the operating status of the system. This makes it possible to present the user with the behavior of the system over time, and trace the behavior of the system backwards in time.

【0021】また、出力手段3としては、オブジェクト
の振る舞いをシステムの実行と同時に視覚化して表示す
る機能を有していても良い。デバッグ中にデバッグと同
時に視覚化してユーザにオブジェクトの振る舞いを表示
する機能を出力手段3が備えている場合には、デバッグ
中のソースプログラムと視覚化されたオブジェクトの振
る舞いとを同時進行させて表示させることが可能とな
る。
The output means 3 may have a function of visualizing and displaying the behavior of the object simultaneously with the execution of the system. When the output means 3 has a function of visualizing the behavior of the object to the user during debugging while displaying the behavior of the object, the source program being debugged and the behavior of the visualized object are simultaneously advanced and displayed. It becomes possible.

【0022】次に、本実施例の開発支援装置の処理動作
例について説明する。図2は、本実施例の開発支援装置
の処理動作の一例を示すフローチャートである。
Next, an example of the processing operation of the development support apparatus of this embodiment will be described. FIG. 2 is a flowchart showing an example of the processing operation of the development support device of this embodiment.

【0023】図2の処理動作例では、先ず、ステップS
1において、ソースプログラムを指定し、開発システム
のファイル構成をチェックする。これにより、この開発
支援装置が次のステップS2以降で行うソースプログラ
ムの解析の範囲を限定する。
In the processing operation example of FIG. 2, first, step S
In 1, the source program is specified and the file structure of the development system is checked. As a result, the range of analysis of the source program performed by the development support device in the next step S2 and subsequent steps is limited.

【0024】次に、ステップS2では、ソースプログラ
ムを解析する。具体的に、このステップS2では、ソー
スプログラムの解析処理として、ユーザが定義するクラ
スやデータ型などの認識処理を行なう。すなわち、開発
支援環境がオブジェクトの振る舞いを理解するために、
クラスの定義の認識処理を行ない、クラスがどのような
属性およびメソッドを持つかを知得する。また、オブジ
ェクト間でのメッセージのやり取り(メソッドの呼び出
し)の状況も理解する必要があるために、クラスの属性
やメソッドの返り値のデータ型、およびメソッドの持つ
引数の型でユーザ定義の型も認識する。
Next, in step S2, the source program is analyzed. Specifically, in this step S2, recognition processing of user-defined classes and data types is performed as analysis processing of the source program. That is, in order for the development support environment to understand the behavior of objects,
Performs recognition processing of class definition and learns what attributes and methods the class has. In addition, since it is necessary to understand the status of message exchange (method invocation) between objects, the data type of the attribute of the class, the return value of the method, and the argument type of the method can be user-defined types. recognize.

【0025】また、ステップS2の解析処理では、プロ
グラム中のオブジェクトの生成,削除やメソッドの呼び
出しおよびその他のオブジェクトの振る舞いを認識する
処理を行なう。また、これと同時に、第1および第2の
埋込手段6,7によって所定の振る舞いの箇所にオブジ
ェクトの振る舞いを書き出す手続きを埋め込む処理を行
なう。この手続きを行なうことにより、ステップS3で
のシステムの実行時に、オブジェクトの生成,削除,メ
ッセージのやり取りなどの振る舞いをファイルに保存さ
せ、また、この時の動的なデータの値も同時にファイル
に書き出させることが可能になる。
Further, in the analysis processing of step S2, processing for generating and deleting objects in the program, calling methods, and recognizing the behavior of other objects is performed. At the same time, the first and second embedding units 6 and 7 perform a process of embedding a procedure for writing out the behavior of the object at a predetermined behavior. By performing this procedure, when the system is executed in step S3, behaviors such as object creation, deletion, and message exchange are saved in a file, and the dynamic data value at this time is also written in the file. It is possible to put out.

【0026】このようにして、ステップS1,S2にお
いて、システムを実行するための前処理を行ない、しか
る後、ステップS3でシステムを実行する。システムを
実行するとオブジェクトが種々の振る舞いをするが、こ
の振る舞いの履歴は、ステップS2で埋め込んだオブジ
ェクトの振る舞いをファイルに書き出す手続きにより、
すなわちオブジェクト挙動認識手段1(さらにはデータ
認識手段4),保存手段2によって、ファイルに書き出
され、オブジェクトの振る舞いに関する実データが時系
列にファイルに保存される。
In this way, in steps S1 and S2, preprocessing for executing the system is performed, and thereafter, the system is executed in step S3. When the system is executed, the object behaves in various ways. The history of this behavior depends on the procedure of writing out the behavior of the object embedded in step S2 to a file.
That is, the object behavior recognizing means 1 (further, the data recognizing means 4) and the saving means 2 write the data into a file, and the actual data concerning the behavior of the object is saved in the file in time series.

【0027】このようにしてシステムを実行した後、ス
テップS4では、出力手段3を起動し、ステップS3で
オブジェクトの振る舞いの履歴が保存されたファイルか
ら内容を読み込み、ユーザとの対話を行いながらオブジ
ェクトの振る舞いを逐次にまたは一括に例えば表示す
る。
After executing the system in this way, in step S4, the output means 3 is activated, and in step S3, the contents are read from the file in which the history of the behavior of the object is stored, and the object is communicated with the user. The behavior of is displayed sequentially or collectively, for example.

【0028】このように、本実施例の開発支援装置で
は、オブジェクト指向システムを実際に動作させたとき
のシステムの挙動、すなわち、オブジェクトの振る舞い
などをユーザが容易に理解することができ、これによ
り、オブジェクト指向システムを実際に動作させたとき
のオブジェクト間の時間的流れのデバッグ(動的チェッ
ク)を行なうことができて、デバッグ作業を容易に効率
良く行なわせることが可能となる。
As described above, in the development support apparatus of this embodiment, the user can easily understand the behavior of the system when the object-oriented system is actually operated, that is, the behavior of the object and the like. , It is possible to debug (dynamic check) the temporal flow between objects when the object-oriented system is actually operated, and it is possible to perform debugging work easily and efficiently.

【0029】なお、図2の処理例では、システム実行
後、オブジェクトの振る舞いを出力(表示)するようにな
っているが、システムの実行と共にリアルタイムにオブ
ジェクトの振る舞いを出力(表示)することも可能であ
る。
In the processing example of FIG. 2, the behavior of the object is output (displayed) after the system is executed, but the behavior of the object can be output (displayed) in real time as the system is executed. Is.

【0030】図3は、オブジェクトの振る舞いをシステ
ムの実行と同様にリアルタイムに表示する処理例を示す
フローチャートである。図3の処理例において、ステッ
プS11,S12では、図2のステップS1,S2と同
様に、ソースプログラムを指定し、そのプログラムを解
析してユーザの定義したクラス定義および型を認識し、
オブジェクトの振る舞いを示す手続きを埋め込む。
FIG. 3 is a flow chart showing an example of processing for displaying the behavior of an object in real time, similar to the execution of the system. In the processing example of FIG. 3, in steps S11 and S12, similarly to steps S1 and S2 of FIG. 2, the source program is designated, the program is analyzed, and the class definition and type defined by the user are recognized.
Embed a procedure that shows the behavior of the object.

【0031】次に、ステップS13でシステムを起動す
るが、この際、図2の処理例と異なり、図3の処理例で
は、システムの実行とともにオブジェクトの振る舞いを
表示するために、この時点で出力手段3を起動する。そ
して、システムの実行に伴ないオブジェクトの振る舞い
を示す手続き,すなわちオブジェクト挙動認識手段1
(さらにはデータ認識手段4),保存手段2が起動され、
オブジェクトの振る舞いが出力手段3によって逐次表示
される。
Next, in step S13, the system is started. At this time, unlike the processing example of FIG. 2, the processing example of FIG. 3 outputs at this point in order to display the behavior of the object as the system is executed. The means 3 is activated. Then, a procedure indicating the behavior of the object with the execution of the system, that is, the object behavior recognition means 1
(Furthermore, the data recognition means 4) and the storage means 2 are activated,
The behavior of the object is sequentially displayed by the output means 3.

【0032】なお、図2のステップS2では、オブジェ
クトの振る舞いを示す手続きを埋め込む際に、ファイル
にオブジェクトの振る舞いを保存していたが、図3のス
テップS12では、リアルタイムにオブジェクトの振る
舞いを表示する必要があることから、このシステム内に
オブジェクトの振る舞いを管理するクラスまたは機能を
設け、このクラスにオブジェクトの振る舞いを通知する
手続きを用いることもできる。もちろん、ステップS1
2においても、図2のステップS2と同様に、ファイル
にオブジェクトの振る舞いを保存しておき、別のプロセ
スで出力手段3を起動しておいて、その出力手段3にそ
のファイルを随時チェックさせて、オブジェクトの振る
舞いを表示させてもよい。さらにまた、プロセス間通信
などの手法を用いてオブジェクトの振る舞いを別プロセ
スである開発支援装置に通知することにより実現するこ
ともできる。
In step S2 of FIG. 2, the behavior of the object is saved in the file when the procedure indicating the behavior of the object is embedded, but in step S12 of FIG. 3, the behavior of the object is displayed in real time. Therefore, it is possible to provide a class or function for managing the behavior of the object in this system and use a procedure for notifying this class of the behavior of the object. Of course, step S1
In 2 as well, similar to step S2 of FIG. 2, the behavior of the object is stored in a file, the output means 3 is started in another process, and the output means 3 is made to check the file at any time. , You may display the behavior of the object. Furthermore, it can be realized by notifying the behavior of the object to the development support device which is another process using a method such as interprocess communication.

【0033】また、図2,図3の処理例において、ステ
ップS2,S12でのソースプログラムの解析処理は、
具体的に以下のようにして行なうことができる。
In the processing examples of FIGS. 2 and 3, the source program analysis processing in steps S2 and S12 is
Specifically, it can be performed as follows.

【0034】すなわち、ソースプログラムの解析は、上
述したように、各定義の認識と、各オブジェクトの振る
舞いの認識との2つの処理に大きく分けられる。各定義
を認識する理由としては、オブジェクトはユーザ(ソー
スプログラムの創作者)が定義したクラスに基づいてい
るので、オブジェクトの振る舞いを認識するためには、
先ず、定義されているクラスをチェックする必要があ
る。すなわち、クラスがどのような属性やメソッドをも
つかを知る必要がある。また、クラスのもつ属性やメソ
ッドの引き数や返り値などに、システムが定義している
以外のユーザが定義した新たなデータ型を使用している
こともあるので、プログラム内で使用されている全ての
変数、および全てのデータ型をチェックする。
That is, the analysis of the source program is roughly divided into two processes, that is, the recognition of each definition and the recognition of the behavior of each object, as described above. The reason for recognizing each definition is that since the object is based on the class defined by the user (the creator of the source program), in order to recognize the behavior of the object,
First, we need to check the defined classes. That is, it is necessary to know what attributes and methods the class has. It is also used in the program because a new data type defined by the user other than the system-defined one may be used for the attribute of the class, the argument of the method, and the return value. Check all variables and all data types.

【0035】各定義を認識する手順は、データ型表の作
成手順と、クラス表の作成手順と、変数表の作成手順と
に、大別できる。これらの手順の後に、オブジェクトの
振る舞いの認識を行なわせるため、予め用意された振る
舞いに対応したプログラムコードを所定の箇所に埋め込
む。
The procedure for recognizing each definition can be roughly classified into a data type table creating procedure, a class table creating procedure, and a variable table creating procedure. After these steps, in order to recognize the behavior of the object, the program code corresponding to the prepared behavior is embedded in a predetermined place.

【0036】各定義を認識する手順のうち、データ型表
の作成手順では、C++で予め用意されているデータ型
に加えて、ユーザが定義しているデータ型をチェック
し、図4に示すようなデータ型表を作成する。なお、ユ
ーザが定義しているデータ型は、プログラム中のキーワ
ードを検索し、抽出する。そのキーワードとは、ユーザ
が型を定義する時に使用するための予約語であるtypede
fや、定義を宣言するときに使用される予約語#define
や、クラスの宣言であるclassなどであり、それらの構
文にしたがって、データ型の名称をキーワードとして抽
出することができる。
Of the procedures for recognizing each definition, in the procedure for creating a data type table, the data types defined by the user are checked in addition to the data types prepared in advance in C ++, as shown in FIG. A new data type table. The data type defined by the user is searched for and extracted from the keyword in the program. The keyword is typede, which is a reserved word for users to use when defining types.
Reserved word used to declare f or definition #define
Or a class declaration, such as class, and the name of a data type can be extracted as a keyword according to their syntax.

【0037】また、クラス表の作成手順では、クラス内
部の属性やメソッドの抽出を行なう。すなわち、クラス
もユーザ定義のデータ型の一種であり、従って、クラス
はデータ型表の作成手順においても抽出されるが、クラ
ス表の作成手順では、クラス内部の属性やメソッドの抽
出を行なう。すなわち、クラス定義部分の抽出は、前述
のように、C++の予約語であるclassを検索すること
により行なわれ、抽出されたクラス定義部分からそのク
ラスのもつ属性の名称および型,メソッドの名称および
返り値の型をチェックし、図5に示すようなクラス表を
作成する。
Further, in the procedure of creating the class table, the attributes and methods inside the class are extracted. That is, the class is also a kind of user-defined data type, and therefore, the class is also extracted in the procedure of creating the data type table, but in the procedure of creating the class table, the attributes and methods inside the class are extracted. That is, as described above, the class definition part is extracted by searching for the class that is a C ++ reserved word, and the attribute name and type of the class, the method name and the Check the return value type and create a class table as shown in FIG.

【0038】また、変数表の作成手順では、ソースプロ
グラムを順にチェックし、使用された変数を、グローバ
ル変数とその型、関数と関数内で宣言されている変数と
その型、メソッドとメソッド内で宣言されている変数と
その型、に分けて抽出し、図6に示したような変数表を
作成する。なお、変数の宣言部分は、データ型表の作成
で抽出したデータ型名をプログラム中で検索し、変数宣
言の構文に従って抽出することができる。
In the procedure for creating the variable table, the source program is sequentially checked, and the used variables are used as global variables and their types, functions and variables declared in the functions and their types, methods and methods. The declared variables and their types are extracted separately and a variable table as shown in FIG. 6 is created. The variable declaration part can be extracted according to the syntax of the variable declaration by searching the data type name extracted in the creation of the data type table in the program.

【0039】このようにして、データが抽出されると、
抽出したデータに基づいて、デバッグのための情報をプ
ログラムに埋め込んでいく。先ず、ソースプログラムを
順にチェックし、オブジェクトの振る舞いの箇所を検索
し、その箇所にその振る舞いに対応したデバッグ用プロ
グラムコードを予め埋め込んでいく。
When the data is extracted in this way,
Information for debugging is embedded in the program based on the extracted data. First, the source program is checked in order, the part of the behavior of the object is searched, and the debugging program code corresponding to that behavior is embedded in that part in advance.

【0040】オブジェクトの振る舞いの代表的なものと
しては、オブジェクトの生成と、オブジェクトの削除
と、オブジェクトの持つメソッドの呼び出しと、オブジ
ェクトの持つ属性への値の代入とがあり、これらに対応
したデバッグ用プログラムコードの埋め込みについて、
説明する。
Typical behaviors of an object include generation of an object, deletion of an object, invocation of a method possessed by an object, and assignment of a value to an attribute possessed by an object, and debugging corresponding thereto. Embedding program code for
explain.

【0041】先ず、オブジェクトの生成に対応したデバ
ッグ用プログラムコードの埋め込みについて説明する。
C++では、オブジェクトの生成は、予約語であるne
wを用いて行なわれるので、プログラム中でこの予約語
newを検出し、オブジェクトの生成箇所を検索するこ
とができる。
First, the embedding of the debug program code corresponding to the generation of the object will be described.
In C ++, object creation is a reserved word ne
Since this is performed using w, it is possible to detect this reserved word new in the program and search for the generation location of the object.

【0042】このようにしてオブジェクトの生成箇所が
検索されると、オブジェクトの生成箇所には図7に示す
ようなデバッグ用プログラムコードを埋め込むことがで
きる。図7のデバッグ用プログラムコードは、オブジェ
クトの生成の情報として、すべてのオブジェクトの振る
舞いに対する通し番号であるcountを表示するため
のコードと、オブジェクトの生成を示すCREATE,
生成されるクラスの名称(クラス名)を表示するためのコ
ードと、生成されたオブジェクトが格納される変数VA
RIABLEの名称(変数名)を表示するためのコード
と、オブジェクトがどこで生成されたかを示すWHER
E,およびその生成箇所を表示するためのコードと、生
成箇所の名称を表示するためのコードとにより構成され
たものとなっている。なお、オブジェクト指向システム
では、オブジェクトの生成箇所が関数内である場合とメ
ソッド内である場合とがあり、従って、生成箇所の名称
を表示するためのコードとしては、関数名またはメソッ
ド名が用いられる。
When the object generation location is searched in this way, a debug program code as shown in FIG. 7 can be embedded in the object generation location. The debug program code shown in FIG. 7 includes a code for displaying count, which is a serial number for the behavior of all objects, as information for object generation, and a CREATE,
Code for displaying the name of the generated class (class name) and the variable VA in which the generated object is stored
Code to display the name (variable name) of RIABLE and WHER that shows where the object was created
It is composed of E, a code for displaying the generation part thereof, and a code for displaying the name of the generation part. In the object-oriented system, there are cases where an object is generated in a function and cases where it is in a method. Therefore, the function name or the method name is used as the code for displaying the name of the generation point. .

【0043】次に、オブジェクトの削除に対応したデバ
ッグ用プログラムコードの埋め込みについて説明する。
C++では、オブジェクトの削除は、予約語であるde
leteを用いて行なわれるので、プログラム中でこの
予約語deleteを検出し、オブジェクトの削除箇所
を検索することができる。
Next, the embedding of the debug program code corresponding to the deletion of the object will be described.
In C ++, object deletion is a reserved word de
Since this is performed using the letter, it is possible to detect the reserved word delete in the program and search for the deletion location of the object.

【0044】このようにしてオブジェクトの削除箇所が
検索されると、オブジェクトの削除箇所には、図8に示
すようなデバッグ用プログラムコードを埋め込むことが
できる。図8のデバッグ用プログラムコードは、オブジ
ェクトの削除の情報として、すべてのオブジェクトの振
る舞いに対する通し番号であるcountを表示するた
めのコードと、オブジェクトの削除を示すDELET
E,削除されるクラスの名称(クラス名)を表示するため
のコードと、削除されたオブジェクトが格納されていた
変数VARIABLEの名称(変数名)を表示するための
コードと、オブジェクトがどこで削除されたかを示すW
HERE,およびその削除箇所を表示するためのコード
と、削除箇所の名称を表示するためのコードとにより構
成されたものとなっている。なお、オブジェクト指向シ
ステムでは、削除箇所が関数内である場合とメソッド内
である場合とがあり、従って、削除箇所の名称を表示す
るためのコードとしては、関数名またはメソッド名が用
いられる。
When the deletion location of the object is searched in this way, a debugging program code as shown in FIG. 8 can be embedded in the deletion location of the object. The debug program code shown in FIG. 8 is a code for displaying a count, which is a serial number for the behavior of all objects, as information for deleting the object, and a DELET indicating the deletion of the object.
E, code to display the name of the deleted class (class name), code to display the name of the variable VARIABLE that stored the deleted object (variable name), and where the object was deleted W showing Taka
It is composed of a code for displaying HERE and its deleted part, and a code for displaying the name of the deleted part. In the object-oriented system, the deleted part may be inside the function or the method. Therefore, the function name or the method name is used as the code for displaying the name of the deleted part.

【0045】次に、オブジェクトの持つメソッドの呼び
出しに対応したデバッグ用プログラムコードの埋め込み
について説明する。C++では、オブジェクトの持つメ
ソッドの呼び出しは、“->”または“.”で表わされる
ので、プログラム中でこの語を検出し、オブジェクトの
持つメソッドの呼び出し箇所を検索することができる。
ただし、“->”または“.”のすべてがメソッドの呼び
出しとは限らないので、“->”または“.”の左部の変
数を変数表にてチェックして、その型がクラス型である
ことを確認し、また、右部をクラス表でチェックしてメ
ソッドであることを確認する必要がある。
Next, the embedding of the debugging program code corresponding to the method call of the object will be described. In C ++, since the method call of the object is represented by "->" or ".", This word can be detected in the program and the location of the method call of the object can be searched.
However, not all "->" or "." Are method calls, so check the variables on the left side of "->" or "." In the variable table, and check that the type is a class type. You need to make sure that it exists, and check the right part of the class table to make sure it is a method.

【0046】オブジェクトの持つメソッドの呼び出し箇
所には、図9に示すようなデバッグ用プログラムコード
を埋め込むことができる。図9のデバッグ用プログラム
コードは、オブジェクトの持つメソッドの呼び出しの情
報として、すべてのオブジェクトの振る舞いに対する通
し番号であるcountを表示するためのコードと、オ
ブジェクトの持つメソッドの呼び出しを示すMETHO
D,メソッドの名称(メソッド名)を表示するためのコー
ドと、オブジェクトの持つメソッドがどこから呼び出さ
れたかを示すFROM,メソッドの呼び出し箇所を表示
するためのコードと、メソッドの呼び出し箇所の名称を
表示するためのコードと、どのクラスの持つメソッドが
呼び出されたかを示すクラス名(呼び出し先クラス名)を
表示するためのコードと、呼び出されたメソッドの引き
数の数を表示するためのコードと、呼び出されたメソッ
ドの引き数の値を表示するためのコードとにより構成さ
れたものとなっている。なお、オブジェクト指向システ
ムでは、メソッドの呼び出し箇所が関数内である場合と
メソッド内である場合とがあり、従って、メソッドの呼
出し箇所の名称を表示するためのコードとしては、関数
名またはメソッド名が用いられる。
A program code for debugging as shown in FIG. 9 can be embedded in the call location of the method of the object. The debug program code in FIG. 9 is a code for displaying a count, which is a serial number for the behavior of all objects, as information on the method invocation of the object, and a METHO indicating the method invocation of the object.
D, the code for displaying the name of the method (method name), the FROM that indicates where the method of the object was called from, the code for displaying the call location of the method, and the name of the call location of the method Code for displaying, the code for displaying the class name (callee class name) indicating which method of which class has been called, and the code for displaying the number of arguments of the called method, It is composed of code for displaying the value of the argument of the called method. In an object-oriented system, there are cases where the method is called within a function and cases where it is inside a method. Therefore, the function name or method name is used as the code for displaying the name of the method called. Used.

【0047】次に、オブジェクトの持つ属性への値の代
入に対応したデバッグ用プログラムコードの埋め込みに
ついて説明する。C++では、オブジェクトの持つ属性
は、クラス内での属性は、そのまま名称で、クラス外で
の属性は、“->”または“.”で表わされるので、プロ
グラム中でこの語を検出し、オブジェクトの持つ属性へ
の値の代入箇所を検索することができる。ただし、“-
>”または“.”のすべてが値の代入箇所とは限らないの
で、“->”または“.”の左部の変数を変数表にチェッ
クしてその型がクラス型であることを確認し、また、右
部をクラス表でチェックして属性名であることを確認す
る必要がある。
Next, the embedding of the debugging program code corresponding to the assignment of the value to the attribute of the object will be described. In C ++, the attributes that an object has are that the attributes within the class are as they are, and the attributes outside the class are represented by "->" or ".". You can search for the place to assign the value to the attribute of. However, "-
Not all ">" or "." Are the place to assign the value, so check the variables on the left side of "->" or "." In the variable table to confirm that the type is a class type. Also, it is necessary to check the right part in the class table to confirm that it is an attribute name.

【0048】このようにしてオブジェクトの持つ属性へ
の値の代入箇所が検索されると、オブジェクトの持つ属
性への値の代入箇所には、図10に示すようなデバッグ
用プログラムコードを埋め込むことができる。図10の
デバッグ用プログラムコードは、オブジェクトの持つ属
性への値の代入の情報として、すべてのオブジェクトの
振る舞いに対する通し番号であるcountを表示する
ためのコードと、オブジェクトの持つ属性への値の代入
を示すATTRIBUTE,属性の名称(属性名)を表示
するためのコードと、値をどこで代入しているかを示す
WHERE,値の代入箇所を表示するためのコードと、
値の代入箇所の名称を表示するためのコードと、どのク
ラスの持つ属性に値が代入されたかを示すクラス名(呼
び出し先クラス名)を表示するためのコードと、どんな
値が代入されたかを示す変数VARIABLEの名称
(変数名)を表示するためのコードとにより構成されてい
る。なお、オブジェクト指向システムでは、属性への値
の代入箇所が関数内である場合とメソッド内である場合
とがあり、従って、属性への値の代入箇所の名称を表示
するためのコードとしては、関数名またはメソッド名が
用いられる。
When the location of the value assigned to the attribute of the object is searched in this way, a debugging program code as shown in FIG. 10 may be embedded in the location of the value assigned to the attribute of the object. it can. The debug program code in FIG. 10 includes a code for displaying a count, which is a serial number for the behavior of all objects, as information for assigning values to attributes of objects, and a value assignment to attributes of objects. ATTRIBUTE to show, a code to display the name of the attribute (attribute name), WHERE to show where to substitute the value, code to display the place to substitute the value,
The code to display the name of the place where the value is assigned, the code to display the class name (callee class name) that indicates which class has the value assigned to the attribute, and what value is assigned Name of variable VARIABLE to indicate
And a code for displaying (variable name). In an object-oriented system, there are cases where the value assignment to the attribute is inside the function and cases where it is inside the method. Therefore, the code for displaying the name of the value assignment to the attribute is as follows: Function or method names are used.

【0049】このようにして、本実施例では、ソースプ
ログラムにおいて、オブジェクトの振る舞いの箇所を自
動検索し、検索した箇所に所定のデバッグ用プログラム
コードを自動的に埋め込むことができる。なお、このよ
うな検索,埋め込み処理を、上述のように、例えば、オ
ブジェクトの生成箇所,オブジェクトの削除箇所,オブ
ジェクトの持つメソッドの呼び出し箇所,オブジェクト
の持つ属性への値の代入箇所ごとに、各々別個のルーチ
ンで行なっても良いが、これらの各検索,埋め込み処理
を1つのルーチンで1パスで実行することもできる。
As described above, in this embodiment, in the source program, the location of the behavior of the object can be automatically searched, and the predetermined debugging program code can be automatically embedded in the searched location. It should be noted that such retrieval and embedding processing is performed, for example, for each object generation location, object deletion location, object method invocation location, and object attribute assignment location as described above. Although it may be carried out in a separate routine, each of these retrieval and embedding processes can be executed in one pass in one routine.

【0050】また、上記例では、ソースプログラム中へ
のオブジェクト挙動認識手段1の埋め込みについて具体
的に説明したが、データ認識手段4,保存手段2のソー
スプログラム中への埋め込み処理についても、同様にし
て、自動的に行なうことができる。
In the above example, the embedding of the object behavior recognizing means 1 into the source program has been specifically described, but the embedding processing of the data recognizing means 4 and the storing means 2 into the source program is similarly performed. Can be done automatically.

【0051】このようにして、ソースプログラムを解析
し、ユーザが定義したクラスの定義(属性およびメソッ
ド)やユーザ定義のデータタイプ(型)などを取り出し、
プログラム中のメッセージの呼び出し箇所およびその時
のデータとデータタイプを認識し、さらにその他のオブ
ジェクトの振る舞いを自動認識して、その振る舞いを行
う箇所に、所定のデバッグ用プログラムコードを自動的
に埋め込むことができる。
In this way, the source program is analyzed, and the user-defined class definitions (attributes and methods) and user-defined data types (types) are extracted,
It is possible to recognize the call location of the message in the program and the data and data type at that time, automatically recognize the behavior of other objects, and automatically embed the predetermined debug program code in the location where the behavior is performed. it can.

【0052】いま、例えば図11に示すようなソースプ
ログラム(サンプルプログラム)が指定されたとし、この
サンプルプログラムを用いてオブジェクトの振る舞いが
どのように本実施例の開発支援装置で処理されるかを図
2の処理を例にとって具体的に説明する。
Now, assuming that a source program (sample program) as shown in FIG. 11 is specified, how the behavior of the object is processed by the development support apparatus of this embodiment using this sample program is described. The processing of FIG. 2 will be specifically described as an example.

【0053】図2のステップS1の処理においては、図
11に示すようなソースプログラムが与えられるとき、
これをファイル名がtest.ccであるものとして指
定する。次に、ステップS2におけるソースプログラム
(test.cc)の解析処理では、まず、ファイルの先
頭に、オブジェクトの履歴を書き出すファイルを宣言し
ておく。さらに、ソースプログラムからmain関数を
検索し、main関数の先頭にこの履歴を保存するファ
イルをオープンする関数を挿入する。また、main関
数の最後にこのファイルをクローズする関数を挿入す
る。次にファイルを順次解析していき、ファイル内で定
義されているクラスおよびデータ型を認識する。図11
のソースプログラムの場合には、クラス定義として、c
lassBおよびclassAが定義されており、ユー
ザ定義のデータ型はない。また、クラス定義の中でcl
assBはメソッドmethodBをもち、また、cl
assAは属性ptrとメソッドmethodAをも
ち、methodBの引数はcで、charであり、c
lassAの属性ptrのタイプはclassBへのポ
インターであり、また、methodAの引数はa,b
の2つで、ともにintegerであることが認識され
る。またmain関数内で変数a,bがそれぞれクラス
のclassA型,classB型であることなどの変
数の型も認識される。このようにして、図4,図5,図
6に示したようなデータ型表,クラス表,変数表を作成
し、これらの情報を基に再びソースプログラムを順次解
析していき、オブジェクトが振る舞う箇所を検出し、そ
こにオブジェクトの振る舞いを書き出す手続きを埋め込
む。すなわち、図7,図8,図9あるいは図10に示す
ようなデバッグ用プログラムコードを埋め込む。
In the process of step S1 of FIG. 2, when a source program as shown in FIG. 11 is given,
The file name is test. Designate as being cc. Next, the source program in step S2
In the (test.cc) analysis process, first, a file in which the history of the object is written is declared at the beginning of the file. Further, the main function is searched for from the source program, and a function for opening a file for saving this history is inserted at the beginning of the main function. Also, a function for closing this file is inserted at the end of the main function. Next, the file is sequentially analyzed to recognize the classes and data types defined in the file. Figure 11
In the case of the source program of
classB and classA are defined, and there is no user-defined data type. Also, in the class definition, cl
assB has the method methodB, and cl
assA has the attribute ptr and the method methodA, and the argument of methodB is c, char, and c
The type of attribute ptr of classA is a pointer to classB, and the arguments of methodA are a and b.
It is recognized that both are integers. In addition, variable types such as the variables a and b being class class A and class B are also recognized in the main function. In this way, the data type table, class table, and variable table as shown in FIGS. 4, 5, and 6 are created, and the source program is sequentially analyzed again based on these information, and the object behaves. Embed a procedure that detects a location and writes out the behavior of the object. That is, the debugging program code as shown in FIG. 7, FIG. 8, FIG. 9 or FIG. 10 is embedded.

【0054】図11のサンプルプログラムでは、部分P
1,P2,P3,P4,P5,P6がオブジェクトの振
る舞いの箇所として検出される。
In the sample program of FIG. 11, the part P
1, P2, P3, P4, P5 and P6 are detected as the behavioral parts of the object.

【0055】すなわち、サンプルプログラム(tes
t.cc)を上から順に見ていくと、まず、class
AのメソッドmethodAの中でmethodBを呼
び出しているのが検出される(図11の部分P1)。そこ
で、ここにメソッド呼び出しの情報をファイルに書き出
す手続き,すなわち図9に示すようなデバッグ用プログ
ラムコードを埋め込む。
That is, the sample program (tes
t. Looking at (cc) from top to bottom, first, class
It is detected that methodB is called in method A of method A (portion P1 in FIG. 11). Therefore, a procedure for writing the method call information to a file, that is, a debugging program code as shown in FIG. 9 is embedded here.

【0056】次に、newでclassAを生成してい
る部分が検出される(図11の部分P2)。そこで、ここ
にはオブジェクト生成の情報をファイルに書き出す手続
き,すなわち図7に示すようなデバッグ用プログラムコ
ードを埋め込む。
Next, the part generating classA in new is detected (part P2 in FIG. 11). Therefore, a procedure for writing the information of object generation to a file, that is, a debugging program code as shown in FIG. 7 is embedded here.

【0057】次に、classBを生成している部分が
検出され(図11の部分P3)、この部分P3について
も、部分P2と同様にして、図7に示すようなデバッグ
用プログラムコードを埋め込む。
Next, the portion generating class B is detected (portion P3 in FIG. 11), and the debugging program code as shown in FIG. 7 is also embedded in this portion P3 in the same manner as in the portion P2.

【0058】次に、プログラム内からのメソッドの呼び
出しの部分が検出され(図11の部分P4)、この部分P
4についても、先程のmethodA内からのmeth
odBの呼び出しと同様な情報をファイルに書き出す手
続き,すなわち図9に示すようなデバッグ用プログラム
コードを埋め込む。
Next, a method call portion from within the program is detected (portion P4 in FIG. 11), and this portion P is detected.
Also for 4, the method from within method A
A procedure for writing information similar to the call of odB to a file, that is, a debugging program code as shown in FIG. 9 is embedded.

【0059】そして、最後に、オブジェクトa、bを削
除している部分が検出され(図11の部分P5,P6)、
これらの部分P5,P6にオブジェクト削除の情報をフ
ァイルに書き出す手続き,すなわち図8に示すようなデ
バッグ用プログラムコードを埋め込む。
Finally, the portions where the objects a and b are deleted are detected (portions P5 and P6 in FIG. 11),
A procedure for writing the information of object deletion into a file, that is, a debugging program code as shown in FIG. 8 is embedded in these portions P5 and P6.

【0060】このようにしてソースプログラム(サンプ
ルプログラム)の解析を終了する。図12乃至図14
は、図11のソースプログラムの解析が終了し、図11
のソースプログラムのデバッグに必要な手続き,すなわ
ち所定のデバッグ用プログラムコードが埋め込まれた状
態を示す図である。
Thus, the analysis of the source program (sample program) is completed. 12 to 14
11 completes the analysis of the source program of FIG.
FIG. 3 is a diagram showing a procedure necessary for debugging the source program, that is, a state in which a predetermined debug program code is embedded.

【0061】なお、図12乃至図14のソースプログラ
ムにおいて、本実施例の開発支援装置によって図11の
ソースプログラムに付け加えられた(埋め込まれた)デバ
ッグ用プログラムコードの部分は、すべて、#ifde
f OO_TOOLと#endifとで挾まれている。
In the source programs of FIGS. 12 to 14, all the debug program code portions (embedded) added (embedded) to the source program of FIG. 11 by the development supporting apparatus of this embodiment are #ifde.
It is sandwiched between fOO_TOOL and #endif.

【0062】図12乃至図14を参照すると、図12の
(Q1)の部分では、オブジェクトの振る舞いを書き出す
ファイルを定義し、そのためのファイルポインターを宣
言している。また、このファイルポインターの宣言に必
要なFILE型のために<stdio.h>をインクル
ードしている。countの変数は、オブジェクトの振
る舞いをカウントするためのグローバル変数である。
Referring to FIGS. 12-14, FIG.
In the part (Q1), a file for writing out the behavior of the object is defined, and a file pointer for that is declared. Also, for the FILE type necessary for the declaration of this file pointer, <stdio. h> is included. The count variable is a global variable for counting the behavior of the object.

【0063】また、図12の(Q2)の部分(図11のソ
ースプログラムの部分P1に対応)には、classA
の持つメソッドmethodA内での他のクラスの持つ
メソッドの呼び出しをファイルに保存する手続き,すな
わち図9に示すようなデバッグ用プログラムコードが埋
め込まれている。すなわち、図11のソースプログラム
の部分P1では、classAのメソッドmethod
Aからの呼び出しであるので、図9のデバッグ用プログ
ラムコードにおいて、メソッドの呼び出し箇所は(FRO
M)、classAであり、関数名は(FUNCTION)、met
hodAとなる。
Further, in the portion (Q2) of FIG. 12 (corresponding to the portion P1 of the source program of FIG. 11), classA
A method for saving a call of a method of another class in the method methodA of A, that is, a debugging program code as shown in FIG. 9 is embedded. That is, in the part P1 of the source program in FIG. 11, the method method of classA is
Since it is a call from A, in the debug program code of FIG. 9, the method call location is (FRO
M) and class A, and the function name is (FUNCTION), met
It becomes hodA.

【0064】これにより、図12の(Q2)の部分が実行
されると、先ず、オブジェクトの振る舞いのカウンター
countが出力され、次にメソッドの呼び出しである
ことを示す”METHOD”とメソッドの名称meth
odBが出力される。次に、どこからどこへ(どのクラ
スの)メソッドが呼ばれたかがFROMとTOで出力さ
れる。なお、これらの間の”FUNCTION”は、ど
の関数から呼び出されたかを示すものである。この場合
は、メソッドmethodAであるので、この名称me
thodAが出力される。次いで、引数について、ま
ず、引数の数“1”が出力され、次に引数の値“a”が
出力される。
As a result, when part (Q2) of FIG. 12 is executed, first, a counter count of the behavior of the object is output, and then "METHOD" indicating the method call and the method name meth.
odB is output. Next, FROM and TO are output from where and where (of which class) the method was called. Note that "FUNCTION" between them indicates from which function the function was called. In this case, since it is the method methodA, this name me
methodA is output. Next, for the argument, first, the number of arguments “1” is output, and then the value of the argument “a” is output.

【0065】また、図13,図14はmain関数につ
いてのプログラムコードであり、図13の(Q3)の部分
(図11のソースプログラムの部分P2に対応)には、プ
ログラムの最初に呼ばれるメイン関数の先頭にオブジェ
クトの振る舞いを書き出す為のファイルをオープンする
手続きが埋め込まれている。また、(Q4)の部分では、
オブジェクトの生成を示す内容をファイルに保存する手
続き,すなわち、図7に示すようなデバッグ用プログラ
ムコードが埋め込まれている。すなわち、図11のソー
スプログラムの部分P2では、mainという関数内で
の生成であるので、ともに生成箇所は(WHERE)は、FU
NCTIONであり、関数名は、(FUNCTION)、mainとな
る。
Further, FIGS. 13 and 14 are program codes for the main function, and the part (Q3) of FIG.
In (corresponding to the portion P2 of the source program in FIG. 11), a procedure for opening a file for writing the behavior of the object is embedded at the head of the main function called at the beginning of the program. Also, in the part of (Q4),
A procedure for saving the content indicating the generation of an object in a file, that is, a debugging program code as shown in FIG. 7 is embedded. That is, in the portion P2 of the source program of FIG. 11, since the generation is performed within the function called main, the generation location is (WHERE) is FU.
It is NCTION, and the function names are (FUNCTION) and main.

【0066】これにより、(Q4)の部分が実行される
と、まずオブジェクトの振る舞いのカウンターcoun
tが出力され、次に生成を示す”CREATE”と生成
されるクラスの名称classAが出力される。次に、
生成されたオブジェクトを示すポインターが格納されて
いる変数の名称“a”が出力され、次にどこで生成され
たかが出力される。いまの場合は、関数内で生成されて
いるので”FUNCTION”と出力されるが、あるク
ラスの持つメソッド内で生成される場合には、そのクラ
ス名が出力される。次いで、関数の名称またはメソッド
の名称が出力される。いまの場合、関数の名称main
が出力される。
As a result, when the part (Q4) is executed, the object behavior counter counter is first counted.
t is output, and then "CREATE" indicating the generation and the name classA of the generated class are output. next,
The variable name "a" in which the pointer indicating the generated object is stored is output, and then the position where the variable is generated is output. In this case, "FUNCTION" is output because it is generated in the function, but when it is generated in the method of a certain class, the class name is output. Then, the name of the function or the name of the method is output. In this case, the function name main
Is output.

【0067】また、(Q5)の部分(図11のソースプロ
グラムの部分P3に対応)にも、(Q4)と同様に、オブ
ジェクトの生成を示す内容をファイルに保存する手続き
が埋め込まれており、(Q5)の部分が実行されると、ク
ラスclassBに関して、(Q4)の部分と同様の出力
がなされる。
Also, in the portion (Q5) (corresponding to the portion P3 of the source program in FIG. 11), as in the case of (Q4), a procedure for saving the content indicating the generation of an object in a file is embedded, When the part (Q5) is executed, the same output as that of the part (Q4) is made for the class classB.

【0068】また、図13の(Q6)の部分(図11のソ
ースプログラムの部分P4に対応)には、図12の(Q
2)とほぼ同様の手続きが埋め込まれている。但し、(Q
2)の部分と異なり、(Q6)の部分は、メソッドの呼び
出し元がオブジェクトではないので”FROM”が”F
UNCTION”であり、呼び出している関数が”ma
in”となる。すなわち、図11のソースプログラムの
部分P4では、mainという関数内でのメソッドの呼
び出しであるので、メソッドの呼び出し箇所は(FROM)、
FUNCTIONであり、関数名は(FUNCTION)、mai
nとなる。
Further, in the portion (Q6) of FIG. 13 (corresponding to the portion P4 of the source program of FIG. 11), (Q6 of FIG.
The procedure similar to 2) is embedded. However, (Q
Unlike the part 2), in the part (Q6), "FROM" is "F" because the method caller is not an object.
"UNCTION" and the calling function is "ma
In other words, in the portion P4 of the source program of FIG. 11, since it is a method call within a function called main, the method call location is (FROM),
FUNCTION, the function name is (FUNCTION), mai
n.

【0069】また、図14の(Q7)の部分(図11のソ
ースプログラムの部分P5に対応)には、オブジェクト
の削除を示す内容を書き出す手続き,すなわち図8に示
すようなデバッグ用プログラムコードが埋め込まれてい
る。(Q7)の部分が実行されると、最初にオブジェクト
の振る舞いのカウンターcountが出力され、次に削
除を示す”DELETE”および削除されるクラスの名
称(ここでは”classA”)が出力される。次にこの
オブジェクトを示す変数名“a”が出力され、次いで、
削除される場所”WHERE”、ここではクラス内では
なく、関数内なので、”FUNCTION”が出力さ
れ、次にその関数名”main”が出力される。
Further, in the portion (Q7) of FIG. 14 (corresponding to the portion P5 of the source program of FIG. 11), the procedure for writing the contents indicating the deletion of the object, that is, the debugging program code as shown in FIG. It is embedded. When the part (Q7) is executed, first, the counter "count" of the behavior of the object is output, and then "DELETE" indicating the deletion and the name of the class to be deleted ("classA" here) are output. Next, the variable name "a" indicating this object is output, and then
Since the location "WHERE" to be deleted, that is, not in the class but in the function here, "FUNCTION" is output, and then the function name "main" is output.

【0070】また、図14の(Q8)の部分(図11のソ
ースプログラムの部分P6に対応)には、(Q7)と同様
の手続きが埋め込まれている。
Further, in the portion (Q8) of FIG. 14 (corresponding to the portion P6 of the source program of FIG. 11), the same procedure as that of (Q7) is embedded.

【0071】また、図14の(Q9)の部分は、図13の
(Q3)のファイルのオープンに呼応する処理で、オブジ
ェクトの振る舞いを書き出すファイルを閉じる処理を行
なっている。
The portion (Q9) of FIG. 14 is the same as that of FIG.
In the process of responding to the opening of the file in (Q3), the process of writing the behavior of the object is closed.

【0072】このようにして、埋め込み処理がなされた
後、図2のステップS3に進み、システムを実行する。
システムを実行すると、ステップS2で埋め込んだプリ
ント文により、ファイル(OO_TOOL_FILE
=”OO_tool.file”)にオブジェクトの振
る舞いが書き出され、時系列に保存される。その保存さ
れた内容を図15に示す。すなわち、図15は、図12
乃至図14のプログラムをコンパイルし、システムを実
行した結果書き出されたオブジェクトの振る舞いに関す
る情報を含んでいるファイルの内容である。
After the embedding process is performed in this way, the process proceeds to step S3 in FIG. 2 to execute the system.
When the system is executed, the file (OO_TOOL_FILE) is created by the print statement embedded in step S2.
= “OO_tool.file”), the behavior of the object is written out and saved in time series. The stored contents are shown in FIG. That is, FIG. 15 corresponds to FIG.
It is the contents of the file containing the information about the behavior of the object written as a result of compiling the program of FIG. 14 and executing the system.

【0073】図15には、6つのオブジェクトの振る舞
いが書き出されており、P1’およびP2’はオブジェ
クトの生成で、図12乃至図14の(Q4)および(Q5)
にそれぞれ対応している。また、P3’およびP4’は
メソッドの呼び出しであり、図12乃至図14の(Q6)
および(Q2)にそれぞれ対応している。また、P5’お
よびP6’はオブジェクトの削除であり、図12乃至図
14の(Q7)および(Q8)にそれぞれ対応している。
In FIG. 15, the behaviors of the six objects are written out. P1 'and P2' are object generations, and (Q4) and (Q5) in FIGS.
It corresponds to each. Further, P3 'and P4' are method invocations, and are (Q6) in FIGS.
And (Q2) respectively. Further, P5 'and P6' are deletions of objects, and correspond to (Q7) and (Q8) of FIGS. 12 to 14, respectively.

【0074】このようにして、保存手段2によりオブジ
ェクトの振る舞いがファイルに保存されると、図2のス
テップS4に進み、システムの実行を視覚的に見るため
に、出力手段3を起動する。これにより、出力手段3
は、ファイルの内容を読み込み、ユーザの指定に従って
視覚的にシステム内でのオブジェクトの振る舞いを表示
する。ここで、ユーザの指定として、1)自動的に一定
時間でオブジェクトの振る舞いを出力手段が進行してい
く、2)ユーザが逐次指示を行い、オブジェクトの振る
舞いの表示を行なっていくなどの指定を選択して行なう
ことができる。
When the behavior of the object is stored in the file by the storage means 2 in this way, the process proceeds to step S4 of FIG. 2 and the output means 3 is activated in order to visually see the execution of the system. Thereby, the output means 3
Reads the contents of a file and visually displays the behavior of objects in the system as specified by the user. Here, as the user's designation, 1) the output means automatically advances the behavior of the object in a fixed time, 2) the user sequentially gives instructions, and the behavior of the object is displayed. It can be selected.

【0075】実際に、図15のファイル内容(履歴)に基
づいて、オブジェクトの振る舞いを表示した出力手段3
の様子の一例を図16乃至図18に示す。すなわち、図
16乃至図18は、本実施例の開発支援装置が図15の
ファイル内容を読み込んで、オブジェクトの振る舞いを
表示している状態を示す図である。
The output means 3 which actually displays the behavior of the object based on the file contents (history) of FIG.
16 to 18 show an example of the above situation. That is, FIG. 16 to FIG. 18 are diagrams showing a state in which the development supporting apparatus of the present embodiment reads the file contents of FIG. 15 and displays the behavior of the object.

【0076】図16乃至図18を参照すると、まず、図
16(a)は出力手段起動時の画面であり、この時点では
何も表示されていない。次に、出力手段3が起動される
と、図16(b)のように、画面上にプログラムボックス
が表示される。ここで、プログラムボックスが表示され
るのは、出力手段3ではオブジェクトの振る舞いおよび
オブジェクト間の振る舞いを表示する一方で、オブジェ
クトではなく関数からオブジェクトが作成されたり、メ
ソッドが呼び出されたりする場合に、これらに対応した
表示領域を確保するためである。なお、図16(b)の例
では、便宜上、1つのプログラムボックスしか表示され
ていないが、ユーザの要求に応じて関数毎にあるいはモ
ジュール毎にプログラムボックスを複数表示しても良
い。
Referring to FIGS. 16 to 18, first, FIG. 16A is a screen when the output means is started, and nothing is displayed at this time. Next, when the output means 3 is activated, a program box is displayed on the screen as shown in FIG. 16 (b). Here, the program box is displayed when the output means 3 displays the behavior of objects and the behavior between objects, but when an object is created from a function or a method is called instead of an object, This is to secure a display area corresponding to these. In the example of FIG. 16B, only one program box is displayed for convenience, but a plurality of program boxes may be displayed for each function or each module according to the user's request.

【0077】次に、画面上には、図16(c)のように、
図15のP1’に対応する処理、すなわちclassA
型のオブジェクトaが作成される処理が表示される。す
なわち、画面上にはクラス型Aと変数名aとがボックス
の中に表示される。次いで、画面上には、図16(d)の
ように、図15のP2’に対応するclassB型のオ
ブジェクトbが作成される処理が表示される。すなわ
ち、図16(c)と同様に、クラス型Bと変数名bとがボ
ックスの中に表示される。
Next, on the screen, as shown in FIG. 16 (c),
The process corresponding to P1 ′ in FIG. 15, ie, classA
The process of creating a type object a is displayed. That is, the class type A and the variable name a are displayed in the box on the screen. Next, as shown in FIG. 16D, a process of creating a class B type object b corresponding to P2 ′ in FIG. 15 is displayed on the screen. That is, as in FIG. 16C, the class type B and the variable name b are displayed in the box.

【0078】次いで、画面上には、図17(e)のよう
に、図15のP3’に対応する処理が表示される。すな
わち、P3’の処理は、メイン関数からのオブジェクト
aの持つメソッドの呼び出しであるので、プログラムボ
ックスからclassA型のオブジェクトaボックスに
矢印が表示される。ここで、オペレータが矢印を選択す
ることにより、どのようなデータが渡されたかなどのメ
ソッドに関する情報を表示することが可能である。次い
で、画面上には、図17(f)のように、図15のP4’
に対応する処理が表示される。すなわち、P4’の処理
では、P3’と同様にしてメソッドmethodAから
classB型のオブジェクトの持つメソッドが呼び出
されているので、オブジェクトaからオブジェクトbに
対して矢印が表示される。
Then, as shown in FIG. 17E, the process corresponding to P3 'in FIG. 15 is displayed on the screen. That is, since the process of P3 'is a call of the method of the object a from the main function, an arrow is displayed in the class A type object a box from the program box. Here, when the operator selects the arrow, it is possible to display information regarding the method such as what data has been passed. Then, on the screen, as shown in FIG. 17 (f), P4 ′ in FIG. 15 is displayed.
The process corresponding to is displayed. That is, in the process of P4 ′, the method of the object of the class B type is called from the method methodA in the same manner as in P3 ′, and therefore an arrow is displayed from the object a to the object b.

【0079】メソッドの処理が終了すると、メソッドの
呼び出しを示す矢印が消去されるので、画面上では、図
17(g)のように、オブジェクトaからのメソッドを示
す矢印が消去され、また、図17(h)のように、プログ
ラムからオブジェクトaのメソッドを呼び出すことを示
す矢印が順次消去される。
When the method processing is completed, the arrow indicating the method call is erased, so that the arrow indicating the method from the object a is erased on the screen as shown in FIG. As shown in 17 (h), the arrow indicating that the method of the object a is called from the program is sequentially erased.

【0080】次に、画面上では、図15のP5’の処理
でオブジェクトbが削除されるので、画面上では、図1
8(i)のように、オブジェクトbを示すオブジェクトb
ボックスが消去される。次いで、同様にして図15のP
6’の処理でオブジェクトaが削除されるので、画面上
では、図18(j)のように、オブジェクトaボックスが
削除され、一連のオブジェクトの振る舞いを示す処理が
終了する。
Next, since the object b is deleted on the screen in the process of P5 'in FIG. 15, the screen shown in FIG.
Object b indicating object b, such as 8 (i)
The box is erased. Then, in the same manner as P in FIG.
Since the object a is deleted in the process 6 ′, the object a box is deleted on the screen as shown in FIG. 18 (j), and the process showing the behavior of the series of objects ends.

【0081】上述の例では、一連の画面(図16(a)〜
図18(j))によるオブジェクトの振る舞いを表示した
が、この処理はリアルタイム処理ではなく、ファイルに
オブジェクトの振る舞いがすべて保存されている。従っ
て、処理の実行を後戻りすることも可能である。すなわ
ち、図16(a)〜図18(j)に示した一連の画面を途中
から元に戻したり、また、図18(j)から逆に始めて図
16(a)に戻すことも可能である。
In the above example, a series of screens (see FIG. 16 (a)-
The behavior of the object shown in FIG. 18 (j) is displayed, but this processing is not real-time processing, and all the behavior of the object is stored in the file. Therefore, it is possible to go back to the execution of the process. That is, it is possible to return the series of screens shown in FIGS. 16 (a) to 18 (j) to the original state from the middle, or to return to the state shown in FIG. 16 (a) starting from FIG. .

【0082】[0082]

【発明の効果】以上に説明したように、請求項1乃至請
求項9記載の発明では、オブジェクト指向システムの開
発環境において、オブジェクト指向システムを実際に起
動した際に、オブジェクト間でのメッセージの授受やオ
ブジェクトの生成や削除などのオブジェクトの振る舞い
を認識するオブジェクト挙動認識手段と、オブジェクト
挙動認識手段によって認識されたオブジェクトの振る舞
いをファイルに保存する保存手段と、前記保存手段によ
ってファイルに保存されたオブジェクトの振る舞いを読
み取り出力する出力手段とを備えているので、オブジェ
クト指向システムを実際に動作させたときのシステムの
挙動、すなわち、オブジェクトの振る舞いなどをユーザ
が容易に理解することができる。
As described above, according to the inventions of claims 1 to 9, when an object-oriented system is actually activated in an object-oriented system development environment, messages are exchanged between the objects. Behavior recognition means for recognizing behavior of objects such as creation and deletion of objects and objects, storage means for storing the behavior of objects recognized by the object behavior recognition means in a file, and objects stored in the file by the storage means With the output means for reading and outputting the behavior of the object-oriented system, the user can easily understand the behavior of the system when the object-oriented system is actually operated, that is, the behavior of the object.

【0083】特に、請求項3記載の発明によれば、前記
オブジェクト挙動認識手段は、特定のオブジェクトに注
目し、該特定のオブジェクトに関する振る舞いのみを認
識するので、必要なデータのみを集中して取り扱うこと
ができ、不必要なデータを省くことができる。
In particular, according to the third aspect of the invention, the object behavior recognition means focuses on a specific object and recognizes only the behavior related to the specific object, so that only necessary data is handled in a concentrated manner. It is possible to omit unnecessary data.

【0084】また、請求項6記載の発明では、さらに、
前記オブジェクト挙動認識手段,前記データ認識手段
を、オブジェクト指向システムの実行前にファイルに埋
め込む第2の埋込手段を有しており、第2の埋込手段
は、ソースプログラムを解析することによって、オブジ
ェクトの生成や削除,メッセージの送信などの振る舞い
の箇所を自動認識してオブジェクト挙動認識手段を埋め
込むことができるので、ユーザは、オブジェクト挙動認
識手段をこのオブジェクト指向システムに自ら設定する
必要がなく、ユーザの作業効率を著しく向上させること
ができる。
In the invention according to claim 6, further,
The object behavior recognizing means and the data recognizing means have a second embedding means for embedding them in a file before the execution of the object-oriented system. The second embedding means analyzes the source program, Since the object behavior recognition means can be embedded by automatically recognizing the behavioral parts such as object generation and deletion, and message transmission, the user does not need to set the object behavior recognition means in this object-oriented system by himself. The work efficiency of the user can be significantly improved.

【0085】また、請求項7記載の発明では、前記出力
手段は、前記ファイルに保存された内容を視覚化して表
示するようになっており、例えば、システムの振る舞い
をユーザに提示する場合には、オブジェクトを四角や円
などで表示したり、また、メッセージの授受(やりとり)
をユーザに提示する場合には、オブジェクト間にリンク
を表示するなどによって、ユーザは視覚的に容易にシス
テムの振る舞いを把握できる。
In the invention according to claim 7, the output means is adapted to visualize and display the contents stored in the file. For example, when presenting the behavior of the system to the user, , Display objects as squares or circles, and send and receive messages (exchange)
When presenting to the user, the user can visually and easily grasp the behavior of the system by displaying a link between the objects.

【0086】また、請求項8記載の発明では、前記出力
手段は、前記ファイルに保存された内容を視覚化して表
示する際に、ユーザの要求に応じて、システムの稼働に
合わせて、逐次、システムの稼働状況を表示するので、
時間の経過によるシステムの振る舞いをユーザに提示し
たり、また、時間をさかのぼってシステムの振る舞いを
ユーザに提示すること(すなわち、時間をさかのぼって
システムの振る舞いをたどること)も可能となる。
Further, in the invention according to the eighth aspect, when the output means visualizes and displays the contents stored in the file, the output means sequentially responds to the operation of the system in response to the user's request. Since the operating status of the system is displayed,
It is also possible to present the behavior of the system to the user over time, or to present the behavior of the system to the user by going back in time (that is, tracing the behavior of the system by going back in time).

【0087】また、請求項9記載の発明によれば、オブ
ジェクトの振る舞いをシステムの実行と同時に視覚化し
て表示するので、ユーザは、リアルタイムに容易にシス
テムの振る舞いを理解することができる。
According to the invention described in claim 9, the behavior of the object is visualized and displayed simultaneously with the execution of the system, so that the user can easily understand the behavior of the system in real time.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明に係るオブジェクト指向システムの開発
支援装置の一実施例の構成図である。
FIG. 1 is a configuration diagram of an embodiment of a development support apparatus for an object-oriented system according to the present invention.

【図2】図1の開発支援装置の処理動作の一例を示すフ
ローチャートである。
FIG. 2 is a flowchart showing an example of a processing operation of the development support device of FIG.

【図3】図1の開発支援装置の処理動作の他の例を示す
フローチャートである。
3 is a flowchart showing another example of the processing operation of the development support device of FIG.

【図4】データ型表の一例を示す図である。FIG. 4 is a diagram showing an example of a data type table.

【図5】クラス表の一例を示す図である。FIG. 5 is a diagram showing an example of a class table.

【図6】変数表の一例を示す図である。FIG. 6 is a diagram showing an example of a variable table.

【図7】オブジェクト生成に対応したデバッグ用プログ
ラムコードの一例を示す図である。
FIG. 7 is a diagram showing an example of a debug program code corresponding to object generation.

【図8】オブジェクト削除に対応したデバッグ用プログ
ラムコードの一例を示す図である。
FIG. 8 is a diagram showing an example of a debug program code corresponding to object deletion.

【図9】オブジェクトのもつメソッドの呼び出しに対応
したデバッグ用プログラムコードの一例を示す図であ
る。
FIG. 9 is a diagram showing an example of a debug program code corresponding to a method call of an object.

【図10】オブジェクトのもつ属性への値の代入に対応
したデバッグ用プログラムコードの一例を示す図であ
る。
FIG. 10 is a diagram showing an example of a debug program code corresponding to assignment of a value to an attribute of an object.

【図11】ソースプログラム(サンプルプログラム)の一
例を示す図である。
FIG. 11 is a diagram showing an example of a source program (sample program).

【図12】図11のソースプログラムにデバッグ用プロ
グラムコードが埋め込まれた状態を示す図である。
12 is a diagram showing a state in which a debugging program code is embedded in the source program of FIG.

【図13】図11のソースプログラムにデバッグ用プロ
グラムコードが埋め込まれた状態を示す図である。
13 is a diagram showing a state in which a debug program code is embedded in the source program of FIG.

【図14】図11のソースプログラムにデバッグ用プロ
グラムコードが埋め込まれた状態を示す図である。
14 is a diagram showing a state in which a debug program code is embedded in the source program of FIG.

【図15】図12乃至図14のプログラムをコンパイル
し、システムを実行した結果書き出されたオブジェクト
の振る舞いに関する情報を含んでいるファイルの内容を
示す図である。
FIG. 15 is a diagram showing the contents of a file containing information on the behavior of an object written as a result of compiling the programs of FIGS. 12 to 14 and executing the system.

【図16】図15のファイル内容を読み込んで、オブジ
ェクトの振る舞いを表示している状態を示す図である。
FIG. 16 is a diagram showing a state in which the behavior of an object is displayed by reading the file contents of FIG.

【図17】図15のファイル内容を読み込んで、オブジ
ェクトの振る舞いを表示している状態を示す図である。
FIG. 17 is a diagram showing a state in which the behavior of an object is displayed by reading the file contents of FIG.

【図18】図15のファイル内容を読み込んで、オブジ
ェクトの振る舞いを表示している状態を示す図である。
FIG. 18 is a diagram showing a state in which the behavior of an object is displayed by reading the file contents of FIG.

【符号の説明】[Explanation of symbols]

1 オブジェクト挙動認識手段 2 保存手段 3 出力手段 4 データ認識手段 6 第1の埋込手段 7 第2の埋込手段 F ファイル 1 Object Behavior Recognition Means 2 Storage Means 3 Output Means 4 Data Recognition Means 6 First Embedding Means 7 Second Embedding Means F File

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 オブジェクト指向システムの開発環境に
おいて、オブジェクト指向システムを実際に起動した際
に、オブジェクトの振る舞いを認識するオブジェクト挙
動認識手段と、オブジェクト挙動認識手段によって認識
されたオブジェクトの振る舞いをファイルに保存する保
存手段と、前記保存手段によってファイルに保存された
オブジェクトの振る舞いを読み取り出力する出力手段と
を備えていることを特徴とするオブジェクト指向システ
ムの開発支援装置。
1. An object behavior recognition means for recognizing the behavior of an object when an object-oriented system is actually started in an object-oriented system development environment, and the behavior of the object recognized by the object behavior recognition means in a file. An apparatus for supporting development of an object-oriented system, comprising: saving means for saving; and output means for reading and outputting the behavior of an object saved in a file by the saving means.
【請求項2】 請求項1記載のオブジェクト指向システ
ムの開発支援装置において、前記オブジェクト挙動認識
手段によりオブジェクトの振る舞いとしてオブジェクト
間でのメッセージの授受が認識されると、前記保存手段
は、認識されたメッセージを、オブジェクト間で授受が
なされた順にファイルに保存し、前記出力手段は、ファ
イル保存されたメッセージをも出力するようになってい
ることを特徴とするオブジェクト指向システムの開発支
援装置。
2. The development support apparatus for an object-oriented system according to claim 1, wherein when the object behavior recognition means recognizes message exchange between objects as behavior of the object, the storage means is recognized. A development support device for an object-oriented system, characterized in that messages are stored in a file in the order in which they are exchanged between objects, and the output means also outputs the messages stored in the file.
【請求項3】 請求項1記載のオブジェクト指向システ
ムの開発支援装置において、前記オブジェクト挙動認識
手段は、特定のオブジェクトに注目し、該特定のオブジ
ェクトに関する振る舞いのみを認識することを特徴とす
るオブジェクト指向システムの開発支援装置。
3. The object-oriented system development support apparatus according to claim 1, wherein the object behavior recognition means focuses on a specific object and recognizes only the behavior related to the specific object. System development support device.
【請求項4】 請求項1記載のオブジェクト指向システ
ムの開発支援装置において、さらに、メッセージ間で授
受されるメッセージ内のデータを認識するデータ認識手
段を有し、前記保存手段は、さらに、データ認識手段で
認識されたメッセージ内のデータをもファイルに保存
し、前記出力手段は、さらに、ファイルに保存されたメ
ッセージ内のデータをも出力するようになっていること
を特徴とするオブジェクト指向システムの開発支援装
置。
4. The development support apparatus for an object-oriented system according to claim 1, further comprising data recognition means for recognizing data in a message exchanged between messages, and said storage means further for data recognition. The data in the message recognized by the means is also stored in a file, and the output means further outputs the data in the message stored in the file. Development support device.
【請求項5】 請求項1乃至請求項4のいずれか一項に
記載のオブジェクト指向システムの開発支援装置におい
て、さらに、前記保存手段をオブジェクトの指向システ
ムの実行前にファイルに埋め込む第1の埋込手段を有し
ていることを特徴とするオブジェクト指向システムの開
発支援装置。
5. The development support apparatus for an object-oriented system according to claim 1, further comprising a first padding for embedding the storage means in a file before executing the object-oriented system. An apparatus for supporting the development of an object-oriented system, characterized in that it has an embedding means.
【請求項6】 請求項1乃至請求項4のいずれか一項に
記載のオブジェクト指向システムの開発支援装置におい
て、さらに、前記オブジェクト挙動認識手段,前記デー
タ認識手段を、オブジェクト指向システムの実行前にフ
ァイルに埋め込む第2の埋込手段を有していることを特
徴とするオブジェクト指向システムの開発支援装置。
6. The development support apparatus for an object-oriented system according to claim 1, further comprising the object behavior recognition means and the data recognition means before execution of the object-oriented system. An object-oriented system development supporting apparatus having a second embedding means for embedding in a file.
【請求項7】 請求項1乃至請求項4のいずれか一項に
記載のオブジェクト指向システムの開発支援装置におい
て、前記出力手段は、前記ファイルに保存された内容を
視覚化して表示することを特徴とするオブジェクト指向
システムの開発支援装置。
7. The development support device for an object-oriented system according to claim 1, wherein the output means visualizes and displays the contents stored in the file. Development support device for object oriented system.
【請求項8】 請求項7記載のオブジェクト指向システ
ムの開発支援装置において、前記出力手段は、前記ファ
イルに保存された内容を視覚化して表示する際に、ユー
ザの要求に応じて、システムの稼働に合わせて、逐次、
システムの稼働状況を表示することを特徴とするオブジ
ェクト指向システムの開発支援装置。
8. The development support apparatus for an object-oriented system according to claim 7, wherein the output means operates the system in response to a user request when visualizing and displaying the contents stored in the file. According to
An object-oriented system development support device characterized by displaying the operating status of the system.
【請求項9】 請求項7記載のオブジェクト指向システ
ムの開発支援装置において、前記出力手段は、オブジェ
クトの振る舞いをシステムの実行と同時に視覚化して表
示することを特徴とするオブジェクト指向システムの開
発支援装置。
9. The development support apparatus for an object-oriented system according to claim 7, wherein the output means visualizes and displays the behavior of the object at the same time as the system is executed. .
JP7142660A 1995-05-17 1995-05-17 Object-oriented system development support device Pending JPH08314752A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7142660A JPH08314752A (en) 1995-05-17 1995-05-17 Object-oriented system development support device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7142660A JPH08314752A (en) 1995-05-17 1995-05-17 Object-oriented system development support device

Publications (1)

Publication Number Publication Date
JPH08314752A true JPH08314752A (en) 1996-11-29

Family

ID=15320535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7142660A Pending JPH08314752A (en) 1995-05-17 1995-05-17 Object-oriented system development support device

Country Status (1)

Country Link
JP (1) JPH08314752A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108651A (en) * 2000-09-27 2002-04-12 Hitachi Software Eng Co Ltd Debug support device for object-oriented development
WO2006043480A1 (en) * 2004-10-19 2006-04-27 Winz Corporation Computer program, program executing device, program creating program, state displaying program, and so forth
US7478282B2 (en) 2003-04-02 2009-01-13 Canon Kabushiki Kaisha Log acquisition method and its control program and storage medium
JP2010204955A (en) * 2009-03-03 2010-09-16 Internatl Business Mach Corp <Ibm> Method of tracing object allocation site in program, as well as computer system and computer program therefor
WO2019077738A1 (en) * 2017-10-20 2019-04-25 三菱電機株式会社 Data verification device, data verification method, and data verification program

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108651A (en) * 2000-09-27 2002-04-12 Hitachi Software Eng Co Ltd Debug support device for object-oriented development
US7478282B2 (en) 2003-04-02 2009-01-13 Canon Kabushiki Kaisha Log acquisition method and its control program and storage medium
WO2006043480A1 (en) * 2004-10-19 2006-04-27 Winz Corporation Computer program, program executing device, program creating program, state displaying program, and so forth
JP2010204955A (en) * 2009-03-03 2010-09-16 Internatl Business Mach Corp <Ibm> Method of tracing object allocation site in program, as well as computer system and computer program therefor
US8555255B2 (en) 2009-03-03 2013-10-08 International Business Machines Corporation Method of tracing object allocation site in program, as well as computer system and computer program therefor
US8782610B2 (en) 2009-03-03 2014-07-15 International Business Machines Corporation Method of tracing object allocation site in program, as well as computer system and computer program therefor
WO2019077738A1 (en) * 2017-10-20 2019-04-25 三菱電機株式会社 Data verification device, data verification method, and data verification program
JPWO2019077738A1 (en) * 2017-10-20 2020-04-02 三菱電機株式会社 Data verification device, data verification method, and data verification program
GB2580830A (en) * 2017-10-20 2020-07-29 Mitsubishi Electric Corp Data verification device, data verification method, and data verification program
US11288171B2 (en) 2017-10-20 2022-03-29 Mitsubishi Electric Corporation Data verification apparatus, method and medium for determining whether referring parts of source code are executed
GB2580830B (en) * 2017-10-20 2022-04-13 Mitsubishi Electric Corp Data verification apparatus, data verification method, and data verification program

Similar Documents

Publication Publication Date Title
US5956479A (en) Demand based generation of symbolic information
Gruhn Validation and verification of software process models
US8171449B2 (en) Generating sequence diagrams using call trees
Systa Understanding the behavior of Java programs
JPH02272645A (en) Method for supporting program debugging
US20090150420A1 (en) Generating debug information
US20050060685A1 (en) Program generator
Chang et al. Visualization of exception propagation for Java using static analysis
Staiger Reverse engineering of graphical user interfaces using static analyses
Dupriez et al. Sindarin: A versatile scripting api for the pharo debugger
Mortensen et al. Aspect-oriented refactoring of legacy applications: An evaluation
JPH08314752A (en) Object-oriented system development support device
Biere et al. The visual task model builder
Laffra et al. HotWire-A Visual Debugger for C++.
Rahman et al. A DSL for importing models in a requirements management system
JP2010049489A (en) Debugging support device and program
Bandener et al. Extending DMM behavior specifications for visual execution and debugging
CN114840251B (en) Script processing method, terminal, storage medium and program product
Jukks et al. Transformations debugging transformations
JPH02275539A (en) Debugging system
Löwe et al. Software comprehension-integrating program analysis and software visualization
Nagl et al. Software specification by graph grammars
Khanam et al. Aspectual Analysis of Legacy Systems: Code Smells and Transformations in C
Weiskamp Advanced turbo C programming
Aparna et al. Building a common notation for enabling comparison of design and execution