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 PDF

Info

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
Application number
JP2004194461A
Other languages
Japanese (ja)
Inventor
Kazuhiro Shibuya
和広 渋谷
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.)
Canon IT Solutions Inc
Original Assignee
Canon Software Inc
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 Canon Software Inc filed Critical Canon Software Inc
Priority to JP2004194461A priority Critical patent/JP2006018477A/en
Publication of JP2006018477A publication Critical patent/JP2006018477A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve problems of conventional method for generating sequence diagrams from source codes of a program such that no sequence diagrams can be generated regarding a program having no source code and vague sequences is generated due to branch of conditions when visualizing actual execution processes of programs as sequence diagrams to improve development efficiency such as efficiency of debugging works and indication to inconsistent designs. <P>SOLUTION: Trace information is generated by tracing the program executed by a trace information generation function 11 when executing the program, and the sequence information of the program is generated by a model information generation function 12 and a sequence information generation function 13 on the basis of the generated trace information. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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, Patent Document 1 proposes a state transition diagram creation device for obtaining a desired state transition diagram based on an input event sequence.

また、ソースコードから所望のシーケンス図を得る為のシーケンス図作成装置が特許文献2で提案されている。
特開平11-24900号公報 特開2004-94496号公報
Further, Patent Document 2 proposes a sequence diagram creation device for obtaining a desired sequence diagram from source code.
Japanese Patent Laid-Open No. 11-24900 JP 2004-94496 A

しかしながら特許文献1に記載の状態遷移図作成装置には、プログラムのイベントシーケンスを入力しなければならないという問題があり、例えば、プログラムのソースコードが存在しない状況下(例えば、誤ってソースコードを消去してしまった等の状況下)では、適用不可能であるといった問題があった。   However, the state transition diagram creation apparatus described in Patent Document 1 has a problem that an event sequence of a program must be input. For example, in a situation where the source code of the program does not exist (for example, the source code is deleted accidentally) In such a situation, there was a problem that it was not applicable.

また、特許文献2に記載のシーケンス図作成装置はシーケンス図の作成にソースコードを用いる事から、特許文献1に記載の状態遷移図作成装置と同様の問題があった。   Further, since the sequence diagram creating apparatus described in Patent Document 2 uses source code for creating a sequence diagram, there is a problem similar to that of the state transition diagram creating apparatus described in Patent Document 1.

さらに、上記特許文献1,2のように、プログラムのソースコードからシーケンス図を生成した場合、プログラムの実際の実行状態をトレースしているわけではないため、条件分岐等の点からシーケンスが曖昧となってしまい、プログラムのシーケンス上の矛盾点を発見することが困難である等の問題点もあった。   Furthermore, when the sequence diagram is generated from the source code of the program as in Patent Documents 1 and 2, the actual execution state of the program is not traced, so the sequence is ambiguous in terms of conditional branching and the like. As a result, it was difficult to find inconsistencies in the program sequence.

本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、実行されるプログラムをトレースして前記プログラム実行時のトレース情報を生成し、該生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成することにより、プログラムの実際の実行プロセスをシーケンス図として可視化することができ、プログラムのソースコードからシーケンス図を生成する従来の方法のように、ソースコードが存在しないプログラムではシーケンス図が作成できなかったり、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができるシーケンス情報生成装置およびシーケンス情報生成方法およびプログラムおよび記録媒体を提供することである。   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 input function 31 is for inputting program information for which sequence information is to be created. Reference numeral 10 denotes a program execution monitoring function. The program execution monitoring function 10 executes a program in accordance with the program information input by the input function 31 to monitor the program to be executed, and an event (actually transmitted / received between objects when the program is executed) (Method start, method end, etc.) information is output.

11はトレース情報生成機能である。このトレース情報生成装置11は、プログラム実行監視機能10から出力されるイベントの情報からプログラムの実行状態をトレースしたトレース情報を生成して、トレース情報格納部21に格納する。   Reference numeral 11 denotes a trace information generation function. The trace information generation device 11 generates trace information obtained by tracing the execution state of the program from the event information output from the program execution monitoring function 10 and stores the trace information in the trace information storage unit 21.

12はモデル情報生成機能である。このモデル情報生成機能12は、トレース情報格納部21に格納されたトレース情報を利用してシーケンス情報のモデル情報を生成して、モデル情報格納部22に格納する。   Reference numeral 12 denotes a model information generation function. The model information generation function 12 generates model information of sequence information using the trace information stored in the trace information storage unit 21 and stores the model information in the model information storage unit 22.

13はシーケンス情報出力機能である。このシーケンス情報出力機能13は、モデル情報格納部22に格納されるシーケンス情報のモデル情報からシーケンス情報を作成して、シーケンス情報格納部23に格納する。32はシーケンス図表示機能で、このシーケンス図表示機能32は、シーケンス情報格納部23に格納されるシーケンス情報に基づいてシーケンス図を表示するものである。また、このシーケンス図表示機能32は、一般のシーケンス図表示ツール、例えば、Rational社の「Rose」(商品名),SparksSystem社の「EA」(商品名)等に対応する。なお、この一般のシーケンス図表示ツールは、表示されるシーケンス図を印刷可能である。また、このシーケンス図表示機能32の代わりにシーケンス図印刷機能等を設けてもよい。即ち、シーケンス情報に基づいて視覚可能にシーケンス図を生成する機能であればよく、表示機能であっても印刷機能であってもよい。   Reference numeral 13 denotes a sequence information output function. The sequence information output function 13 creates sequence information from the model information of the sequence information stored in the model information storage unit 22 and stores the sequence information in the sequence information storage unit 23. Reference numeral 32 denotes a sequence diagram display function. This sequence diagram display function 32 displays a sequence diagram based on sequence information stored in the sequence information storage unit 23. The sequence diagram display function 32 corresponds to a general sequence diagram display tool, for example, “Rose” (product name) from Rational, “EA” (product name) from Sparks System, etc. This general sequence diagram display tool can print a sequence diagram to be displayed. Further, a sequence diagram printing function or the like may be provided instead of the sequence diagram display function 32. That is, any function that generates a sequence diagram visually based on sequence information may be used, and may be a display function or a printing function.

なお、本実施形態においていては、一例として対象プログラムが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. Reference numeral 41 denotes a CPU. The CPU 41 loads a program stored in the ROM 43 or the hard disk (HD) 44 or other recording medium (not shown) (for example, a flexible disk, a CD-ROM, a DVD-ROM, etc.) onto the RAM 42 and executes it. The entire computer 40 is controlled. The RAM 42 is used as a work area for the CPU 41.

45はDBで、このDB45には、後述するシーケンス情報を生成するためのXMIコードの部品(オブジェクトに対応するXMIコード,メッセージに対応するXMIコード等)やその他の情報が格納されている。   Reference numeral 45 denotes a DB, which stores an XMI code component (XMI code corresponding to an object, XMI code corresponding to a message, etc.) and other information for generating sequence information described later.

47は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。46は表示装置で、CRT,LCD等で構成される。   An input device 47 corresponds to a pointing device such as a keyboard or a mouse. A display device 46 is composed of a CRT, LCD, or the like.

以下、図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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S101 to S105 indicate steps. Furthermore, by executing this processing, sequence information corresponding to the input program can be automatically generated.

