JP2006018477A - Sequence information generation system, sequence information generation method, program, and recording medium - Google Patents
Sequence information generation system, sequence information generation method, program, and recording medium Download PDFInfo
- Publication number
- JP2006018477A JP2006018477A JP2004194461A JP2004194461A JP2006018477A JP 2006018477 A JP2006018477 A JP 2006018477A JP 2004194461 A JP2004194461 A JP 2004194461A JP 2004194461 A JP2004194461 A JP 2004194461A JP 2006018477 A JP2006018477 A JP 2006018477A
- Authority
- JP
- Japan
- Prior art keywords
- information
- program
- sequence
- sequence information
- trace
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、システム開発の保守工程における、リバースエンジニアリング作業を自動化するものであり、例えば、オブジェクト指向プログラムにおいては、プログラムやオブジェクトの状態の変化を示すシーケンス図を作成するためのシーケンス情報を生成するシーケンス情報生成装置およびシーケンス情報生成方法およびプログラムおよび記録媒体に関するものである。 The present invention automates reverse engineering work in the maintenance process of system development. For example, in an object-oriented program, sequence information for creating a sequence diagram showing a change in the state of a program or an object is generated. The present invention relates to a sequence information generation device, a sequence information generation method, a program, and a recording medium.
従来より、入力したイベントシーケンスにもとづき、所望の状態遷移図を得る為の状態遷移図作成装置が特許文献1で提案されている。
Conventionally,
また、ソースコードから所望のシーケンス図を得る為のシーケンス図作成装置が特許文献2で提案されている。
しかしながら特許文献1に記載の状態遷移図作成装置には、プログラムのイベントシーケンスを入力しなければならないという問題があり、例えば、プログラムのソースコードが存在しない状況下(例えば、誤ってソースコードを消去してしまった等の状況下)では、適用不可能であるといった問題があった。
However, the state transition diagram creation apparatus described in
また、特許文献2に記載のシーケンス図作成装置はシーケンス図の作成にソースコードを用いる事から、特許文献1に記載の状態遷移図作成装置と同様の問題があった。
Further, since the sequence diagram creating apparatus described in
さらに、上記特許文献1,2のように、プログラムのソースコードからシーケンス図を生成した場合、プログラムの実際の実行状態をトレースしているわけではないため、条件分岐等の点からシーケンスが曖昧となってしまい、プログラムのシーケンス上の矛盾点を発見することが困難である等の問題点もあった。
Furthermore, when the sequence diagram is generated from the source code of the program as in
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、実行されるプログラムをトレースして前記プログラム実行時のトレース情報を生成し、該生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成することにより、プログラムの実際の実行プロセスをシーケンス図として可視化することができ、プログラムのソースコードからシーケンス図を生成する従来の方法のように、ソースコードが存在しないプログラムではシーケンス図が作成できなかったり、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができるシーケンス情報生成装置およびシーケンス情報生成方法およびプログラムおよび記録媒体を提供することである。 The present invention has been made to solve the above-described problems, and an object of the present invention is to trace a program to be executed to generate trace information at the time of execution of the program, and to generate the trace information. On the basis of this, by generating the sequence information of the program, the actual execution process of the program can be visualized as a sequence diagram. As in the conventional method of generating the sequence diagram from the source code of the program, the source code is A nonexistent program cannot create a sequence diagram, and the sequence does not become ambiguous in terms of conditional branching, etc., and it is possible to improve development efficiency such as improving the efficiency of debugging work and pointing out design contradictions. Sequence information generating apparatus, sequence information generating method, program, and recording medium It is to provide.
本発明によれば、実行されるプログラムをトレースして前記プログラム実行時のトレース情報を生成するトレース情報生成手段と、前記トレース情報生成手段により生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成するシーケンス情報生成手段とを有することを特徴とする。 According to the present invention, trace information generating means for tracing a program to be executed to generate trace information at the time of executing the program, and sequence information of the program based on the trace information generated by the trace information generating means And sequence information generating means for generating.
本発明によれば、実行されるプログラムをトレースして前記プログラム実行時のトレース情報を生成し、該生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成することにより、プログラムの実際の実行プロセスをシーケンス図として可視化することができ、プログラムのソースコードからシーケンス図を生成する従来の方法のように、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができる等の効果を奏する。 According to the present invention, a program to be executed is traced to generate trace information at the time of execution of the program, and based on the generated trace information, sequence information of the program is generated, whereby the actual program The execution process can be visualized as a sequence diagram, and the sequence does not become ambiguous in terms of conditional branching and the like, unlike the conventional method of generating a sequence diagram from the program source code. It is possible to improve development efficiency, such as design and design contradictions.
また、プログラムの実行状態をトレースし、プログラムのシーケンス情報を自動生成するため、プログラムの実行状態をトレース(追跡)して、ソースコードが存在しない(誤ってソースコードを消去してしまった,ソースコードが入手不可能な)プログラム・アプリケーションに関するシーケンス情報を取得することができ、さらに、既存のソフトウェアに手を加えることなく、既存ソフトウェアのシーケンス情報を取得することができる。 Also, since the program execution status is traced and the program sequence information is automatically generated, the program execution status is traced and the source code does not exist (the source code has been deleted by mistake) Sequence information regarding program applications (for which no code is available) can be acquired, and sequence information of existing software can be acquired without modifying the existing software.
以下、本発明の実施の形態を、シーケンス図自動生成装置の実施形態により詳しく説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to embodiments of an automatic sequence diagram generation apparatus.
本実施形態は、スタンドアロンの情報処理装置を想定しているが、これに限らず、ネットワークで構成されたシステム形態にも適用可能である。 The present embodiment assumes a stand-alone information processing apparatus, but is not limited to this, and can be applied to a system configuration configured by a network.
〔第1実施形態〕
図1は、本発明の第1実施形態を示すシーケンス情報自動生成装置の機能構成を示す機能ブロック図である。
[First Embodiment]
FIG. 1 is a functional block diagram showing a functional configuration of the sequence information automatic generation apparatus showing the first embodiment of the present invention.
図1において、31は入力機能である。この入力機能31は、シーケンス情報作成対象のプログラム情報の入力を行うためのものである。10はプログラム実行監視機能である。このプログラム実行監視機能10は、入力機能31で入力されたプログラム情報に応じてプログラムを実行して、該実行されるプログラムを監視し、該プログラムの実行時に実際にオブジェクト間で送受信されるイベント(メソッド開始,メソッド終了等)の情報を出力する。
In FIG. 1, 31 is an input function. The
11はトレース情報生成機能である。このトレース情報生成装置11は、プログラム実行監視機能10から出力されるイベントの情報からプログラムの実行状態をトレースしたトレース情報を生成して、トレース情報格納部21に格納する。
12はモデル情報生成機能である。このモデル情報生成機能12は、トレース情報格納部21に格納されたトレース情報を利用してシーケンス情報のモデル情報を生成して、モデル情報格納部22に格納する。
13はシーケンス情報出力機能である。このシーケンス情報出力機能13は、モデル情報格納部22に格納されるシーケンス情報のモデル情報からシーケンス情報を作成して、シーケンス情報格納部23に格納する。32はシーケンス図表示機能で、このシーケンス図表示機能32は、シーケンス情報格納部23に格納されるシーケンス情報に基づいてシーケンス図を表示するものである。また、このシーケンス図表示機能32は、一般のシーケンス図表示ツール、例えば、Rational社の「Rose」(商品名),SparksSystem社の「EA」(商品名)等に対応する。なお、この一般のシーケンス図表示ツールは、表示されるシーケンス図を印刷可能である。また、このシーケンス図表示機能32の代わりにシーケンス図印刷機能等を設けてもよい。即ち、シーケンス情報に基づいて視覚可能にシーケンス図を生成する機能であればよく、表示機能であっても印刷機能であってもよい。
なお、本実施形態においていては、一例として対象プログラムがJava(登録商標)プログラムである場合について記述する。しかしながら、本発明は、特定の言語で記述されたプログラムには依存しておらず、Java(登録商標)プログラムのような実行状態のトレースができる言語で記述されたプログラムならば実現可能である。 In the present embodiment, a case where the target program is a Java (registered trademark) program will be described as an example. However, the present invention does not depend on a program written in a specific language, and can be realized as long as it is a program written in a language capable of tracing an execution state, such as a Java (registered trademark) program.
図2は、本発明のシーケンス情報自動生成装置のハードウェア構成の一例を示すブロック図である。 FIG. 2 is a block diagram showing an example of a hardware configuration of the sequence information automatic generation apparatus of the present invention.
図2において、40は本発明のシーケンス情報自動生成装置としてのコンピュータである。41はCPUである。このCPU41は、ROM43又はハードディスク(HD)44又は図示しないその他の記録媒体(例えば、フレキシブルディスク,CD−ROM,DVD−ROM等)に格納されたプログラムをRAM42上にロードして実行することにより、コンピュータ40全体を制御する。RAM42は、CPU41の作業領域として使用される。
In FIG. 2, reference numeral 40 denotes a computer as the sequence information automatic generation apparatus of the present invention.
45はDBで、このDB45には、後述するシーケンス情報を生成するためのXMIコードの部品(オブジェクトに対応するXMIコード,メッセージに対応するXMIコード等)やその他の情報が格納されている。
47は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。46は表示装置で、CRT,LCD等で構成される。
An
以下、図3〜図12を参照して、図1,図2に示したシーケンス情報自動生成装置におけるシーケンス情報自動生成処理について説明する。 Hereinafter, the sequence information automatic generation processing in the sequence information automatic generation apparatus shown in FIGS. 1 and 2 will be described with reference to FIGS.
図3は、本発明のシーケンス情報自動生成装置における第1の制御処理手順の一例を示すフローチャートであり、シーケンス情報自動生成処理に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S101〜S105は各ステップを示す。さらに、この処理を実行することにより、入力されたプログラムに対応したシーケンス情報を自動生成することができる。
FIG. 3 is a flowchart showing an example of a first control processing procedure in the sequence information automatic generation apparatus of the present invention, and corresponds to the sequence information automatic generation processing. Note that the processing of this flowchart is realized by the
まず、ステップS101において、CPU41は、対象プログラムの情報をユーザインタフェースの機能を利用して作成する。具体的には、図4に示すユーザインタフェースを表示装置46に表示制御し、ユーザにプログラム情報を入力させる(図1に示した入力機能31に相当)。
First, in step S101, the
図4は、シーケンス情報作成対象プログラムの情報を入力するためのユーザインタフェースの一例を示す模式図である。 FIG. 4 is a schematic diagram showing an example of a user interface for inputting information of a sequence information creation target program.
図4において、U101は出力ファイル名入力欄で、シーケンス情報作成処理により作成されるシーケンス情報を出力するファイル(XMI形式)のファイル名を指定するためのものである。 In FIG. 4, U101 is an output file name input field for designating the file name of a file (XMI format) for outputting sequence information created by sequence information creation processing.
U102はルートフォルダ入力欄で、本実施形態のシーケンス情報作成処理対象とするJava(登録商標)プログラムのルートフォルダを指定するためのものである。 U102 is a root folder input field for designating the root folder of the Java (registered trademark) program as the sequence information creation processing target of the present embodiment.
U103はメインクラス入力欄で、ルートフォルダ入力欄102で指定されたJava(登録商標)プログラムの起動に必要なメインクラスのクラス名を指定するためのものである。 U103 is a main class input field for specifying the class name of the main class necessary for starting the Java (registered trademark) program specified in the root folder input field 102.
U104は実行ボタンで、このボタンを押下することにより、このユーザインタフェースでの入力を有効に、出力ファイル名入力欄U101,ルートフォルダ入力欄U102,メインクラス入力欄103で指定された対象プログラム情報に対する、シーケンス情報作成処理が開始される。
U104 is an execution button. When this button is pressed, the input on the user interface is validated, and the target program information specified in the output file name input field U101, the root folder input field U102, and the main
以下、図3のフローチャートの説明に戻る。 The description returns to the flowchart of FIG.
ステップS101で、対象プログラム情報が入力されると(OKボタンU104が押下されると)、ステップS102において、CPU41は、ステップS101で入力された対象プログラム情報に基づいて対象プログラムを実行状態がトレース可能な状態で起動する(図1に示したプログラム実行監視機能10に相当)。例えば、Java(登録商標)言語の開発環境にはJPDA(Java(登録商標) Plattform Debugger Architecture)と呼ばれるプログラム実行状態をデバッグする環境が提供されており、本実施形態においては、JPDAを通してプログラムを起動する。このJPDAは、実行されるプログラムの実行状態を監視して、メソッドの開始,終了等の情報を時系列に沿って出力可能とする。なお、本シーケンス情報作成処理で作成されるシーケンス情報から、Java(登録商標)実行環境において標準で提供されているメソッドや、シーケンスの対象にしたくないメソッドなどを省くこともできる。これによって、プログラムのメソッドコール全てを含むような冗長なシーケンス情報の生成を回避できる。例えば、Java(登録商標)言語において標準パッケージとして提供されている「java(登録商標).lang」パッケージ内に含まれる「System.out.println()」などのメソッドはシーケンス図上に表現する必要はないことが多い。その際、JPDAに対して「java(登録商標).lang」パッケージのトレースを行なわない事を宣言できる。この機能を利用すれば、上記シーケンスの対象にしたくないメソッドなどをシーケンス情報から省く機能を実現できる。
When the target program information is input in step S101 (when the OK button U104 is pressed), in step S102, the
次に、ステップS103において、CPU41は、起動されたプログラムを上記JPDAを介してトレースし、トレース情報を生成する(図1に示したプログラム実行監視機能10及びトレース情報生成機能11に相当)。なお、ステップS103の詳細な説明は後述する図5に示す。また、ステップS103では、生成したトレース情報を、図2に示したHD44内にトレース情報ファイル(図1に示したトレース情報格納部21に相当)として格納する。
Next, in step S103, the
次に、ステップS104において、CPU41は、ステップS103で生成されたトレース情報に基づいて、対象プログラムのモデル情報を生成する(図1に示したモデル情報生成機能12に相当)。なお、ステップS104の詳細な説明は後述する図7に示す。また、ステップS104では、生成したモデル情報を、図2に示したHD44内にモデル情報ファイル(図1に示したモデル情報格納部22に相当)として格納する。
Next, in step S104, the
次に、ステップS105において、CPU41は、ステップS104で生成されたモデル情報に基づいて、シーケンス情報を出力する(図1に示したシーケンス情報出力機能13に相当)。本実施形態においては、このシーケンス情報の出力には、XMI(XML Metadata Interchange)を利用する。よって、上記ステップS105では、XMI形式のシーケンス情報を出力するものとする。また、ステップS103ででは、シーケンス情報を図2に示したHD44内に図4の出力ファイル名入力欄U101で指定した出力ファイル名のファイル(図1に示したシーケンス情報格納部23に相当)として格納する。
Next, in step S105, the
図5は、本発明のシーケンス情報自動生成装置における第2の制御処理手順の一例を示すフローチャートであり、図3のステップS103のトレース情報の生成処理(対象プログラムをトレースしてトレース情報を生成する処理)に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S204〜S209は各ステップを示す。
FIG. 5 is a flowchart showing an example of a second control processing procedure in the sequence information automatic generation apparatus of the present invention. The trace information generation process (traces the target program to generate trace information) in step S103 of FIG. Processing). Note that the processing of this flowchart is realized by the
まず、ステップS204において、プログラム実行監視機能10(前述のJPDAに相当(CPU41が実行))より、トレース情報生成機能11(CPU41が実行)が、「メソッド開始」のイベント(時系列)等を受け取ると、ステップS205において、トレース情報生成機能11は、該受け取った「メソッド開始」のイベントに基づいてトレース情報(例えば、後述する図6に示すTR001〜TR004)をRAM42のメモリ空間に生成し、ステップS206において、トレース情報生成機能11は、該メモリ空間に生成されたトレース情報をプログラムのトレース情報を格納するファイル(図6)(トレース情報格納部21)に追記する。
First, in step S204, the trace information generation function 11 (executed by the CPU 41) receives a “method start” event (time series) from the program execution monitoring function 10 (corresponding to the aforementioned JPDA (executed by the CPU 41)). In step S205, the trace
また、ステップS207において、プログラム実行監視機能10より、トレース情報生成機能11が、「メソッド終了」のイベントを受け取ると、ステップS208において、トレース情報生成機能11は、該受け取った「メソッド終了」のイベントに基づいてトレース情報(例えば、図6に示すTR005〜TR008)をRAM42のメモリ空間に生成し、ステップS209において、トレース情報生成機能11は、該生成したトレース情報をプログラムのトレース情報を表現するファイル(図6)(トレース情報格納部21)に追記していく。
In step S207, when the trace
これらの処理をプログラムトレース中に繰り返すことで、プログラムのトレース情報を生成する。 By repeating these processes during the program trace, program trace information is generated.
なお、上述したように、本実施形態においていては、一例として対象プログラムがJava(登録商標)プログラムである場合について記述している。しかしながら、本発明は、特定の言語で記述されたプログラムには依存しておらず、Java(登録商標)プログラムのような実行状態のトレースができる言語で記述されたプログラムならば実現可能である。例えば、上記JPDAと同様に、実行されるプログラムの実行状態を監視して、メソッドの開始,終了等の情報を時系列に沿って出力可能なデバッガ等の実行監視環境を有するプログラムであれば、どのようなプログラムであってもよい。この場合、前記デバッガがプログラム実行監視機能10となる。
As described above, in the present embodiment, a case where the target program is a Java (registered trademark) program is described as an example. However, the present invention does not depend on a program written in a specific language, and can be realized as long as it is a program written in a language capable of tracing an execution state, such as a Java (registered trademark) program. For example, as in the above JPDA, if the program has an execution monitoring environment such as a debugger that can monitor the execution state of the program to be executed and output information such as the start and end of the method in time series, Any program may be used. In this case, the debugger becomes the program
図6は、図4に示したトレース情報生成処理により生成され出力されたトレース情報ファイルの内容の一例を示す模式図である。 FIG. 6 is a schematic diagram showing an example of the contents of a trace information file generated and output by the trace information generation process shown in FIG.
図6において、TR001はプログラム内においてメソッドが開始されたことを表し、以下のTR002,TR003,TR004はそれぞれ1つのメソッドの情報を表している。詳細には、TR002は、メソッド名に相当する。また、TR003は、メソッドをコールされたオブジェクトのクラス名である。さらに、TR003は、メソッドをコールされたオブジェクトのオブジェクト識別キー値を示すメッセージ受信オブジェクト識別キー値である。このオブジェクト識別キー値は、対象プログラム内においてオブジェクト(インスタンス)を一意に識別するキー値であり、この値によって出現オブジェクトを管理する事で、同一クラスに複数インスタンスが生成された場合においても、それらを識別したシーケンス情報を生成することを可能にしている。 In FIG. 6, TR001 represents that a method has been started in the program, and the following TR002, TR003, and TR004 represent information of one method. Specifically, TR002 corresponds to a method name. TR003 is the class name of the object whose method has been called. Further, TR003 is a message reception object identification key value indicating the object identification key value of the object whose method has been called. This object identification key value is a key value that uniquely identifies an object (instance) in the target program. Even if multiple instances are generated in the same class by managing the appearance object by this value, these object identification key values It is possible to generate sequence information that identifies the.
また、TR005は、プログラム内においてメソッドが終了したことを表し、以下のTR006,TR007,TR008はそれぞれ1つのメソッドの情報を表している。詳細には、TR006は、メソッド名に相当する。また、TR007は、メソッドをコールされたオブジェクトのクラス名である。さらに、TR008は、そのメソッドをコールされたオブジェクトを一意に識別する為のキー値である。 TR005 represents that the method has been completed in the program, and the following TR006, TR007, and TR008 represent information of one method. Specifically, TR006 corresponds to a method name. TR007 is the class name of the object whose method has been called. Furthermore, TR008 is a key value for uniquely identifying the object for which the method is called.
図7は、本発明のシーケンス情報自動生成装置における第3の制御処理手順の一例を示すフローチャートであり、図3のステップS104のモデル情報の生成処理(図6に示したトレース情報ファイルを読み込みモデル情報を生成する処理)に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S301〜S316は各ステップを示す。
FIG. 7 is a flowchart showing an example of a third control processing procedure in the sequence information automatic generation apparatus of the present invention. The model information generation processing in step S104 in FIG. 3 (the model in which the trace information file shown in FIG. Corresponding to the process of generating information). Note that the processing of this flowchart is realized by the
まず、ステップS301において、CPU41は、トレース情報ファイル(図6)より1行分の読み込を行ない、RAM42上に確保される変数lineに格納する。
First, in step S301, the
次に、ステップS302において、CPU41は、変数「line」の値が"[ENTRY]"と同等かどうかを判定する。
Next, in step S302, the
ステップS302において、CPU41が変数「line」の値が"[ENTRY]"と同等であると判定した場合には、ステップS303に進み、以降の処理はメソッドの開始情報を取得する処理となり、一方、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合には、ステップS313に進み、以降の処理はメソッドの終了情報を取得する処理となる。まずは、前者の場合について示す。
In step S302, when the
ステップS303において、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。
In step S <b> 303, the
次に、ステップS304において、CPU41は、RAM42上に確保される変数「メッセージ受信者」の値がNULLかどうかを判定する。なお、最初にステップS304の処理を行う場合は変数「メッセージ受信者」の値がNULLとなっている。なお、このフローチャートにおいて、上記変数「メッセージ受信者」は、メソッドをコールされたオブジェクトを格納するための変数であり、また、RAM42上に確保される変数「メッセージ送信者」は、メソッドコールしたオブジェクトを格納するための変数である。
Next, in step S304, the
ステップS304で、CPU41は、変数「メッセージ受信者」の値がNULLであると判定した場合には、ステップS305において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信者」に格納する。なお、変数「メッセージ受信者」の値がNULLであると判定した場合は、最初にステップS304の処理を行う場合であるため、CPU41は、メッセージ受信者がこのメソッドのメッセージ送信者と同一であると判断する。そして、ステップS306において、CPU41は、変数「メッセージ送信者」に、変数「メッセージ受信者」の値を格納し、ステップS307に進む。
In step S304, if the
一方、ステップS304で、CPU41が、変数「メッセージ受信者」の値がNULLでないと判定した場合には、ステップS311において、CPU41は、変数「メッセージ送信者」に変数「メッセージ受信者」の値(即ち、前のメソッドのメッセージ受信者の値)を格納する。
On the other hand, if the
次に、ステップS312において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信者」に格納し、ステップS307に移行する。
Next, in step S312, the
次に、ステップS307において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メッセージ受信オブジェクト識別キー値」に格納する。
Next, in step S307, the
次に、ステップS308においては、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値,変数「メッセージ受信オブジェクト識別キー値」の値を、メソッド情報として、RAM42上のマップ(図8(a))に登録する。
Next, in step S308, the
次に、ステップS309において、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値から構成されるメソッド情報を、モデル情報として、HD44内のモデル情報ファイル(後述する図8(b))(図1のモデル情報格納部22)に追加(時系列に追加)して、ステップS310に進む。
Next, in step S309, the
一方、ステップS302で、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合(即ち"[EXIT]"の場合)には、ステップS313に進み、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。
On the other hand, if the
次に、ステップS314において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メッセージ送信者」に格納する。
Next, in step S <b> 314, the
次に、ステップS315において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信オブジェクト識別キー値」に格納する。
Next, in step S315, the
次に、ステップS316において、CPU41は、ステップS314でセットした変数「メソッド名」の値,ステップS315でセットした変数「メッセージ受信オブジェクト識別キー値」の値の組み合わせに対応するメッセージ情報をマップ(図8(a))の後方より(新しい情報から)検索し、該検索されたメッセージ情報内の「メッセージ送信者」の値を、変数「メッセージ受信者」に格納し、ステップS309に進み、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値を、モデル情報として、HD44内のモデル情報ファイル(図8(b))に追加して、ステップS309に進む。
Next, in step S316, the
次に、ステップS310において、CPU41は、トレース情報ファイルに次の行が存在するか否かを判定し、存在すると判定した場合には、ステップS301の処理に戻る。
Next, in step S310, the
一方、ステップS310で、CPU41が、トレース情報ファイルに次の行が存在しない(EOF)と判定した場合には、本フローチャートの処理を終了する。
On the other hand, if the
図8は、図7に示したモデル情報生成処理により生成された情報の内容の一例を示す模式図である。なお、図8(a)は図7のステップS308で登録されたマップに対応し、図8(b)は図7のステップS309で出力されたモデル情報ファイルに対応する。 FIG. 8 is a schematic diagram showing an example of the content of information generated by the model information generation process shown in FIG. 8A corresponds to the map registered in step S308 in FIG. 7, and FIG. 8B corresponds to the model information file output in step S309 in FIG.
ここで、図6のトレース情報ファイルを用いて、図7のフローチャートに示した処理により、図8(b)のモデル情報ファイルが生成される様子を説明する。 Here, how the model information file of FIG. 8B is generated by the processing shown in the flowchart of FIG. 7 using the trace information file of FIG. 6 will be described.
まず、ステップS301において、CPU41は、トレース情報ファイルの1行目"[ENTRY]"を読み込み、変数lineに格納する。
First, in step S301, the
次に、ステップS302において、CPU41は、変数「line」の値が"[ENTRY]"と同等であると判定し、ステップS303において、CPU41は、トレース情報ファイルの2行目"main"を読み込み、変数「メソッド名」に格納する。
Next, in step S302, the
次に、ステップS304において、CPU41は、変数「メッセージ受信者」の値がNULLであると判定し、ステップS305において、CPU41は、トレース情報ファイルをから3行目"Object1"を読み込み、変数「メッセージ受信者」に格納する。
Next, in step S304, the
つぎに、ステップS306において、CPU41は、変数「メッセージ送信者」に、変数「メッセージ受信者」の値(即ち、"Object1")を格納する。
Next, in step S306, the
次に、ステップS307において、CPU41は、トレース情報ファイルから4行目"10082904"を読み込み、「オブジェクト識別キー値」に格納する。
Next, in step S307, the
次に、ステップS308においては、CPU41は、変数「メソッド名」の値"main",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object1",変数「メッセージ受信オブジェクト識別キー値」の値"10082904"を、メソッド情報として、マップに登録する(図8(a)のMP001)。
Next, in step S308, the
次に、ステップS309において、CPU41は、変数「メソッド名」の値"main",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object1"を、モデル情報として、HD44内のモデル情報ファイルに追加する(図8(b)のMD001)。
Next, in step S309, the
次に、ステップS310において、CPU41は、トレース情報ファイルはまだEOFでないので、ステップS301の処理に戻る。
Next, in step S310, the
そして、再び、ステップS301において、CPU41は、トレース情報ファイルより5行目"[ENTRY]"を読み込みを行ない、変数lineに格納する。
In step S301, the
次に、ステップS302において、CPU41は、変数「line」の値が"[ENTRY]"と同等であるので、ステップS303において、CPU41は、トレース情報ファイルの6行目"<init>"を読み込み、変数「メソッド名」に格納する。
Next, in step S302, since the value of the variable “line” is equal to “[ENTRY]”, the
次に、ステップS304において、CPU41は、変数「メッセージ受信者」の値"Object1"はNULLでないので、ステップS311において、CPU41は、変数「メッセージ受信者」の値"Object1"を変数「メッセージ送信者」に格納する。
Next, in step S304, since the value “Object1” of the variable “message receiver” is not NULL, in step S311, the
次に、ステップS312において、CPU41は、トレース情報ファイルの7行目"Object2"を読み込み、変数「メッセージ受信者」に格納する。
Next, in step S312, the
次に、ステップS307において、CPU41は、トレース情報ファイルから8行目"10084080"を読み込み、「オブジェクト識別キー値」に格納する。
Next, in step S307, the
次に、ステップS308においては、CPU41は、変数「メソッド名」の値"<init>",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object2",変数「メッセージ受信オブジェクト識別キー値」の値"10084080"を、メソッド情報として、マップに登録する(図8(a)のMP002)。
Next, in step S308, the
次に、ステップS309において、CPU41は、変数「メソッド名」の値"<init>",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object2"を、モデル情報として、HD44内のモデル情報ファイルに追加する(図8(b)のMD002)。
Next, in step S309, the
次に、ステップS310において、CPU41は、トレース情報ファイルはまだEOFでないので、ステップS301の処理に戻る。
Next, in step S310, the
そして、再び、ステップS301において、CPU41は、トレース情報ファイルより9行目"[EXIT]"を読み込み、変数lineに格納する。
Then, again in step S301, the
次に、ステップS302において、CPU41は、変数「line」の値が"[EXIT]"であるので、ステップS313において、CPU41は、トレース情報ファイルの10行目"<init>"を読み込み、変数「メソッド名」に格納する。
Next, in step S302, since the value of the variable “line” is “[EXIT]”, the
次に、ステップS314において、CPU41は、トレース情報ファイルから11行目"Object2"を読み込み、該読み込んだ行のデータを変数「メッセージ送信者」に格納する。
Next, in step S314, the
次に、ステップS315において、CPU41は、トレース情報ファイルから12行目"10084080"を読み込み、変数「メッセージ受信オブジェクト識別キー値」に格納する。
Next, in step S315, the
次に、ステップS316において、CPUY41は、変数「メソッド名」の値"<init>",変数「メッセージ受信オブジェクト識別キー値」の値"10084080"の組み合わせに対応するメッセージ情報をマップ(図8(a))の後方より検索し、該検索されたメッセージ情報MP002内の「メッセージ送信者」の値"Object1"を、変数「メッセージ受信者」に格納する。 Next, in step S316, the CPU Y41 maps message information corresponding to the combination of the value “<init>” of the variable “method name” and the value “10084080” of the variable “message reception object identification key value” (FIG. 8 ( Search from the back of a)), and store the value “Object1” of “message sender” in the searched message information MP002 in the variable “message receiver”.
次に、ステップS309において、CPU41は、変数「メソッド名」の値"<init>",変数「メッセージ送信者」の値"Object2",変数「メッセージ受信者」の値"Object1"を、モデル情報として、HD44内のモデル情報ファイルに追加する(図8(b)のMD003)。
Next, in step S309, the
次に、ステップS310において、CPU41は、トレース情報ファイルはまだEOFでないので、ステップS301の処理に戻る。
Next, in step S310, the
この後、同様に処理を繰り返し、ステップS310において、CPU41が、トレース情報ファイルがEOFであると判断すると、処理を終了する。
Thereafter, the processing is repeated in the same manner, and when the
以上の処理により、図6に示したトレース情報ファイルより、図8(b)に示したモデル情報ファイルが生成される。 With the above processing, the model information file shown in FIG. 8B is generated from the trace information file shown in FIG.
図9は、本発明のシーケンス情報自動生成装置における第4の制御処理手順の一例を示すフローチャートであり、図3のステップS105のシーケンス情報の生成処理(図8(b)に示したモデル情報ファイルを読み込みシーケンス情報を出力する処理)に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S601〜S605は各ステップを示す。
FIG. 9 is a flowchart showing an example of a fourth control processing procedure in the sequence information automatic generation apparatus of the present invention, and the sequence information generation processing in step S105 of FIG. 3 (the model information file shown in FIG. 8B). To read sequence information and output sequence information. Note that the processing of this flowchart is realized by the
まず、ステップS601において、CPU41は、モデル情報ファイル(図8(b))をRAM42上に読み込み、後述する図11に示すシーケンス図に登場する全てのオブジェクト,メッセージの情報を取得し、RAM42内に対応プログラム内の出現順に格納する。図8(b)に示した例では、オブジェクトとして"Object1","Object1"、メッセージとして"main","<init>","update"を取得する
次に、ステップS602において、CPU41は、ステップS601で取得したオブジェクトの情報を対応プログラム内の出現順に1つ取り出し、該オブジェクト(例えば、後述する図11のSQ001,SQ002)に対応するXMIコード(図10のXMI001,XMI002)を生成し、シーケンス情報ファイル(後述する図10)に出力する。
First, in step S601, the
なお、ステップS602のオブジェクトに対応するXMIコードの作成処理,後述するステップS604に示すメッセージに対応するXMIコードの作成処理では、例えば、図2に示したHD44内のDB45に格納されるXMIコードの部品(ヘッダ部分のXMIコードや、オブジェクトに対応するXMIコード,メッセージに対応するXMIコード)を読み出して、モデル情報ファイルから読み出した情報に対応させて、個々のオブジェクト,メッセージに対応するように編集し(例えば、名称,送信者,受信者等の編集を行い)、モデル情報ファイルから読み出したオブジェクト,メッセージに対応するXMIコードを生成するものとする。
In the XMI code creation process corresponding to the object in step S602 and the XMI code creation process corresponding to the message shown in step S604, which will be described later, for example, the XMI code stored in the
次に、ステップS603において、CPU41は、まだXMIコードを生成していないオブジェクトが存在するか否かを判定し、存在すると判定した場合には、ステップS602に戻り、次のオブジェクトに対する処理を行う。
Next, in step S603, the
一方、ステップS603で、CPU41が、もうXMIコードを生成していないオブジェクトは存在しないと判定した場合には、ステップS604に進む。
On the other hand, if the
次に、ステップS604において、CPU41は、ステップS601で取得したメッセージの情報を対応プログラム内の出現順に1つ取り出し、該メッセージ(図11のSQ003,SQ004,SQ005)に対応するXMIコード(図10のXMI0003,XMI0004,XMI0005)を生成し、シーケンス情報ファイル(後述する図10)に出力する。
Next, in step S604, the
次に、ステップS605において、CPU41は、まだXMIコードを生成していないメッセージが存在するか否かを判定し、存在すると判定した場合には、ステップS604に戻り、次のメッセージに対する処理を行う。
Next, in step S605, the
一方、ステップS605で、CPU41が、もうXMIコードを生成していないメッセージは存在しないと判定した場合には、本フローチャートの処理を終了する。
On the other hand, if the
図10は、図9に示したシーケンス情報の生成処理(図3のステップS105)で生成されるシーケンス情報の一例を示す模式図である。 FIG. 10 is a schematic diagram illustrating an example of sequence information generated in the sequence information generation process (step S105 in FIG. 3) illustrated in FIG.
図10に示すように、シーケンス情報は、XMI形式で記述したファイルとして出力され、図1のシーケンス図表示機能32により図11に示すようなシーケンス図として表示可能である。
As shown in FIG. 10, the sequence information is output as a file described in the XMI format, and can be displayed as a sequence diagram as shown in FIG. 11 by the sequence
図11は、図10に示したシーケンス情報ファイルに基づいて、図1のシーケンス図表示機能32により表示装置46に表示されるシーケンス図の一例を示す模式図である。
FIG. 11 is a schematic diagram showing an example of a sequence diagram displayed on the
図11において、SQ001,SQ002はオブジェクトを示す。また、SQ003〜SQ005は、オブジェクトSQ001,SQ002間で送受信されるメッセージを示す。 In FIG. 11, SQ001 and SQ002 indicate objects. SQ003 to SQ005 indicate messages transmitted and received between the objects SQ001 and SQ002.
また、801は、オブジェクトの生命線を示し、802は、オブジェクトの活性区間を示す。
図12は、図10に示したシーケンス情報内のXMI形式のコードと、図11に示したシーケンス図との対応関係を示す図である。 FIG. 12 is a diagram illustrating a correspondence relationship between the XMI format code in the sequence information illustrated in FIG. 10 and the sequence diagram illustrated in FIG. 11.
図12に示すように、図10に示したXMI形式のコードXM001と、図11に示したシーケンス図内のSQ001とがオブジェクト"Object1"として対応する。 As shown in FIG. 12, the XMI format code XM001 shown in FIG. 10 and the SQ001 in the sequence diagram shown in FIG. 11 correspond to the object “Object1”.
また、図10に示したXMI形式のコードXM002と、図11に示したシーケンス図内のSQ002とがオブジェクト"Object2"として対応する。 Also, the XMI format code XM002 shown in FIG. 10 and the SQ002 in the sequence diagram shown in FIG. 11 correspond to the object “Object2”.
さらに、図10に示したXMI形式のコードXM003と、図11に示したシーケンス図内のSQ003とがメッセージ"main"として対応する。 Further, the XMI format code XM003 shown in FIG. 10 and the SQ003 in the sequence diagram shown in FIG. 11 correspond to the message “main”.
また、図10に示したXMI形式のコードXM004と、図11に示したシーケンス図内のSQ004とがメッセージ"<init>"として対応する。 Further, the code XM004 in the XMI format shown in FIG. 10 and SQ004 in the sequence diagram shown in FIG. 11 correspond to the message “<init>”.
さらに、図10に示したXMI形式のコードXM005と、図11に示したシーケンス図内のSQ005とがメッセージ"update"として対応する。 Further, the XMI format code XM005 shown in FIG. 10 and the SQ005 in the sequence diagram shown in FIG. 11 correspond to the message “update”.
なお、本実施形態では、図11に示したシーケンス図の表示を、図10に示したシーケンス情報ファイル(XMIファイル)の生成完了後に行っているが、これによらず対象プログラムの進行にあわせて、シーケンス図をリアルタイムでシーケンス図表示機能32により表示していくように構成してもよい。
In this embodiment, the sequence diagram shown in FIG. 11 is displayed after the generation of the sequence information file (XMI file) shown in FIG. 10 is completed. The sequence diagram may be displayed by the sequence
以上示したように、本実施形態によれば、プログラムの実際の実行プロセスを可視化することが可能となり、プログラムのソースコードからシーケンス図を生成する従来の方法のように、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができる。 As described above, according to the present embodiment, it is possible to visualize the actual execution process of the program, and from the viewpoint of conditional branching and the like as in the conventional method of generating a sequence diagram from the source code of the program. The sequence does not become ambiguous, and development efficiency can be improved, such as improving the efficiency of debugging and pointing out design contradictions.
また、プログラムのソースコードが存在しない状況下(例えば、誤ってソースコードを消去してしまった等の状況下)であっても、シーケンス図を作成することが可能となる。 Further, it is possible to create a sequence diagram even in a situation where the source code of the program does not exist (for example, a situation where the source code is deleted by mistake).
〔第2実施形態〕
上記第1実施形態では、プログラム構成がシングルスレッド構成である場合にのみ対応する構成について説明したが、マルチスレッド構成のプログラムにも対応可能に構成してもよい。以下、その場合の実施形態について説明する。
[Second Embodiment]
In the first embodiment, the configuration corresponding only to the case where the program configuration is the single thread configuration has been described. However, the program configuration may be configured to be compatible with a multi-thread configuration program. Hereinafter, an embodiment in that case will be described.
本発明をマルチスレッドで構成されるプログラムのシーケンス情報生成に適用させるには、上記第1実施形態においてトレース情報生成機能によって生成されるトレース情報(図6に示す形式)を以下の図13に示す形式に変更し、さらに、上記第1実施形態において図7に示されるモデル情報出力処理を以下の図14に示すフローチャートに示す処理に変更することで可能となる。 In order to apply the present invention to the generation of sequence information of a multi-thread program, the trace information (format shown in FIG. 6) generated by the trace information generation function in the first embodiment is shown in FIG. It becomes possible by changing to the format and further changing the model information output processing shown in FIG. 7 in the first embodiment to the processing shown in the flowchart shown in FIG.
以下、図13,図14を参照して、第2実施形態の構成について上記第1実施形態の構成との差異点を中心に説明する。 Hereinafter, the configuration of the second embodiment will be described with reference to FIGS. 13 and 14 focusing on the differences from the configuration of the first embodiment.
図13は、図4に示したトレース情報生成処理により生成され出力されたトレース情報ファイルの内容の一例を示す模式図である。 FIG. 13 is a schematic diagram showing an example of the contents of a trace information file generated and output by the trace information generation process shown in FIG.
図13に示すトレース情報ファイルが、図6に示したトレース情報ファイルとの異なる点は、メッセージの送信者(メソッドをコールしたオブジェクト)を情報として保存している点にある。 The trace information file shown in FIG. 13 is different from the trace information file shown in FIG. 6 in that the message sender (the object that called the method) is stored as information.
なお、新たなトレース生成処理のフローチャートは示していないが、図5に示した第1実施形態のトレース情報生成処理に変更を加え、図5のステップS206,ステップS209の該処理により出力する情報の形式を変更している。上記第1実施形態で出力している情報に加え、メッセージ送信者の情報もトレース情報として出力するように変更するものとする。 Although the flowchart of the new trace generation process is not shown, the trace information generation process of the first embodiment shown in FIG. 5 is changed, and the information output by the processes in steps S206 and S209 in FIG. The format has been changed. In addition to the information output in the first embodiment, the message sender information is also changed to be output as trace information.
図13に示した例では、TR103がメッセージ送信者(メソッドをコールしたオブジェクトのクラス名)にあたり、TR106がそのメッセージ送信オブジェクトを一意に識別する為のキー値(即ち、メッセージ送信オブジェクト識別キー値)となる。
In the example shown in FIG. 13,
また、TR101は、図6に示したTR001と同様に、プログラム内でメソッドが開始されたことを表し、以下のTR102,TR103,TR104,TR105,TR106はそれぞれ1つのメソッドの情報を表している。詳細には、TR102は、図6に示したTR002と同様に、メソッド名に相当する。また、TR103,TR104は、上述したように、メッセージ送信者,メッセージ送信オブジェクト識別キー値を示す。さらに、TR105,TR106は、図6に示したTR003,TR004と同様に、メッセージ受信者,メッセージ受信オブジェクト識別キー値を示す。 Similarly to TR001 shown in FIG. 6, TR101 represents that a method has been started in the program, and the following TR102, TR103, TR104, TR105, and TR106 each represent information of one method. Specifically, TR102 corresponds to a method name, similar to TR002 shown in FIG. In addition, as described above, TR103 and TR104 indicate a message sender and a message transmission object identification key value. Further, TR105 and TR106 indicate a message receiver and a message reception object identification key value in the same manner as TR003 and TR004 shown in FIG.
図14は、本発明のシーケンス情報自動生成装置における第5の制御処理手順の一例を示すフローチャートであり、図3のステップS104のモデル情報の生成処理(マルチスレッド構成のプログラムに対応したモデル情報生成処理)に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S401〜S414は各ステップを示す。
FIG. 14 is a flowchart showing an example of a fifth control processing procedure in the sequence information automatic generation apparatus of the present invention. The model information generation processing (model information generation corresponding to a multi-thread configuration program) in step S104 in FIG. Processing). Note that the processing of this flowchart is realized by the
本フローチャートの処理が、図7に示したフローチャートの処理と異なる点は、トレース情報ファイルより変数「メッセージ送信者」を設定する点にある。図7に示したフローチャートの処理では、プログラム内の前回のメッセージ受信者を変数「メッセージ送信者」に設定していたが、これはシングルスレッド構成のプログラムを対象に置いた為である。 The process of this flowchart differs from the process of the flowchart shown in FIG. 7 in that a variable “message sender” is set from the trace information file. In the process of the flowchart shown in FIG. 7, the previous message receiver in the program is set to the variable “message sender” because this is for a single-threaded program.
以下、本発明のマルチスレッド構成のプログラムに対応したモデル情報生成処理について詳細に説明する。 The model information generation process corresponding to the multithreaded program of the present invention will be described in detail below.
まず、ステップS401において、CPU41は、トレース情報ファイル(図13)より1行分の読み込を行ない、RAM42上に確保される変数lineに格納する。
First, in step S401, the
次に、ステップS402において、CPU41は、変数「line」の値が"[ENTRY]"と同等かどうかを判定する。
Next, in step S402, the
ステップS402において、CPU41が変数「line」の値が"[ENTRY]"と同等であると判定した場合には、ステップS403に進み、以降の処理はメソッドの開始情報を取得する処理となり、一方、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合には、ステップS414に進み、以降の処理はメソッドの終了情報を取得する処理となる。まずは、前者の場合について示す。
In step S402, when the
ステップS403において、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。
In step S <b> 403, the
次に、ステップS404において、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ送信者」に格納する。次に、ステップS405において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ送信オブジェクト識別キー値」に格納する。
Next, in step S404, the
次に、ステップS406において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ受信者」に格納する。次に、ステップS407において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ受信オブジェクト識別キー値」に格納する。
Next, in step S406, the
次に、ステップS408においては、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ送信オブジェクト識別キー値」の値を、変数「メッセージ受信者」の値,変数「メッセージ受信オブジェクト識別キー値」の値を、メソッド情報として、RAM42上のマップ(図15(a))に登録する。
Next, in step S408, the
次に、ステップS409において、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値を、モデル情報として、HD44内のモデル情報ファイル(後述する図15(b))(図1のモデル情報格納部22)に追加して、ステップS410に進む。
Next, in step S409, the
一方、ステップS402で、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合(即ち"[EXIT ]"の場合)には、ステップS411に進み、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。
On the other hand, if the
次に、ステップS412において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メッセージ送信者」に格納する。
Next, in step S 412, the
次に、ステップS413において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信オブジェクト識別キー値」に格納する。
Next, in step S413, the
次に、ステップS414において、CPU41は、ステップS311でセットした変数「メソッド名」の値,ステップS413でセットした変数「メッセージ受信オブジェクト識別キー値」の値の組み合わせに対応するメッセージ情報をマップ(図15(a))の後方より(新しい情報から)検索し、該検索されたメッセージ情報内の「メッセージ送信者」の値を、変数「メッセージ受信者」に格納し、ステップS409に進み、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値を、モデル情報として、HD44内のモデル情報ファイル(図15(b))に追加して、ステップS410に進む。
Next, in step S414, the
次に、ステップS410において、CPU41は、トレース情報ファイルに次の行が存在するか否かを判定し、存在すると判定した場合には、ステップS401の処理に戻る。
Next, in step S410, the
一方、ステップS410で、CPU41が、トレース情報ファイルに次の行が存在しない(EOF)と判定した場合には、本フローチャートの処理を終了する。
On the other hand, if the
図15は、図14に示したマルチスレッド構成のプログラムに対応したモデル情報生成処理により生成された情報の内容の一例を示す模式図である。なお、図15(a)は図14のステップS408で登録されたマップに対応し、図15(b)は図7のステップS409で出力されたモデル情報ファイルに対応する。 FIG. 15 is a schematic diagram illustrating an example of the content of information generated by the model information generation process corresponding to the multi-thread configuration program illustrated in FIG. 15A corresponds to the map registered in step S408 in FIG. 14, and FIG. 15B corresponds to the model information file output in step S409 in FIG.
以上示したように、本実施形態によれば、マルチレッド構成のプログラムであっても、プログラムの実際の実行プロセスをシーケンス図として可視化することが可能となり、プログラムのソースコードからシーケンス図を生成する従来の方法のように、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができる。 As described above, according to the present embodiment, even a multi-red program can visualize the actual execution process of the program as a sequence diagram, and generates a sequence diagram from the source code of the program. Unlike the conventional method, the sequence does not become ambiguous in terms of conditional branching and the like, and it is possible to improve the development efficiency such as the efficiency of debugging work and the indication of design contradiction.
また、プログラムのソースコードが存在しない状況下(例えば、誤ってソースコードを消去してしまった等の状況下)であっても、マルチレッド構成のプログラムのシーケンス図を作成することが可能となる。 Even in a situation where the source code of the program does not exist (for example, a situation where the source code is accidentally deleted), it is possible to create a sequence diagram of a program having a multi-red configuration. .
〔第3実施形態〕
上記第1実施形態、第2実施形態では、シーケンス情報ファイル内に、表示についての情報(オブジェクトの配置順、位置等の情報)は特に設定していない。表示についてはXMI形式のファイルを表示できる一般の表示ツール(シーケンス図表示機能32)で行う為、表示ツールによって表示にばらつきがでることがある。しかしながら、以下、本実施形態で示す構成により、表示ツール間での表示を統一することも可能である。その為の方法を以下に説明する。
[Third Embodiment]
In the first embodiment and the second embodiment, information about display (information such as object arrangement order and position) is not set in the sequence information file. Since the display is performed by a general display tool (sequence diagram display function 32) that can display an XMI format file, the display may vary depending on the display tool. However, it is also possible to unify the display among the display tools with the configuration shown in the present embodiment. A method for this will be described below.
本発明によって外部ツール間でのシーケンス図の表示を統一する為には、図3のステップS104(モデル情報の生成)によって得たモデル情報ファイルに、ダイアグラム(シーケンス図の構成要素(オブジェクト,活性区間,メッセージ等))の表示情報(オブジェクトの配置順、位置等の情報)を追加するように構成すれば良い。以下、この構成を示す、ダイアグラムの表示情報の算出方法を図16のフローチャートによって説明する。 In order to unify the display of the sequence diagram between external tools according to the present invention, a diagram (components of sequence diagram (object, active section) is added to the model information file obtained in step S104 (generation of model information) in FIG. , Messages, etc.)) display information (information such as object arrangement order, position, etc.) may be added. Hereinafter, a method of calculating the display information of the diagram showing this configuration will be described with reference to the flowchart of FIG.
図16は、本発明のシーケンス情報自動生成装置における第6の制御処理手順の一例を示すフローチャートであり、図3のステップS104のモデル情報の生成処理とステップS105のシーケンス情報の出力処理との間で実行するダイアグラムの表示情報の算出処理に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S501〜S511は各ステップを示す。
FIG. 16 is a flowchart showing an example of a sixth control processing procedure in the sequence information automatic generation apparatus of the present invention. Between the model information generation processing in step S104 and the sequence information output processing in step S105 in FIG. This corresponds to the calculation processing of the display information of the diagram executed in. Note that the processing of this flowchart is realized by the
まず、ステップS501において、CPU41は、描画開始位置の取得を行う。この描画開始位置はプログラム内でスタティックな値として保持するべきであり、予めDB45内やHD44内に記憶されるファイル等から読み込みRAM42内に保持しておく方法が考えられる。
First, in step S501, the
次に、ステップS502において、CPU41は、シーケンス図を構成する構成要素である、オブジェクト,メッセージ,活性区間の為の情報を取得している。これらの情報は描画開始位置の場合と同様に、DB45内やHD44内に記憶されるファイルなどから読み込む方法が考えられる。このステップS502において読み込んだ値は、RAM42内に保持されて以下のステップで、ダイアグラムの表示情報の算出に利用する事となる。
Next, in step S502, the
ステップS503において、CPU41は、図3のステップS104(モデル情報の生成)によって得たモデル情報ファイル(図8(b)又は図15(b))より、シーケンス図に登場する全てのオブジェクト,メッセージの情報を取得する。ここで得た全てのオブジェクト,メッセージに対して、この後の処理で配置処理を行なう事でダイアグラムの表示情報の追加を実現している。なお、ここで得たオブジェクト,メッセージの情報は、プログラム内での出現順に整列されてRAM42内に保持される。
In step S503, the
次に、ステップS504において、CPU41は、ステップS503で取得した全オブジェクトから出現順に1つ取り出し、該オブジェクトに配置座標を設定する。詳細には、「描画開始位置+(順序×オブジェクトの配置間隔)」をRAM42内にオブジェクト毎に確保される変数「オブジェクトの配置座標」として設定する。
Next, in step S504, the
次に、ステップS505において、CPU41は、まだ配置していないオブジェクトが存在するか否かを判定し,存在すると判定した場合には、ステップS504の処理に戻り、次のオブジェクトの配置を行う。
Next, in step S505, the
一方、ステップS505で、CPU41が、もう配置していないオブジェクトが存在しない(全てのオブジェクトを配置した)と判定した場合には、ステップS506に進む。以上、ステップS504,S505により、対応プログラム内の出現順に沿った形で、シーケンス図上にオブジェクト(図11のSQ001,SQ002)を配置することができる。
On the other hand, if the
次に、ステップS506において、CPU41は、ステップS504で設定した全オブジェクトの配置座標から出現順に1つ取り出し、該オブジェクトの配置座標に基づいて、対応するオブジェクトの活性区間の配置を行うための基準となる点(x,y)として、活性区間毎にRAM42上に確保される変数x,変数yを「変数x=(オブジェクトの配置座標X+オブジェクトの描画幅)/2」,「変数y=(オブジェクトの配置座標Y+オブジェクトの描画高さ)/2」のように設定する。
Next, in step S506, the
次に、ステップS507において、CPU41は、対応するオブジェクトの持つ活性区間の配置を行っている。この活性区間は、例えば図11の802等であり、オブジェクトがメソッド(アクション)を実行している区間を表現している。
Next, in step S507, the
詳細には、活性区間毎にRAM42内に確保される活性区間開始点X,活性区間開始点Y,活性区間終了点X,活性区間終了点Yに対して、「活性区間開始点X=変数x−(活性区間の幅/2)」,「活性区間開始点Y=変数y+メッセージの配置間隔」),「活性区間終了点X=活性区間開始点X+活性区間の幅」,「活性区間終了点Y=変数y+最後に送受信したメッセージの出現順序×メッセージの配置間隔」を設定する。
Specifically, with respect to the active section start point X, active section start point Y, active section end point X, and active section end point Y secured in the
なお、フローチャートには示していないが、活性区間を複数有するオブジェクトには、活性区間毎に変数yを「変数y=変数y+活性区間終了点Y」のように設定して、ステップS506の処理を繰り返すものとする。 Although not shown in the flowchart, for an object having a plurality of active sections, the variable y is set as “variable y = variable y + active section end point Y” for each active section, and the process of step S506 is performed. Repeat.
次に、ステップS508において、CPU41は、まだ活性区間を配置していないオブジェクトが存在するか否かを判定し,存在すると判定した場合には、ステップS506の処理に戻り、次のオブジェクトの活性区間の配置を行う。
Next, in step S508, the
一方、ステップS508で、CPU41が、もう活性区間を配置していないオブジェクトが存在しない(全てのオブジェクトの活性区間を配置した)と判定した場合には、ステップS509に進む。以上、ステップS506〜S508により、対応プログラム内の出現順に沿った形で、シーケンス図上に活性区間(図11の802)を配置することができる。
On the other hand, if the
次に、ステップS509において、CPU41は、ステップS503で取得した全メッセージから出現順に1つ取り出し、該メッセージに配置座標を設定する。詳細には、メッセージ毎にRAM42に確保されるメッセージ開始点X,メッセージ開始点Y,メッセージ終了点X,メッセージ終了点Yに対して、「メッセージ開始点X=メッセージ送信オブジェクトの活性区間開始点X+(活性区間の幅/2)」,「メッセージ開始点Y=変数y+メッセージの出現順序×メッセージの配置間隔」),「メッセージ終了点X=メッセージ受信オブジェクトの活性区間開始点X+(活性区間の幅/2)」,「メッセージ終了点Y=メッセージ開始点Y」を設定する。
Next, in step S509, the
次に、ステップS510において、CPU41は、まだ配置していないメッセージが存在するか否かを判定し,存在すると判定した場合には、ステップS509の処理に戻り、次のメッセージの配置を行う。
Next, in step S510, the
一方、ステップS510で、CPU41が、もう配置していないメッセージが存在しない(全てのメッセージを配置した)と判定した場合には、ステップS511に進む。以上、ステップS509,S510により、対応プログラム内の出現順に沿った形で、シーケンス図上にメッセージ(図11のS003,SQ004,SQ004)を配置することができる。
On the other hand, if the
次に、ステップS511において、CPU41は、ステップS504〜S509を通して設定した各ダイアグラムの配置情報(各ダイアグラム(構成要素)の配置順,配置位置,配置サイズ等の情報(各ダイアグラム表示情報))をモデル情報ファイルに追加し、本ダイアグラムの表示情報の算出フローチャートを終了する。
Next, in step S511, the
以下、図17のフローチャートを参照して、ダイアグラム表示情報が追加されたモデル情報ファイルからシーケンス情報ファイルを生成する処理について説明する。 Hereinafter, a process for generating a sequence information file from a model information file to which diagram display information has been added will be described with reference to the flowchart of FIG.
図17は、本発明のシーケンス情報自動生成装置における第7の制御処理手順の一例を示すフローチャートであり、図3のステップS105のシーケンス情報の生成処理(ダイアログの表示情報を追加してモデル情報を読み込みシーケンス情報を出力する処理)に対応する。なお、このフローチャートの処理は、図2に示したCPU41がHD44等に格納されたプログラムをRAM42にロードして実行することにより実現される。また、図中、S601〜S605,S701〜S703は各ステップを示し、図9と同一のステップには同一のステップ番号を付してある。
FIG. 17 is a flowchart showing an example of a seventh control processing procedure in the sequence information automatic generation apparatus of the present invention. The sequence information generation processing (dialog display information added in step S105 in FIG. 3 adds model information). Corresponding to the process of outputting read sequence information). Note that the processing of this flowchart is realized by the
図17において、ステップS601〜S1605は、図9と同一であるので、説明を省略する。 In FIG. 17, steps S601 to S1605 are the same as those in FIG.
ステップS701において、CPU41は、モデル情報ファイルをRAM42上に読み込み、ダイアグラムの表示情報を全て取得する。
In step S701, the
次に、ステップS702において、CPU41は、ステップS701で取得したダイアグラムの表示情報を1つ取り出し、ダイアグラムの表示情報に対応するXMIコード(図18のXMI01)を生成し、シーケンス情報ファイル(後述する図18)に出力する。
In step S702, the
なお、ステップS702のダイアグラムの表示情報に対応するXMIコードの作成処理では、例えば、図1に示したHD44内のDB45に格納されるXMIコードの部品(ヘッダ部分のXMIコードや、ダイアグラムの表示情報に対応するXMIコード)を読み出して、モデル情報ファイルから読み出した情報に対応させて、個々のダイアグラムの表示情報に対応するように編集し(例えば、表示位置,開始位置,終了位置の編集を行い)、モデル情報ファイルから読み出したダイアグラムの表示位置に対応するXMIコードを生成するものとする。
In the process of creating the XMI code corresponding to the diagram display information in step S702, for example, the XMI code component stored in the
次に、ステップS703において、CPU41は、まだXMIコードを生成していないダイアグラムの表示情報が存在するか否かを判定し、存在すると判定した場合には、ステップS702に戻り、次のオブジェクトに対する処理を行う。
Next, in step S703, the
一方、ステップS703で、CPU41が、もうXMIコードを生成していないダイアグラムの表示情報は存在しないと判定した場合には、本フローチャートの処理を終了する。
On the other hand, if the
以下、上記図16,図17の処理により、ダイアグラム表示情報が追加されたモデル情報ファイルから生成されたシーケンス情報ファイルの一例を図18に示す。 FIG. 18 shows an example of a sequence information file generated from the model information file to which the diagram display information is added by the processing of FIGS.
図18は、本発明の第3実施形態において生成されるシーケンス情報ファイルの一例を示す図である。 FIG. 18 is a diagram showing an example of a sequence information file generated in the third embodiment of the present invention.
このシーケンス情報ファイルは、図16に示したフローチャートの処理により、オブジェクトの座標情報等の表示情報がモデル情報ファイルに追加されたものである。 This sequence information file is obtained by adding display information such as object coordinate information to the model information file by the processing of the flowchart shown in FIG.
図18において、例えば、XM101は、シーケンス図内における一つのオブジェクトを定義する要素である。XM102,XM103はそのオブジェクトの描画幅、高さをそれぞれ示している。
In FIG. 18, for example,
このように、シーケンス図を構成する全ての描画要素に対して、座標、幅、高さなどを設定する事で、さまざまなシーケンス図表示ツール間での表示を統一できる。 In this way, the display among various sequence diagram display tools can be unified by setting the coordinates, width, height and the like for all the drawing elements constituting the sequence diagram.
以上示したように、本発明の第3実施形態によれば、ダイアグラムの表示情報の算出設定を行うことにより、シーケンス図表示機能32に対応する一般の表示ツール間での表示の統一を可能にし、全ての開発者・ユーザが共通のシーケンス図を得ることが可能となる。
As described above, according to the third embodiment of the present invention, it is possible to unify the display among general display tools corresponding to the sequence
以上、各実施形態によれば、実際に実行されるプログラムのトレース状態からトレース情報をトレース情報生成機能11(プログラム実行監視手段10と連携)により出力し、トレース情報生成機能11によって出力されたトレース情報をモデル情報生成機能12がシーケンス情報に変換可能なモデル情報として出力し、モデル情報生成機能12によって生成されたモデル情報をシーケンス情報出力機能13がメタ言語(本実施形態では、XMI)を用いたシーケンス情報に変換して出力することにより、プログラムの実際の実行プロセスをシーケンス図として可視化することが可能となり、プログラムのソースコードからシーケンス図を生成する従来の方法のように、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができる。
As described above, according to each embodiment, the trace information is output from the trace state of the program actually executed by the trace information generation function 11 (in cooperation with the program execution monitoring unit 10), and the trace output by the trace
また、プログラムのソースコードが存在しない状況下(例えば、誤ってソースコードを消去してしまった等の状況下)であっても、プログラムのシーケンス図を作成することが可能となる。 In addition, it is possible to create a sequence diagram of a program even in a situation where the source code of the program does not exist (for example, a situation where the source code is deleted by mistake).
従って、プログラムの実行状態をトレースし、プログラムのシーケンス情報を自動生成することにより、既存のソフトウェアに手を加えることなく、既存ソフトウェアのシーケンス情報を取得することができる。 Therefore, by tracing the execution state of the program and automatically generating the sequence information of the program, the sequence information of the existing software can be acquired without modifying the existing software.
なお、上記第1実施形態〜第3実施形態を合わせた構成も本発明に含まれるものである。 In addition, the structure which combined the said 1st Embodiment-3rd Embodiment is also contained in this invention.
なお、上記実施形態で示した各種データはの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。 It should be noted that the configuration and contents of the various data shown in the above embodiment are not limited to this, and it goes without saying that the various data are configured with various configurations and contents depending on the application and purpose.
以上、実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。 Although the embodiment has been described above, the present invention can take an embodiment as a system, apparatus, method, program, recording medium, or the like, and specifically includes a plurality of devices. The present invention may be applied to a system or may be applied to an apparatus composed of one device.
従って、プログラムの実際の実行プロセスをシーケンス図として可視化し、ソースコードが存在しないプログラムではシーケンス図が作成できなかったり、条件分岐等の点からシーケンスが曖昧となってしまう等のプログラムのソースコードからシーケンス図を生成する従来の方法の問題点を解決し、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができる。 Therefore, the actual execution process of the program is visualized as a sequence diagram, and in a program without source code, a sequence diagram cannot be created, or the sequence becomes ambiguous in terms of conditional branching etc. It is possible to solve the problems of the conventional method for generating the sequence diagram, and to improve the development efficiency such as the efficiency of debugging work and the indication of design contradiction.
以下、図19に示すメモリマップを参照して本発明に係るシーケンス情報作成装置で読み取り可能なデータ処理プログラムの構成について説明する。 The configuration of a data processing program that can be read by the sequence information generating apparatus according to the present invention will be described below with reference to the memory map shown in FIG.
図19は、本発明に係るシーケンス情報作成装置で読み取り(読み出し)可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。 FIG. 19 is a diagram for explaining a memory map of a recording medium (storage medium) that stores various data processing programs that can be read (read out) by the sequence information generating apparatus according to the present invention.
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。 Although not specifically shown, information for managing a program group stored in the recording medium, for example, version information, creator, etc. is also stored, and information depending on the OS on the program reading side, for example, a program is identified and displayed. Icons may also be stored.
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。 Further, data depending on various programs is also managed in the directory. In addition, when a program or data to be installed is compressed, a program to be decompressed may be stored.
本実施形態における図3,図5,図7,図9,図14,図16,図17に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。 The functions shown in FIGS. 3, 5, 7, 9, 14, 16, and 17 in this embodiment may be performed by a host computer by a program installed from the outside. In this case, the present invention is applied even when an information group including a program is supplied to the output device from a recording medium such as a CD-ROM, a flash memory, or an FD, or from an external recording medium via a network. Is.
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。 As described above, a recording medium recording software program codes for realizing the functions of the above-described embodiments is supplied to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus stores the recording medium in the recording medium. It goes without saying that the object of the present invention can also be achieved by reading and executing the programmed program code.
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。 In this case, the program code itself read from the recording medium realizes the novel function of the present invention, and the recording medium storing the program code constitutes the present invention.
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。 As a recording medium for supplying the program code, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, DVD-ROM, magnetic tape, nonvolatile memory card, ROM, EEPROM, A silicon disk or the like can be used.
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) or the like running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Furthermore, after the program code read from the recording medium is written in a memory provided in a function expansion board inserted in the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the case where the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。 Further, the present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device. Needless to say, the present invention can be applied to a case where the present invention is achieved by supplying a program to a system or apparatus. In this case, by reading a recording medium storing a program represented by software for achieving the present invention into the system or apparatus, the system or apparatus can enjoy the effects of the present invention. .
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。 Furthermore, by downloading and reading out a program represented by software for achieving the present invention from a server, database, etc. on a network using a communication program, the system or apparatus can enjoy the effects of the present invention. It becomes.
10 プログラム実行監視機能
11 トレース情報生成機能
12 モデル情報生成機能
13 シーケンス情報出力機能
21 トレース情報格納部
22 モデル情報格納部
23 シーケンス情報格納部
31 入力機能
32 シーケンス図表示機能
41 CPU
42 RAM
43 ROM
44 HD
45 DB
46 表示装置
47 入力装置
DESCRIPTION OF
42 RAM
43 ROM
44 HD
45 DB
46
Claims (9)
前記トレース情報生成手段により生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成するシーケンス情報生成手段と、
を有することを特徴とするシーケンス情報生成装置。 Trace information generating means for tracing a program to be executed and generating trace information during execution of the program;
Sequence information generating means for generating sequence information of the program based on the trace information generated by the trace information generating means;
A sequence information generating apparatus characterized by comprising:
実行されるプログラムをトレースして前記プログラム実行時のトレース情報を生成するトレース情報生成ステップと、
前記トレース情報生成ステップにより生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成するシーケンス情報生成ステップと、
を有することを特徴とするシーケンス情報生成方法。 In a sequence information generation method in an information processing apparatus capable of executing a program,
A trace information generating step for generating a trace information when the program is executed by tracing the program to be executed;
A sequence information generation step for generating sequence information of the program based on the trace information generated by the trace information generation step;
A sequence information generation method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004194461A JP2006018477A (en) | 2004-06-30 | 2004-06-30 | Sequence information generation system, sequence information generation method, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004194461A JP2006018477A (en) | 2004-06-30 | 2004-06-30 | Sequence information generation system, sequence information generation method, program, and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018477A true JP2006018477A (en) | 2006-01-19 |
Family
ID=35792707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004194461A Pending JP2006018477A (en) | 2004-06-30 | 2004-06-30 | Sequence information generation system, sequence information generation method, program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006018477A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008217721A (en) * | 2007-03-07 | 2008-09-18 | Ntt Data Corp | Program profiling system, program profiling method, and program |
JP2009295021A (en) * | 2008-06-06 | 2009-12-17 | Internatl Business Mach Corp <Ibm> | Sequence diagram creation device, sequence diagram creation method, and computer program |
JP2010198133A (en) * | 2009-02-23 | 2010-09-09 | Internatl Business Mach Corp <Ibm> | Method of selecting function for performance evaluation modeling |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06161819A (en) * | 1992-11-20 | 1994-06-10 | Toshiba Corp | System and method for analyzing program |
JPH07160546A (en) * | 1993-12-03 | 1995-06-23 | Hitachi Telecom Technol Ltd | Sequence trace analyzer |
JPH09152981A (en) * | 1995-11-30 | 1997-06-10 | Toshiba Corp | Tracing device and method |
JPH113250A (en) * | 1997-06-13 | 1999-01-06 | Nec Corp | Thread information collection method and recording medium recorded with thread information collection program |
JPH11212820A (en) * | 1998-01-30 | 1999-08-06 | Toshiba Corp | System and method for tracing program execution process |
JP2002157120A (en) * | 2000-11-17 | 2002-05-31 | Hitachi Software Eng Co Ltd | Design document managing system |
JP2003085000A (en) * | 2001-09-10 | 2003-03-20 | Mitsubishi Electric Corp | Trace information production device and its method |
JP2003140928A (en) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | Automatic obtaining system of virtual machine internal information |
-
2004
- 2004-06-30 JP JP2004194461A patent/JP2006018477A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06161819A (en) * | 1992-11-20 | 1994-06-10 | Toshiba Corp | System and method for analyzing program |
JPH07160546A (en) * | 1993-12-03 | 1995-06-23 | Hitachi Telecom Technol Ltd | Sequence trace analyzer |
JPH09152981A (en) * | 1995-11-30 | 1997-06-10 | Toshiba Corp | Tracing device and method |
JPH113250A (en) * | 1997-06-13 | 1999-01-06 | Nec Corp | Thread information collection method and recording medium recorded with thread information collection program |
JPH11212820A (en) * | 1998-01-30 | 1999-08-06 | Toshiba Corp | System and method for tracing program execution process |
JP2002157120A (en) * | 2000-11-17 | 2002-05-31 | Hitachi Software Eng Co Ltd | Design document managing system |
JP2003085000A (en) * | 2001-09-10 | 2003-03-20 | Mitsubishi Electric Corp | Trace information production device and its method |
JP2003140928A (en) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | Automatic obtaining system of virtual machine internal information |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008217721A (en) * | 2007-03-07 | 2008-09-18 | Ntt Data Corp | Program profiling system, program profiling method, and program |
JP2009295021A (en) * | 2008-06-06 | 2009-12-17 | Internatl Business Mach Corp <Ibm> | Sequence diagram creation device, sequence diagram creation method, and computer program |
JP2010198133A (en) * | 2009-02-23 | 2010-09-09 | Internatl Business Mach Corp <Ibm> | Method of selecting function for performance evaluation modeling |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035101B (en) | Method, device, medium and equipment for creating command library combining RPA and AI | |
CN111026670B (en) | Test case generation method, test case generation device and storage medium | |
CN111124379A (en) | Page generation method and device, electronic equipment and storage medium | |
CN112905441A (en) | Test case generation method, test method, device and equipment | |
JP5026925B2 (en) | Control program creation device and control program creation method | |
Saini et al. | Towards web collaborative modelling for the user requirements notation using eclipse che and theia ide | |
JP2006309290A (en) | Method and device for supporting preparation of test program | |
CN107491311B (en) | Method and system for generating page file and computer equipment | |
Mészáros et al. | Delivering comprehension features into source code editors through LSP | |
CN114398290B (en) | Program debugging method, device, equipment and medium | |
JP2006018477A (en) | Sequence information generation system, sequence information generation method, program, and recording medium | |
CN104267935A (en) | Code conversion method and device | |
JP2009064124A (en) | System, device and program for performance data collection/display | |
JP2004070810A (en) | Visual programming system, visual programming method, program for visual programming, and storage medium containing the program | |
CN112346736B (en) | Data processing method and system | |
CN115617333A (en) | Data updating method and device, electronic equipment and storage medium | |
CN113204381A (en) | Instruction file generation method, instruction file generation device, machine equipment and storage medium | |
JP2002116911A (en) | Automatic generation device for object-oriented program | |
JP2009251666A (en) | Change history preparation apparatus, method, and program | |
JP2020091766A (en) | Electronic computer, method, and program | |
JP2007164630A (en) | Information processor, control method, program and storage medium | |
JP2012150740A (en) | Program generating device and method | |
JP2007094453A (en) | Program development support system, program development support method and program | |
JP2004054378A (en) | Message information display, displaying method and its system | |
JP2009098751A (en) | Coding support device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070621 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101005 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101206 |
|
A02 | Decision of refusal |
Effective date: 20110315 Free format text: JAPANESE INTERMEDIATE CODE: A02 |