まず、ステップS101において、CPU41は、対象プログラムの情報をユーザインタフェースの機能を利用して作成する。具体的には、図4に示すユーザインタフェースを表示装置46に表示制御し、ユーザにプログラム情報を入力させる(図1に示した入力機能31に相当)。   First, in step S101, the CPU 41 creates information on the target program using the function of the user interface. Specifically, display control of the user interface shown in FIG. 4 is performed on the display device 46 to allow the user to input program information (corresponding to the input function 31 shown in FIG. 1).

図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 class input field 103 is displayed. The sequence information creation process is started.

以下、図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 CPU 41 can trace the execution state of the target program based on the target program information input in step S101. Is started (corresponding to the program execution monitoring function 10 shown in FIG. 1). For example, a Java (registered trademark) language development environment is provided with an environment for debugging a program execution state called JPDA (Java (registered trademark) Platform Debugger Architecture). In this embodiment, a program is started through the JPDA. To do. This JPDA monitors the execution state of a program to be executed, and enables output of information such as method start and end in time series. Note that methods provided as standard in the Java (registered trademark) execution environment and methods that are not desired to be sequenced can be omitted from the sequence information created by the sequence information creation process. Thereby, generation of redundant sequence information including all method calls of the program can be avoided. For example, a method such as “System.out.println ()” included in a “java (registered trademark) .lang” package provided as a standard package in the Java (registered trademark) language needs to be expressed on a sequence diagram. Often not. At that time, it can be declared that the tracing of the “java (registered trademark). If this function is used, it is possible to realize a function of omitting, from the sequence information, methods and the like that are not desired to be sequenced.

次に、ステップS103において、CPU41は、起動されたプログラムを上記JPDAを介してトレースし、トレース情報を生成する(図1に示したプログラム実行監視機能10及びトレース情報生成機能11に相当)。なお、ステップS103の詳細な説明は後述する図5に示す。また、ステップS103では、生成したトレース情報を、図2に示したHD44内にトレース情報ファイル(図1に示したトレース情報格納部21に相当)として格納する。   Next, in step S103, the CPU 41 traces the activated program via the JPDA and generates trace information (corresponding to the program execution monitoring function 10 and the trace information generation function 11 shown in FIG. 1). The detailed description of step S103 is shown in FIG. In step S103, the generated trace information is stored as a trace information file (corresponding to the trace information storage unit 21 shown in FIG. 1) in the HD 44 shown in FIG.

次に、ステップS104において、CPU41は、ステップS103で生成されたトレース情報に基づいて、対象プログラムのモデル情報を生成する(図1に示したモデル情報生成機能12に相当)。なお、ステップS104の詳細な説明は後述する図7に示す。また、ステップS104では、生成したモデル情報を、図2に示したHD44内にモデル情報ファイル(図1に示したモデル情報格納部22に相当)として格納する。   Next, in step S104, the CPU 41 generates model information of the target program based on the trace information generated in step S103 (corresponding to the model information generation function 12 shown in FIG. 1). A detailed description of step S104 is shown in FIG. In step S104, the generated model information is stored as a model information file (corresponding to the model information storage unit 22 shown in FIG. 1) in the HD 44 shown in FIG.

次に、ステップS105において、CPU41は、ステップS104で生成されたモデル情報に基づいて、シーケンス情報を出力する(図1に示したシーケンス情報出力機能13に相当)。本実施形態においては、このシーケンス情報の出力には、XMI(XML Metadata Interchange)を利用する。よって、上記ステップS105では、XMI形式のシーケンス情報を出力するものとする。また、ステップS103ででは、シーケンス情報を図2に示したHD44内に図4の出力ファイル名入力欄U101で指定した出力ファイル名のファイル(図1に示したシーケンス情報格納部23に相当)として格納する。   Next, in step S105, the CPU 41 outputs sequence information based on the model information generated in step S104 (corresponding to the sequence information output function 13 shown in FIG. 1). In the present embodiment, XMI (XML Metadata Interchange) is used for outputting the sequence information. Therefore, in step S105, sequence information in the XMI format is output. In step S103, the sequence information is stored in the HD 44 shown in FIG. 2 as an output file name file (corresponding to the sequence information storage unit 23 shown in FIG. 1) specified in the output file name input field U101 in FIG. Store.

図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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S204 to S209 indicate steps.

まず、ステップ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 information generation function 11 generates trace information (for example, TR001 to TR004 shown in FIG. 6 described later) in the memory space of the RAM 42 based on the received “method start” event. In S206, the trace information generation function 11 adds the trace information generated in the memory space to the file (FIG. 6) (trace information storage unit 21) that stores the trace information of the program.

また、ステップS207において、プログラム実行監視機能10より、トレース情報生成機能11が、「メソッド終了」のイベントを受け取ると、ステップS208において、トレース情報生成機能11は、該受け取った「メソッド終了」のイベントに基づいてトレース情報(例えば、図6に示すTR005〜TR008)をRAM42のメモリ空間に生成し、ステップS209において、トレース情報生成機能11は、該生成したトレース情報をプログラムのトレース情報を表現するファイル(図6)(トレース情報格納部21)に追記していく。   In step S207, when the trace information generation function 11 receives the “method end” event from the program execution monitoring function 10, in step S208, the trace information generation function 11 receives the received “method end” event. Based on the above, trace information (for example, TR005 to TR008 shown in FIG. 6) is generated in the memory space of the RAM 42, and in step S209, the trace information generation function 11 uses the generated trace information to represent the program trace information. (FIG. 6) Additional information is added to the (trace information storage unit 21).

これらの処理をプログラムトレース中に繰り返すことで、プログラムのトレース情報を生成する。   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 execution monitoring function 10.

図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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S301 to S316 indicate each step.

まず、ステップS301において、CPU41は、トレース情報ファイル(図6)より1行分の読み込を行ない、RAM42上に確保される変数lineに格納する。   First, in step S301, the CPU 41 reads one line from the trace information file (FIG. 6) and stores it in a variable line reserved on the RAM.

次に、ステップS302において、CPU41は、変数「line」の値が"[ENTRY]"と同等かどうかを判定する。   Next, in step S302, the CPU 41 determines whether or not the value of the variable “line” is equal to “[ENTRY]”.

ステップS302において、CPU41が変数「line」の値が"[ENTRY]"と同等であると判定した場合には、ステップS303に進み、以降の処理はメソッドの開始情報を取得する処理となり、一方、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合には、ステップS313に進み、以降の処理はメソッドの終了情報を取得する処理となる。まずは、前者の場合について示す。   In step S302, when the CPU 41 determines that the value of the variable “line” is equal to “[ENTRY]”, the process proceeds to step S303, and the subsequent processing is processing for acquiring method start information. When the CPU 41 determines that the value of the variable “line” is not equal to “[ENTRY]”, the process proceeds to step S313, and the subsequent processing is processing for acquiring method end information. First, the former case will be described.

ステップS303において、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。   In step S <b> 303, the CPU 41 reads one line from the trace information file and stores the data of the read line in a variable “method name” secured on the RAM 42.

次に、ステップS304において、CPU41は、RAM42上に確保される変数「メッセージ受信者」の値がNULLかどうかを判定する。なお、最初にステップS304の処理を行う場合は変数「メッセージ受信者」の値がNULLとなっている。なお、このフローチャートにおいて、上記変数「メッセージ受信者」は、メソッドをコールされたオブジェクトを格納するための変数であり、また、RAM42上に確保される変数「メッセージ送信者」は、メソッドコールしたオブジェクトを格納するための変数である。   Next, in step S304, the CPU 41 determines whether or not the value of the variable “message recipient” secured on the RAM 42 is NULL. When the process of step S304 is performed first, the value of the variable “message recipient” is NULL. In this flowchart, the variable “message receiver” is a variable for storing the object whose method is called, and the variable “message sender” reserved on the RAM 42 is the object whose method is called. Is a variable for storing

ステップS304で、CPU41は、変数「メッセージ受信者」の値がNULLであると判定した場合には、ステップS305において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信者」に格納する。なお、変数「メッセージ受信者」の値がNULLであると判定した場合は、最初にステップS304の処理を行う場合であるため、CPU41は、メッセージ受信者がこのメソッドのメッセージ送信者と同一であると判断する。そして、ステップS306において、CPU41は、変数「メッセージ送信者」に、変数「メッセージ受信者」の値を格納し、ステップS307に進む。   In step S304, if the CPU 41 determines that the value of the variable “message recipient” is NULL, in step S305, the CPU 41 reads one line from the trace information file, and reads the line of the read line. Store the data in the variable “message recipient”. If it is determined that the value of the variable “message receiver” is NULL, it is the case where the process of step S304 is performed first, so the CPU 41 has the same message receiver as the message sender of this method. Judge. In step S306, the CPU 41 stores the value of the variable “message receiver” in the variable “message sender”, and proceeds to step S307.

一方、ステップS304で、CPU41が、変数「メッセージ受信者」の値がNULLでないと判定した場合には、ステップS311において、CPU41は、変数「メッセージ送信者」に変数「メッセージ受信者」の値(即ち、前のメソッドのメッセージ受信者の値)を格納する。   On the other hand, if the CPU 41 determines in step S304 that the value of the variable “message recipient” is not NULL, in step S311, the CPU 41 sets the variable “message sender” to the value of the variable “message receiver” ( That is, the message recipient value of the previous method) is stored.

次に、ステップS312において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信者」に格納し、ステップS307に移行する。   Next, in step S312, the CPU 41 reads one line from the trace information file, stores the data of the read line in the variable “message recipient”, and proceeds to step S307.

次に、ステップS307において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メッセージ受信オブジェクト識別キー値」に格納する。   Next, in step S307, the CPU 41 reads one line from the trace information file and stores the data of the read line in a variable “message receiving object identification key value” secured on the RAM.

次に、ステップS308においては、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値,変数「メッセージ受信オブジェクト識別キー値」の値を、メソッド情報として、RAM42上のマップ(図8(a))に登録する。   Next, in step S308, the CPU 41 sets the value of the variable “method name”, the value of the variable “message sender”, the value of the variable “message receiver”, and the value of the variable “message reception object identification key value”. The method information is registered in the map (FIG. 8A) on the RAM 42.

次に、ステップS309において、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値から構成されるメソッド情報を、モデル情報として、HD44内のモデル情報ファイル(後述する図8(b))(図1のモデル情報格納部22)に追加(時系列に追加)して、ステップS310に進む。   Next, in step S309, the CPU 41 uses the method information including the value of the variable “method name”, the value of the variable “message sender”, and the value of the variable “message receiver” as model information in the HD 44. The model information file (FIG. 8B described later) (model information storage unit 22 in FIG. 1) is added (added in time series), and the process proceeds to step S310.

一方、ステップS302で、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合(即ち"[EXIT]"の場合)には、ステップS313に進み、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。   On the other hand, if the CPU 41 determines in step S302 that the value of the variable “line” is not equal to “[ENTRY]” (that is, “[EXIT]”), the process proceeds to step S313, and the CPU 41 determines the trace information. One line is read from the file, and the data of the read line is stored in a variable “method name” secured on the RAM 42.

次に、ステップS314において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メッセージ送信者」に格納する。   Next, in step S <b> 314, the CPU 41 reads one line from the trace information file and stores the data of the read line in the variable “message sender” secured on the RAM 42.

次に、ステップS315において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信オブジェクト識別キー値」に格納する。   Next, in step S315, the CPU 41 reads one line from the trace information file and stores the data of the read line in the variable “message receiving object identification key value”.

次に、ステップS316において、CPU41は、ステップS314でセットした変数「メソッド名」の値,ステップS315でセットした変数「メッセージ受信オブジェクト識別キー値」の値の組み合わせに対応するメッセージ情報をマップ(図8(a))の後方より(新しい情報から)検索し、該検索されたメッセージ情報内の「メッセージ送信者」の値を、変数「メッセージ受信者」に格納し、ステップS309に進み、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値を、モデル情報として、HD44内のモデル情報ファイル(図8(b))に追加して、ステップS309に進む。   Next, in step S316, the CPU 41 maps message information corresponding to the combination of the value of the variable “method name” set in step S314 and the value of the variable “message reception object identification key value” set in step S315 (FIG. 8 (a)) from the back (from new information), the value of “message sender” in the searched message information is stored in the variable “message receiver”, and the process proceeds to step S309, where the CPU 41 The value of the variable “method name”, the value of the variable “message sender”, and the value of the variable “message receiver” are added as model information to the model information file in the HD 44 (FIG. 8B), The process proceeds to step S309.

次に、ステップS310において、CPU41は、トレース情報ファイルに次の行が存在するか否かを判定し、存在すると判定した場合には、ステップS301の処理に戻る。   Next, in step S310, the CPU 41 determines whether or not the next line exists in the trace information file. If it is determined that the next line exists, the process returns to step S301.

一方、ステップS310で、CPU41が、トレース情報ファイルに次の行が存在しない(EOF)と判定した場合には、本フローチャートの処理を終了する。   On the other hand, if the CPU 41 determines in step S310 that the next line does not exist in the trace information file (EOF), the process of this flowchart ends.

図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 CPU 41 reads the first line “[ENTRY]” of the trace information file and stores it in the variable line.

次に、ステップS302において、CPU41は、変数「line」の値が"[ENTRY]"と同等であると判定し、ステップS303において、CPU41は、トレース情報ファイルの2行目"main"を読み込み、変数「メソッド名」に格納する。   Next, in step S302, the CPU 41 determines that the value of the variable “line” is equivalent to “[ENTRY]”. In step S303, the CPU 41 reads the second line “main” of the trace information file, Store it in the variable "method name".

次に、ステップS304において、CPU41は、変数「メッセージ受信者」の値がNULLであると判定し、ステップS305において、CPU41は、トレース情報ファイルをから3行目"Object1"を読み込み、変数「メッセージ受信者」に格納する。   Next, in step S304, the CPU 41 determines that the value of the variable “message recipient” is NULL, and in step S305, the CPU 41 reads the third line “Object1” from the trace information file, and sets the variable “message”. Store in "Recipient".

つぎに、ステップS306において、CPU41は、変数「メッセージ送信者」に、変数「メッセージ受信者」の値(即ち、"Object1")を格納する。   Next, in step S306, the CPU 41 stores the value of the variable “message receiver” (ie, “Object1”) in the variable “message sender”.

次に、ステップS307において、CPU41は、トレース情報ファイルから4行目"10082904"を読み込み、「オブジェクト識別キー値」に格納する。   Next, in step S307, the CPU 41 reads the fourth line “10082904” from the trace information file and stores it in “object identification key value”.

次に、ステップS308においては、CPU41は、変数「メソッド名」の値"main",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object1",変数「メッセージ受信オブジェクト識別キー値」の値"10082904"を、メソッド情報として、マップに登録する(図8(a)のMP001)。   Next, in step S308, the CPU 41 sets the value “main” of the variable “method name”, the value “Object1” of the variable “message sender”, the value “Object1” of the variable “message receiver”, and the variable “message reception”. The value “10082904” of “object identification key value” is registered in the map as method information (MP001 in FIG. 8A).

次に、ステップS309において、CPU41は、変数「メソッド名」の値"main",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object1"を、モデル情報として、HD44内のモデル情報ファイルに追加する(図8(b)のMD001)。   Next, in step S309, the CPU 41 uses the value “main” of the variable “method name”, the value “Object1” of the variable “message sender”, and the value “Object1” of the variable “message receiver” as model information. It is added to the model information file in the HD 44 (MD001 in FIG. 8B).

次に、ステップS310において、CPU41は、トレース情報ファイルはまだEOFでないので、ステップS301の処理に戻る。   Next, in step S310, the CPU 41 returns to the process of step S301 because the trace information file is not yet an EOF.

そして、再び、ステップS301において、CPU41は、トレース情報ファイルより5行目"[ENTRY]"を読み込みを行ない、変数lineに格納する。   In step S301, the CPU 41 reads the fifth line “[ENTRY]” from the trace information file and stores it in the variable line.

次に、ステップS302において、CPU41は、変数「line」の値が"[ENTRY]"と同等であるので、ステップS303において、CPU41は、トレース情報ファイルの6行目"<init>"を読み込み、変数「メソッド名」に格納する。   Next, in step S302, since the value of the variable “line” is equal to “[ENTRY]”, the CPU 41 reads the sixth line “<init>” of the trace information file in step S303, Store it in the variable "method name".

次に、ステップ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 CPU 41 sets the value “Object1” of the variable “message receiver” to the variable “message sender”. To store.

次に、ステップS312において、CPU41は、トレース情報ファイルの7行目"Object2"を読み込み、変数「メッセージ受信者」に格納する。   Next, in step S312, the CPU 41 reads the seventh line “Object2” of the trace information file and stores it in the variable “message recipient”.

次に、ステップS307において、CPU41は、トレース情報ファイルから8行目"10084080"を読み込み、「オブジェクト識別キー値」に格納する。   Next, in step S307, the CPU 41 reads “10084080” on the eighth line from the trace information file and stores it in “object identification key value”.

次に、ステップS308においては、CPU41は、変数「メソッド名」の値"<init>",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object2",変数「メッセージ受信オブジェクト識別キー値」の値"10084080"を、メソッド情報として、マップに登録する(図8(a)のMP002)。   Next, in step S308, the CPU 41 sets the value “<init>” of the variable “method name”, the value “Object1” of the variable “message sender”, the value “Object2” of the variable “message receiver”, and the variable “ The value “10084080” of “message reception object identification key value” is registered in the map as method information (MP002 in FIG. 8A).

次に、ステップS309において、CPU41は、変数「メソッド名」の値"<init>",変数「メッセージ送信者」の値"Object1",変数「メッセージ受信者」の値"Object2"を、モデル情報として、HD44内のモデル情報ファイルに追加する(図8(b)のMD002)。   Next, in step S309, the CPU 41 sets the value “<init>” of the variable “method name”, the value “Object1” of the variable “message sender”, and the value “Object2” of the variable “message receiver” as model information. Are added to the model information file in the HD 44 (MD002 in FIG. 8B).

次に、ステップS310において、CPU41は、トレース情報ファイルはまだEOFでないので、ステップS301の処理に戻る。   Next, in step S310, the CPU 41 returns to the process of step S301 because the trace information file is not yet an EOF.

そして、再び、ステップS301において、CPU41は、トレース情報ファイルより9行目"[EXIT]"を読み込み、変数lineに格納する。   Then, again in step S301, the CPU 41 reads "[EXIT]" on the ninth line from the trace information file and stores it in the variable line.

次に、ステップS302において、CPU41は、変数「line」の値が"[EXIT]"であるので、ステップS313において、CPU41は、トレース情報ファイルの10行目"<init>"を読み込み、変数「メソッド名」に格納する。   Next, in step S302, since the value of the variable “line” is “[EXIT]”, the CPU 41 reads “<init>” on the 10th line of the trace information file in step S313, and sets the variable “line”. Stored in Method Name.

次に、ステップS314において、CPU41は、トレース情報ファイルから11行目"Object2"を読み込み、該読み込んだ行のデータを変数「メッセージ送信者」に格納する。   Next, in step S314, the CPU 41 reads the eleventh line “Object2” from the trace information file, and stores the data of the read line in the variable “message sender”.

次に、ステップS315において、CPU41は、トレース情報ファイルから12行目"10084080"を読み込み、変数「メッセージ受信オブジェクト識別キー値」に格納する。   Next, in step S315, the CPU 41 reads “10084080” on the 12th line from the trace information file and stores it in the variable “message reception object identification key value”.

次に、ステップ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 CPU 41 sets the value “<init>” of the variable “method name”, the value “Object2” of the variable “message sender”, and the value “Object1” of the variable “message receiver” as model information. Are added to the model information file in the HD 44 (MD003 in FIG. 8B).

次に、ステップS310において、CPU41は、トレース情報ファイルはまだEOFでないので、ステップS301の処理に戻る。   Next, in step S310, the CPU 41 returns to the process of step S301 because the trace information file is not yet an EOF.

この後、同様に処理を繰り返し、ステップS310において、CPU41が、トレース情報ファイルがEOFであると判断すると、処理を終了する。   Thereafter, the processing is repeated in the same manner, and when the CPU 41 determines in step S310 that the trace information file is EOF, the processing ends.

以上の処理により、図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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S601 to S605 indicate steps.

まず、ステップ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 CPU 41 reads a model information file (FIG. 8B) on the RAM 42, acquires information on all objects and messages appearing in a sequence diagram shown in FIG. Store in order of appearance in the corresponding program. In the example shown in FIG. 8B, “Object1” and “Object1” are acquired as objects, and “main”, “<init>”, and “update” are acquired as messages. Next, in step S602, the CPU 41 performs step S602. The object information acquired in step S601 is extracted in the order of appearance in the corresponding program, and XMI codes (XMI001 and XMI002 in FIG. 10) corresponding to the objects (for example, SQ001 and SQ002 in FIG. 11 to be described later) are generated. It outputs to the information file (FIG. 10 mentioned later).

なお、ステップ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 DB 45 in the HD 44 shown in FIG. Read parts (XMI code of header part, XMI code corresponding to object, XMI code corresponding to message) and edit to correspond to each object and message corresponding to the information read from model information file (For example, name, sender, receiver, etc. are edited) and an XMI code corresponding to the object and message read from the model information file is generated.

次に、ステップS603において、CPU41は、まだXMIコードを生成していないオブジェクトが存在するか否かを判定し、存在すると判定した場合には、ステップS602に戻り、次のオブジェクトに対する処理を行う。   Next, in step S603, the CPU 41 determines whether or not there is an object for which an XMI code has not yet been generated. If it is determined that there is an object, the CPU 41 returns to step S602 to perform processing for the next object.

一方、ステップS603で、CPU41が、もうXMIコードを生成していないオブジェクトは存在しないと判定した場合には、ステップS604に進む。   On the other hand, if the CPU 41 determines in step S603 that there is no object for which no XMI code has been generated, the process proceeds to step S604.

次に、ステップS604において、CPU41は、ステップS601で取得したメッセージの情報を対応プログラム内の出現順に1つ取り出し、該メッセージ(図11のSQ003,SQ004,SQ005)に対応するXMIコード(図10のXMI0003,XMI0004,XMI0005)を生成し、シーケンス情報ファイル(後述する図10)に出力する。   Next, in step S604, the CPU 41 extracts one piece of information of the message acquired in step S601 in the order of appearance in the corresponding program, and the XMI code (SQ003, SQ004, SQ005 in FIG. 11) corresponding to the message (FIG. 10). XMI0003, XMI0004, XMI0005) are generated and output to a sequence information file (FIG. 10 described later).

次に、ステップS605において、CPU41は、まだXMIコードを生成していないメッセージが存在するか否かを判定し、存在すると判定した場合には、ステップS604に戻り、次のメッセージに対する処理を行う。   Next, in step S605, the CPU 41 determines whether there is a message for which an XMI code has not yet been generated. If it is determined that there is a message, the CPU 41 returns to step S604 and performs processing for the next message.

一方、ステップS605で、CPU41が、もうXMIコードを生成していないメッセージは存在しないと判定した場合には、本フローチャートの処理を終了する。   On the other hand, if the CPU 41 determines in step S605 that there is no message for which no XMI code has been generated, the processing of this flowchart ends.

図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 diagram display function 32 of FIG.

図11は、図10に示したシーケンス情報ファイルに基づいて、図1のシーケンス図表示機能32により表示装置46に表示されるシーケンス図の一例を示す模式図である。   FIG. 11 is a schematic diagram showing an example of a sequence diagram displayed on the display device 46 by the sequence diagram display function 32 of FIG. 1 based on the sequence information file shown in FIG.

図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は、オブジェクトの活性区間を示す。   Reference numeral 801 denotes an object lifeline, and reference numeral 802 denotes an object active section.

図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 diagram display function 32 in real time.

以上示したように、本実施形態によれば、プログラムの実際の実行プロセスを可視化することが可能となり、プログラムのソースコードからシーケンス図を生成する従来の方法のように、条件分岐等の点からシーケンスが曖昧となってしまうことがなく、デバッグ作業の効率化、設計矛盾の指摘など、開発効率の改善を図ることができる。   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, TR 103 corresponds to the message sender (the class name of the object that called the method), and TR 106 uniquely identifies the message transmission object (that is, the message transmission object identification key value). It becomes.

また、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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S401 to S414 indicate steps.

本フローチャートの処理が、図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 CPU 41 reads one line from the trace information file (FIG. 13) and stores it in a variable line reserved on the RAM.

次に、ステップS402において、CPU41は、変数「line」の値が"[ENTRY]"と同等かどうかを判定する。   Next, in step S402, the CPU 41 determines whether or not the value of the variable “line” is equal to “[ENTRY]”.

ステップS402において、CPU41が変数「line」の値が"[ENTRY]"と同等であると判定した場合には、ステップS403に進み、以降の処理はメソッドの開始情報を取得する処理となり、一方、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合には、ステップS414に進み、以降の処理はメソッドの終了情報を取得する処理となる。まずは、前者の場合について示す。   In step S402, when the CPU 41 determines that the value of the variable “line” is equal to “[ENTRY]”, the process proceeds to step S403, and the subsequent processing is processing for acquiring method start information. If the CPU 41 determines that the value of the variable “line” is not equal to “[ENTRY]”, the process proceeds to step S414, and the subsequent processing is processing for acquiring method end information. First, the former case will be described.

ステップS403において、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。   In step S <b> 403, the CPU 41 reads one line from the trace information file and stores the data of the read line in a variable “method name” secured on the RAM 42.

次に、ステップS404において、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ送信者」に格納する。次に、ステップS405において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ送信オブジェクト識別キー値」に格納する。   Next, in step S404, the CPU 41 reads one line from the trace information file and stores the data of the read line in a variable “message sender” secured in the RAM. Next, in step S405, the CPU 41 reads the next line from the trace information file, and stores the data of the read line in a variable “message transmission object identification key value” secured in the RAM.

次に、ステップS406において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ受信者」に格納する。次に、ステップS407において、CPU41は、トレース情報ファイルをから次行を1行読み込み、該読み込んだ行のデータをRAM上に確保される変数「メッセージ受信オブジェクト識別キー値」に格納する。   Next, in step S406, the CPU 41 reads the next line from the trace information file, and stores the data of the read line in the variable “message receiver” secured in the RAM. Next, in step S407, the CPU 41 reads the next line from the trace information file, and stores the data of the read line in a variable “message receiving object identification key value” secured on the RAM.

次に、ステップS408においては、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ送信オブジェクト識別キー値」の値を、変数「メッセージ受信者」の値,変数「メッセージ受信オブジェクト識別キー値」の値を、メソッド情報として、RAM42上のマップ(図15(a))に登録する。   Next, in step S408, the CPU 41 sets the value of the variable “method name”, the value of the variable “message sender”, the value of the variable “message transmission object identification key value”, the value of the variable “message receiver”, The value of the variable “message receiving object identification key value” is registered in the map (FIG. 15A) on the RAM 42 as method information.

次に、ステップS409において、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値を、モデル情報として、HD44内のモデル情報ファイル(後述する図15(b))(図1のモデル情報格納部22)に追加して、ステップS410に進む。   Next, in step S409, the CPU 41 uses the value of the variable “method name”, the value of the variable “message sender”, and the value of the variable “message receiver” as model information in the model information file (described later). 15 (b)) (the model information storage unit 22 in FIG. 1), and the process proceeds to step S410.

一方、ステップS402で、CPU41が変数「line」の値が"[ENTRY]"と同等でないと判定した場合(即ち"[EXIT ]"の場合)には、ステップS411に進み、CPU41は、トレース情報ファイルから1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メソッド名」に格納する。   On the other hand, if the CPU 41 determines in step S402 that the value of the variable “line” is not equal to “[ENTRY]” (ie, “[EXIT]”), the process proceeds to step S411, and the CPU 41 determines the trace information. One line is read from the file, and the data of the read line is stored in a variable “method name” secured on the RAM 42.

次に、ステップS412において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータをRAM42上に確保される変数「メッセージ送信者」に格納する。   Next, in step S 412, the CPU 41 reads one line from the trace information file and stores the data of the read line in a variable “message sender” secured on the RAM 42.

次に、ステップS413において、CPU41は、トレース情報ファイルから次行を1行読み込み、該読み込んだ行のデータを変数「メッセージ受信オブジェクト識別キー値」に格納する。   Next, in step S413, the CPU 41 reads the next line from the trace information file, and stores the data of the read line in the variable “message receiving object identification key value”.

次に、ステップS414において、CPU41は、ステップS311でセットした変数「メソッド名」の値,ステップS413でセットした変数「メッセージ受信オブジェクト識別キー値」の値の組み合わせに対応するメッセージ情報をマップ(図15(a))の後方より(新しい情報から)検索し、該検索されたメッセージ情報内の「メッセージ送信者」の値を、変数「メッセージ受信者」に格納し、ステップS409に進み、CPU41は、変数「メソッド名」の値,変数「メッセージ送信者」の値,変数「メッセージ受信者」の値を、モデル情報として、HD44内のモデル情報ファイル(図15(b))に追加して、ステップS410に進む。   Next, in step S414, the CPU 41 maps message information corresponding to the combination of the value of the variable “method name” set in step S311 and the value of the variable “message receiving object identification key value” set in step S413 (FIG. 15 (a)) from the back (from new information), the value of “message sender” in the searched message information is stored in the variable “message receiver”, the process proceeds to step S409, and the CPU 41 The value of the variable “method name”, the value of the variable “message sender”, and the value of the variable “message receiver” are added as model information to the model information file (FIG. 15B) in the HD 44, Proceed to step S410.

次に、ステップS410において、CPU41は、トレース情報ファイルに次の行が存在するか否かを判定し、存在すると判定した場合には、ステップS401の処理に戻る。   Next, in step S410, the CPU 41 determines whether or not the next line exists in the trace information file. If it is determined that the next line exists, the process returns to step S401.

一方、ステップS410で、CPU41が、トレース情報ファイルに次の行が存在しない(EOF)と判定した場合には、本フローチャートの処理を終了する。   On the other hand, if the CPU 41 determines in step S410 that the next line does not exist in the trace information file (EOF), the process of this flowchart ends.

図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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S501 to S511 denote steps.

まず、ステップS501において、CPU41は、描画開始位置の取得を行う。この描画開始位置はプログラム内でスタティックな値として保持するべきであり、予めDB45内やHD44内に記憶されるファイル等から読み込みRAM42内に保持しておく方法が考えられる。   First, in step S501, the CPU 41 acquires a drawing start position. This drawing start position should be held as a static value in the program, and a method of reading from a file stored in the DB 45 or HD 44 in advance and holding it in the RAM 42 is conceivable.

次に、ステップS502において、CPU41は、シーケンス図を構成する構成要素である、オブジェクト,メッセージ,活性区間の為の情報を取得している。これらの情報は描画開始位置の場合と同様に、DB45内やHD44内に記憶されるファイルなどから読み込む方法が考えられる。このステップS502において読み込んだ値は、RAM42内に保持されて以下のステップで、ダイアグラムの表示情報の算出に利用する事となる。   Next, in step S502, the CPU 41 obtains information for an object, a message, and an active section, which are constituent elements constituting the sequence diagram. As in the case of the drawing start position, such information can be read from a file or the like stored in the DB 45 or HD 44. The value read in step S502 is held in the RAM 42 and is used for calculation of diagram display information in the following steps.

ステップS503において、CPU41は、図3のステップS104(モデル情報の生成)によって得たモデル情報ファイル(図8(b)又は図15(b))より、シーケンス図に登場する全てのオブジェクト,メッセージの情報を取得する。ここで得た全てのオブジェクト,メッセージに対して、この後の処理で配置処理を行なう事でダイアグラムの表示情報の追加を実現している。なお、ここで得たオブジェクト,メッセージの情報は、プログラム内での出現順に整列されてRAM42内に保持される。   In step S503, the CPU 41 uses the model information file (FIG. 8 (b) or FIG. 15 (b)) obtained in step S104 (generation of model information) in FIG. Get information. The display information of the diagram is added by performing the arrangement process in the subsequent process for all the objects and messages obtained here. Note that the object and message information obtained here are arranged in the order of appearance in the program and held in the RAM 42.

次に、ステップS504において、CPU41は、ステップS503で取得した全オブジェクトから出現順に1つ取り出し、該オブジェクトに配置座標を設定する。詳細には、「描画開始位置+(順序×オブジェクトの配置間隔)」をRAM42内にオブジェクト毎に確保される変数「オブジェクトの配置座標」として設定する。   Next, in step S504, the CPU 41 extracts one of all objects acquired in step S503 in the order of appearance, and sets the arrangement coordinates for the object. Specifically, “drawing start position + (order × object arrangement interval)” is set as a variable “object arrangement coordinate” secured for each object in the RAM 42.

次に、ステップS505において、CPU41は、まだ配置していないオブジェクトが存在するか否かを判定し,存在すると判定した場合には、ステップS504の処理に戻り、次のオブジェクトの配置を行う。   Next, in step S505, the CPU 41 determines whether or not there is an object that has not yet been arranged. If it is determined that there is an object, the CPU 41 returns to the process of step S504 to arrange the next object.

一方、ステップS505で、CPU41が、もう配置していないオブジェクトが存在しない(全てのオブジェクトを配置した)と判定した場合には、ステップS506に進む。以上、ステップS504,S505により、対応プログラム内の出現順に沿った形で、シーケンス図上にオブジェクト(図11のSQ001,SQ002)を配置することができる。   On the other hand, if the CPU 41 determines in step S505 that there is no object that has not been arranged (all objects have been arranged), the process proceeds to step S506. As described above, the objects (SQ001 and SQ002 in FIG. 11) can be arranged on the sequence diagram in the form along the order of appearance in the corresponding program by steps S504 and S505.

次に、ステップS506において、CPU41は、ステップS504で設定した全オブジェクトの配置座標から出現順に1つ取り出し、該オブジェクトの配置座標に基づいて、対応するオブジェクトの活性区間の配置を行うための基準となる点(x,y)として、活性区間毎にRAM42上に確保される変数x,変数yを「変数x=(オブジェクトの配置座標X+オブジェクトの描画幅)/2」,「変数y=(オブジェクトの配置座標Y+オブジェクトの描画高さ)/2」のように設定する。   Next, in step S506, the CPU 41 extracts one from the arrangement coordinates of all the objects set in step S504 in the order of appearance, and uses the reference for arranging the active section of the corresponding object based on the arrangement coordinates of the object. As a point (x, y), a variable x and a variable y secured on the RAM 42 for each active section are represented by “variable x = (object arrangement coordinate X + object drawing width) / 2”, “variable y = (object The arrangement coordinates Y + the drawing height of the object / 2) ”.

次に、ステップS507において、CPU41は、対応するオブジェクトの持つ活性区間の配置を行っている。この活性区間は、例えば図11の802等であり、オブジェクトがメソッド(アクション)を実行している区間を表現している。   Next, in step S507, the CPU 41 arranges active sections of the corresponding object. This active section is, for example, 802 in FIG. 11 and represents a section in which the object is executing a method (action).

詳細には、活性区間毎に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 RAM 42 for each active section, “active section start point X = variable x” − (Active section width / 2) ”,“ active section start point Y = variable y + message arrangement interval ”),“ active section end point X = active section start point X + active section width ”,“ active section end point ” “Y = variable y + order of appearance of last transmitted / received message × message arrangement interval” is set.

なお、フローチャートには示していないが、活性区間を複数有するオブジェクトには、活性区間毎に変数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 CPU 41 determines whether or not there is an object for which an active section has not yet been arranged. If it is determined that there is an object, the process returns to step S506, and the active section of the next object is determined. Do the placement of.

一方、ステップS508で、CPU41が、もう活性区間を配置していないオブジェクトが存在しない(全てのオブジェクトの活性区間を配置した)と判定した場合には、ステップS509に進む。以上、ステップS506〜S508により、対応プログラム内の出現順に沿った形で、シーケンス図上に活性区間(図11の802)を配置することができる。   On the other hand, if the CPU 41 determines in step S508 that there is no object for which no active section has been placed (the active section of all objects has been placed), the process proceeds to step S509. As described above, by steps S506 to S508, the active section (802 in FIG. 11) can be arranged on the sequence diagram in a form along the order of appearance in the corresponding program.

次に、ステップS509において、CPU41は、ステップS503で取得した全メッセージから出現順に1つ取り出し、該メッセージに配置座標を設定する。詳細には、メッセージ毎にRAM42に確保されるメッセージ開始点X,メッセージ開始点Y,メッセージ終了点X,メッセージ終了点Yに対して、「メッセージ開始点X=メッセージ送信オブジェクトの活性区間開始点X+(活性区間の幅/2)」,「メッセージ開始点Y=変数y+メッセージの出現順序×メッセージの配置間隔」),「メッセージ終了点X=メッセージ受信オブジェクトの活性区間開始点X+(活性区間の幅/2)」,「メッセージ終了点Y=メッセージ開始点Y」を設定する。   Next, in step S509, the CPU 41 extracts one message in the order of appearance from all the messages acquired in step S503, and sets the arrangement coordinates in the message. Specifically, with respect to the message start point X, message start point Y, message end point X, and message end point Y secured in the RAM 42 for each message, “message start point X = active section start point X + of message transmission object” (Active section width / 2) "," message start point Y = variable y + message appearance order * message arrangement interval ")," message end point X = active section start point X + of message receiving object (active section width) / 2) "," message end point Y = message start point Y ".

次に、ステップS510において、CPU41は、まだ配置していないメッセージが存在するか否かを判定し,存在すると判定した場合には、ステップS509の処理に戻り、次のメッセージの配置を行う。   Next, in step S510, the CPU 41 determines whether or not there is a message that has not yet been arranged. If it is determined that there is a message, the CPU 41 returns to the process of step S509 and arranges the next message.

一方、ステップS510で、CPU41が、もう配置していないメッセージが存在しない(全てのメッセージを配置した)と判定した場合には、ステップS511に進む。以上、ステップS509,S510により、対応プログラム内の出現順に沿った形で、シーケンス図上にメッセージ(図11のS003,SQ004,SQ004)を配置することができる。   On the other hand, if the CPU 41 determines in step S510 that there is no message that has not been arranged (all messages have been arranged), the process proceeds to step S511. As described above, the messages (S003, SQ004, SQ004 in FIG. 11) can be arranged on the sequence diagram in the form along the order of appearance in the corresponding program by steps S509 and S510.

次に、ステップS511において、CPU41は、ステップS504〜S509を通して設定した各ダイアグラムの配置情報(各ダイアグラム(構成要素)の配置順,配置位置,配置サイズ等の情報(各ダイアグラム表示情報))をモデル情報ファイルに追加し、本ダイアグラムの表示情報の算出フローチャートを終了する。   Next, in step S511, the CPU 41 models the arrangement information of each diagram (information such as the arrangement order, arrangement position, and arrangement size of each diagram (component) (each diagram display information)) set through steps S504 to S509. The information is added to the information file, and the display information calculation flowchart of this diagram is terminated.

以下、図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 CPU 41 shown in FIG. 2 loading a program stored in the HD 44 or the like into the RAM 42 and executing it. In the figure, S601 to S605, S701 to S703 denote steps, and the same steps as those in FIG. 9 are denoted by the same step numbers.

図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 CPU 41 reads the model information file onto the RAM 42 and acquires all the display information of the diagram.

次に、ステップS702において、CPU41は、ステップS701で取得したダイアグラムの表示情報を1つ取り出し、ダイアグラムの表示情報に対応するXMIコード(図18のXMI01)を生成し、シーケンス情報ファイル(後述する図18)に出力する。   In step S702, the CPU 41 extracts one diagram display information acquired in step S701, generates an XMI code (XMI01 in FIG. 18) corresponding to the diagram display information, and generates a sequence information file (a diagram to be described later). 18).

なお、ステップ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 DB 45 in the HD 44 shown in FIG. XMI code) corresponding to the information read from the model information file and edited so as to correspond to the display information of each diagram (for example, edit the display position, start position, end position) ), An XMI code corresponding to the display position of the diagram read from the model information file is generated.

次に、ステップS703において、CPU41は、まだXMIコードを生成していないダイアグラムの表示情報が存在するか否かを判定し、存在すると判定した場合には、ステップS702に戻り、次のオブジェクトに対する処理を行う。   Next, in step S703, the CPU 41 determines whether there is display information of a diagram for which an XMI code has not yet been generated. If it is determined that the display information exists, the CPU 41 returns to step S702 and performs processing for the next object. I do.

一方、ステップS703で、CPU41が、もうXMIコードを生成していないダイアグラムの表示情報は存在しないと判定した場合には、本フローチャートの処理を終了する。   On the other hand, if the CPU 41 determines in step S703 that there is no display information of a diagram for which no XMI code has been generated, the process of this flowchart ends.

以下、上記図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, XM 101 is an element that defines one object in the sequence diagram. XM102 and XM103 indicate the drawing width and height of the object, respectively.

このように、シーケンス図を構成する全ての描画要素に対して、座標、幅、高さなどを設定する事で、さまざまなシーケンス図表示ツール間での表示を統一できる。   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 diagram display function 32 by setting the calculation of the display information of the diagram. All developers / users can obtain a common sequence diagram.

以上、各実施形態によれば、実際に実行されるプログラムのトレース状態からトレース情報をトレース情報生成機能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 information generation function 11 is output. The model information generation function 12 outputs information as model information that can be converted into sequence information, and the model information generated by the model information generation function 12 uses the meta language (in this embodiment, XMI). It is possible to visualize the actual execution process of the program as a sequence diagram by converting it into the sequence information that has been generated, and, as in the conventional method of generating a sequence diagram from the program source code, such as conditional branching The sequence does not become ambiguous from the point, and Efficiency of grayed work, such as pointing out the design of contradiction, it is possible to improve the development efficiency.

また、プログラムのソースコードが存在しない状況下(例えば、誤ってソースコードを消去してしまった等の状況下)であっても、プログラムのシーケンス図を作成することが可能となる。   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.

本発明の第1実施形態を示すシーケンス情報自動生成装置の機能構成を示す機能ブロック図である。It is a functional block diagram which shows the function structure of the sequence information automatic generation apparatus which shows 1st Embodiment of this invention. 本発明のシーケンス情報自動生成装置のハードウェア構成の一例を示すブロック図である。It is a block diagram which shows an example of the hardware constitutions of the sequence information automatic generation apparatus of this invention. 本発明のシーケンス情報自動生成装置における第1の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 1st control processing procedure in the sequence information automatic generation apparatus of this invention. シーケンス情報作成対象プログラムの情報を入力するためのユーザインタフェースの一例を示す模式図である。It is a schematic diagram which shows an example of the user interface for inputting the information of a sequence information creation object program. 本発明のシーケンス情報自動生成装置における第2の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 2nd control processing procedure in the sequence information automatic generation apparatus of this invention. 図4に示したトレース情報生成処理により生成され出力されたトレース情報ファイルの内容の一例を示す模式図である。FIG. 5 is a schematic diagram illustrating an example of contents of a trace information file generated and output by the trace information generation process illustrated in FIG. 4. 本発明のシーケンス情報自動生成装置における第3の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 3rd control processing procedure in the sequence information automatic generation apparatus of this invention. 図7に示したモデル情報生成処理により生成された情報の内容の一例を示す模式図である。It is a schematic diagram which shows an example of the content of the information produced | generated by the model information production | generation process shown in FIG. 本発明のシーケンス情報自動生成装置における第4の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 4th control processing procedure in the sequence information automatic generation apparatus of this invention. 図9に示したシーケンス情報の生成処理(図3のステップS105)で生成されるシーケンス情報の一例を示す模式図である。It is a schematic diagram which shows an example of the sequence information produced | generated by the production | generation process (step S105 of FIG. 3) of the sequence information shown in FIG. 図10に示したシーケンス情報ファイルに基づいて、図1の表示機能により表示装置に表示されるシーケンス図である。FIG. 11 is a sequence diagram displayed on the display device by the display function of FIG. 1 based on the sequence information file shown in FIG. 10. 図10に示したシーケンス情報内のXMI形式のコードと図11に示したシーケンス図との対応関係を示す図である。FIG. 12 is a diagram illustrating a correspondence relationship between codes in the XMI format in the sequence information illustrated in FIG. 10 and the sequence diagram illustrated in FIG. 11. 図4に示したトレース情報生成処理により生成され出力されたトレース情報ファイルの内容の一例を示す模式図である。FIG. 5 is a schematic diagram illustrating an example of contents of a trace information file generated and output by the trace information generation process illustrated in FIG. 4. 本発明のシーケンス情報自動生成装置における第5の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 5th control processing procedure in the sequence information automatic generation apparatus of this invention. 図14に示したマルチスレッド構成のプログラムに対応したモデル情報生成処理により生成された情報の内容の一例を示す模式図である。It is a schematic diagram which shows an example of the content of the information produced | generated by the model information production | generation process corresponding to the program of the multithread structure shown in FIG. 本発明のシーケンス情報自動生成装置における第6の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 6th control processing procedure in the sequence information automatic generation apparatus of this invention. 本発明のシーケンス情報自動生成装置における第7の制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the 7th control processing procedure in the sequence information automatic generation apparatus of this invention. 本発明の第3実施形態において生成されるシーケンス情報ファイルの一例を示す図である。It is a figure which shows an example of the sequence information file produced | generated in 3rd Embodiment of this invention. 本発明に係るシーケンス情報作成装置で読み取り(読み出し)可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。It is a figure explaining the memory map of the recording medium (storage medium) which stores the various data processing program which can be read (read) with the sequence information creation apparatus which concerns on this invention.

符号の説明Explanation of symbols

10 プログラム実行監視機能
11 トレース情報生成機能
12 モデル情報生成機能
13 シーケンス情報出力機能
21 トレース情報格納部
22 モデル情報格納部
23 シーケンス情報格納部
31 入力機能
32 シーケンス図表示機能
41 CPU
42 RAM
43 ROM
44 HD
45 DB
46 表示装置
47 入力装置
DESCRIPTION OF SYMBOLS 10 Program execution monitoring function 11 Trace information generation function 12 Model information generation function 13 Sequence information output function 21 Trace information storage part 22 Model information storage part 23 Sequence information storage part 31 Input function 32 Sequence diagram display function 41 CPU
42 RAM
43 ROM
44 HD
45 DB
46 Display device 47 Input device

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:
前記トレース情報生成手段は、プログラムの実行状態を監視するプログラム実行環境より、メソッドの開始,終了の情報を時系列に沿って取得して出力することを特徴とする請求項1記載のシーケンス情報生成装置。   The sequence information generation unit according to claim 1, wherein the trace information generation unit acquires and outputs method start and end information in a time series from a program execution environment for monitoring a program execution state. apparatus. 前記シーケンス情報生成手段は、前記トレース情報生成手段により生成されたトレース情報を、シーケンス情報に変換可能な、メソッド名,該メソッドに対応するメッセージ送信オブジェクトを示す情報,該メソッドに対応するメッセージ受信オブジェクトの情報が時系列に追加された構成のモデル情報として生成し、該生成されるモデル情報を所定のメタ言語を用いたシーケンス情報に変換することを特徴とする請求項1又は2記載のシーケンス情報生成装置。   The sequence information generation means is capable of converting the trace information generated by the trace information generation means into sequence information, information indicating a method name, a message transmission object corresponding to the method, and a message reception object corresponding to the method The sequence information according to claim 1 or 2, wherein the information is generated as model information having a configuration added in time series, and the generated model information is converted into sequence information using a predetermined meta language. Generator. 前記トレース情報生成手段は、実行されるマルチスレッド構成のプログラムの実行状態をトレースして前記マルチスレッド構成のプログラムのトレース情報を生成可能なことを特徴とする請求項1〜3のいずれかに記載のシーケンス情報生成装置。   The trace information generation unit can generate trace information of the multi-threaded program by tracing the execution state of the multi-threaded program to be executed. Sequence information generation device. 前記シーケンス情報生成手段により生成されるシーケンス情報に基づいて、シーケンス図を生成するシーケンス図生成手段を設けたことを特徴とする請求項1〜4のいずれかに記載のシーケンス情報生成装置。   5. The sequence information generating apparatus according to claim 1, further comprising sequence diagram generating means for generating a sequence diagram based on the sequence information generated by the sequence information generating means. 前記シーケンス情報生成手段は、前記トレース情報生成手段により生成されたトレース情報に基づいて、前記シーケンス図生成手段により生成されるシーケンス図の各構成要素の配置情報を含んだシーケンス情報を生成することを特徴とする請求項1〜5記載のシーケンス情報生成装置。   The sequence information generation unit generates sequence information including arrangement information of each component of the sequence diagram generated by the sequence diagram generation unit based on the trace information generated by the trace information generation unit. 6. The sequence information generating apparatus according to claim 1, wherein プログラムを実行可能な情報処理装置におけるシーケンス情報生成方法において、
実行されるプログラムをトレースして前記プログラム実行時のトレース情報を生成するトレース情報生成ステップと、
前記トレース情報生成ステップにより生成されたトレース情報に基づいて、前記プログラムのシーケンス情報を生成するシーケンス情報生成ステップと、
を有することを特徴とするシーケンス情報生成方法。
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:
請求項7に記載されたシーケンス情報生成方法を実行するためのプログラム。   A program for executing the sequence information generation method according to claim 7. 請求項7に記載されたシーケンス情報生成方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。   A recording medium storing a computer-readable program for executing the sequence information generating method according to claim 7.
JP2004194461A 2004-06-30 2004-06-30 Sequence information generation system, sequence information generation method, program, and recording medium Pending JP2006018477A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP2014164560A (en) Dynamic manual creation device and method therefor and computer program
CN112905441A (en) Test case generation method, test method, device and equipment
Saini et al. Towards web collaborative modelling for the user requirements notation using eclipse che and theia ide
JP2008142788A (en) Operation program preparation supporting method and operation program preparing device
JP2006018477A (en) Sequence information generation system, sequence information generation method, program, and recording medium
CN102147797A (en) Method and device for managing element files in content management system
CN104267935A (en) Code conversion method and device
JP4629183B2 (en) Requirement specification description support apparatus and method, and recording medium
CN115617333A (en) Data updating method and device, electronic equipment and storage medium
CN112346736A (en) Data processing method and system
JP2006293436A (en) Program code generation device and generation method
CN113204381A (en) Instruction file generation method, instruction file generation device, machine equipment and storage medium
CN114398290B (en) Program debugging method, device, equipment and medium
JP2002116911A (en) Automatic generation device for object-oriented program
JP2009251666A (en) Change history preparation apparatus, method, and program
JPWO2006046664A1 (en) Time sharing management device, document creation device, document browsing device, time sharing management method, document creation method, and document browsing method
JP2020091766A (en) Electronic computer, method, and program
JP2007164630A (en) Information processor, control method, program and storage medium
JP2012150740A (en) Program generating device and method
JP2008305003A (en) Method and system for verifying operation of program performing multi-task communication
JP2004054378A (en) Message information display, displaying method and its system
JP2009098751A (en) Coding support device
JP2008282231A (en) Information asset management 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