Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5774468B2 - State transition table generator - Google Patents
[go: Go Back, main page]

JP5774468B2 - State transition table generator - Google Patents

State transition table generator Download PDF

Info

Publication number
JP5774468B2
JP5774468B2 JP2011287991A JP2011287991A JP5774468B2 JP 5774468 B2 JP5774468 B2 JP 5774468B2 JP 2011287991 A JP2011287991 A JP 2011287991A JP 2011287991 A JP2011287991 A JP 2011287991A JP 5774468 B2 JP5774468 B2 JP 5774468B2
Authority
JP
Japan
Prior art keywords
state
record
event
definition record
column
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.)
Expired - Fee Related
Application number
JP2011287991A
Other languages
Japanese (ja)
Other versions
JP2013137639A (en
Inventor
由香里 村田
由香里 村田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011287991A priority Critical patent/JP5774468B2/en
Publication of JP2013137639A publication Critical patent/JP2013137639A/en
Application granted granted Critical
Publication of JP5774468B2 publication Critical patent/JP5774468B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本明細書に記載の実施の形態は、状態遷移表生成装置に関する。   Embodiments described herein relate to a state transition table generation device.

近年ソフトウェアが複雑化してきたことで、これまで以上に仕様の誤りが混入し易くなり、また人の手では仕様を網羅した検証が困難になってきている状況にある。その解決法として、形式的手法の一つであるモデル検査が着目され、モデル検査の実適用も進んでおり、人の手では発見しづらい不適合事例を発見し効果を上げている。   In recent years, as software has become more complex, it is easier to introduce specification errors than ever before, and it is becoming difficult for humans to verify the specifications. As a solution, model checking, which is one of the formal methods, has attracted attention, and practical application of model checking is also progressing, and non-conforming cases that are difficult to detect by human hands have been found and are effective.

但し、上記モデル検査を実行する装置であるモデル検査器を利用するためには、専門的スキルやノウハウが必要となる。このため、モデル検査をより効率的に導入し易くするために、状態遷移図、状態遷移表、フローチャート等の仕様書からモデル検査器特有の言語を自動生成し、検査できるような支援ツールが開発されている。   However, in order to use the model checker, which is a device that performs the model check, specialized skills and know-how are required. Therefore, in order to facilitate the introduction of model checking more efficiently, a support tool has been developed that can automatically generate and check a model checker-specific language from specifications such as state transition diagrams, state transition tables, and flowcharts. Has been.

特開2007−11605号公報JP 2007-11605 A 特開2008−198103号公報JP 2008-198103 A

従来の支援ツールでは、入力情報として特定の表現(図又は仕様情報)のみをサポートしている。従って利用する支援ツールがどのような形式の入力仕様をサポートしているかによって、利用制限がかかってしまう。例えば、仕様を主にフローチャートで記述している場合は、状態遷移図/状態遷移表ベースの支援ソフトは利用できないという問題点があった。   Conventional support tools support only specific expressions (figure or specification information) as input information. Therefore, usage restrictions are imposed depending on what type of input specification is supported by the support tool to be used. For example, when the specifications are mainly described in a flowchart, there is a problem that support software based on a state transition diagram / state transition table cannot be used.

本発明の目的は、フローチャートのような時系列の順序形式で記述された仕様書に対応する状態遷移表を作成するが、当該状態遷移表を用いたモデル検査を行った結果がフローチャートとの対応関係を維持し、仕様の誤りを容易に発見することを可能とする点にある。   An object of the present invention is to create a state transition table corresponding to a specification described in a time-series order format such as a flowchart. The result of model checking using the state transition table corresponds to the flowchart. It is in the point that it is possible to maintain the relationship and easily find a specification error.

一の実施の形態によれば、状態遷移表生成装置が提案される。この状態遷移表生成装置は、第1の生成手段と、第2の生成手段とを有する。
第1の生成手段は、入出力順序系列仕様を表すデータにおける条件分岐と処理に、イベント及びアクションを特定する情報を付し、分岐の無い一本のパスにアクション実行パス状態を特定する情報を付し、一つのアクション実行パス状態について一つのレコードを有し、各レコードはイベント、前イベント、アクション系列を有する情報である状態定義レコード表を生成する。
According to one embodiment, a state transition table generation device is proposed. This state transition table generation device has a first generation unit and a second generation unit.
The first generation means attaches information for specifying an event and an action to conditional branching and processing in data representing an input / output order series specification, and specifies information for specifying an action execution path state in a single path without branching. In addition, there is one record for one action execution path state, and each record generates a state definition record table which is information including an event, a previous event, and an action sequence.

第2の生成手段は、前記状態定義レコード表に基づいて、前記状態定義レコード表に含まれるアクション実行パス状態ごとに一つのレコードを有し、各レコードは、前記状態定義レコード表に含まれる各イベントに対応するフィールドを有する情報である状態遷移表を生成する。   The second generation means has one record for each action execution path state included in the state definition record table based on the state definition record table, and each record is included in each state definition record table. A state transition table that is information having fields corresponding to events is generated.

状態遷移表生成装置及び、この状態遷移表生成装置によって出力される状態遷移表を用いたモデル検査の流れを示した図The figure which showed the flow of the model check using the state transition table production | generation apparatus and the state transition table output by this state transition table production | generation apparatus 状態遷移表生成装置の構成例を示す機能ブロック図Functional block diagram showing a configuration example of the state transition table generation device 状態定義レコード表生成処理の例を示したフローチャートFlow chart showing an example of status definition record table generation processing 図3Aに続く状態定義レコード表生成処理の例を示したフローチャートThe flowchart which showed the example of the state definition record table production | generation process following FIG. 3A 状態定義レコード表の元となる入出力順序系列仕様であるフローチャートFlowchart that is the input / output sequence specification that is the source of the status definition record 図4の処理対象フローチャートから生成された状態定義レコード表の例を示した図The figure which showed the example of the state definition record table produced | generated from the process target flowchart of FIG. 状態遷移表生成処理の一例を示したフローチャートFlow chart showing an example of state transition table generation processing 本実施の形態の状態定義レコード表生成部が生成した状態定義レコード表の一例を示す図The figure which shows an example of the state definition record table which the state definition record table production | generation part of this Embodiment produced | generated 図17に示した状態遷移表を完成させる過程を示した図The figure which showed the process which completes the state transition table shown in FIG. 図8に続く、図17に示した状態遷移表を完成させる過程を示した図FIG. 8 is a diagram showing a process of completing the state transition table shown in FIG. 17 following FIG. 図9に続く、図17に示した状態遷移表を完成させる過程を示した図FIG. 9 is a diagram showing a process of completing the state transition table shown in FIG. 17 following FIG. 図10に続く、図17に示した状態遷移表を完成させる過程を示した図FIG. 10 is a diagram showing a process of completing the state transition table shown in FIG. 17 following FIG. 図11に続く、図17に示した状態遷移表を完成させる過程を示した図The figure which showed the process in which the state transition table shown in FIG. 17 is completed following FIG. 図12に続く、図17に示した状態遷移表を完成させる過程を示した図FIG. 12 is a diagram showing a process of completing the state transition table shown in FIG. 17 following FIG. 図13に続く、図17に示した状態遷移表を完成させる過程を示した図The figure which showed the process of completing the state transition table shown in FIG. 17 following FIG. 図14に続く、図17に示した状態遷移表を完成させる過程を示した図FIG. 14 is a diagram showing a process of completing the state transition table shown in FIG. 17 following FIG. 図15に続く、図17に示した状態遷移表を完成させる過程を示した図FIG. 15 is a diagram showing a process of completing the state transition table shown in FIG. 17 following FIG. 図7に示した状態定義レコード表に基づいて、本実施の形態の状態遷移表生成部が生成した状態遷移表の例を示す図The figure which shows the example of the state transition table which the state transition table production | generation part of this Embodiment produced | generated based on the state definition record table shown in FIG. 状態定義レコード表生成処理を実行することによって、図17のフローチャートから生成された状態定義レコード表の一例を示す図The figure which shows an example of the state definition record table produced | generated from the flowchart of FIG. 17 by performing a state definition record table production | generation process 状態遷移表生成処理によって図18の状態定義レコードから生成された状態遷移表の例を示す図The figure which shows the example of the state transition table produced | generated from the state definition record of FIG. 18 by the state transition table production | generation process 「イベント/アクション定義レコード」の一例を示した図Figure showing an example of "event / action definition record" 状態遷移表生成装置の入力となるソースコードの一例を示す図The figure which shows an example of the source code used as the input of the state transition table generation device 図21のソースコードにイベント及びアクションのラベルが付された状態を示す図The figure which shows the state where the label of the event and action was attached | subjected to the source code of FIG. 状態定義レコード表生成処理(図3参照)を実行した結果得られる状態定義レコード表の例を示す図The figure which shows the example of the state definition record table obtained as a result of executing the state definition record table generation processing (see FIG. 3) 図23に示した状態定義レコード表に基づいて、状態遷移表生成処理(図6参照)を実行した結果得られる状態遷移表の例を示す図The figure which shows the example of the state transition table obtained as a result of performing a state transition table production | generation process (refer FIG. 6) based on the state definition record table shown in FIG. 第2の実施の形態にかかる状態遷移表生成装置の構成例を示すブロック図The block diagram which shows the structural example of the state transition table production | generation apparatus concerning 2nd Embodiment 状態定義レコード生成部の動作である状態定義レコード生成処理の一例を示すフローチャートThe flowchart which shows an example of the state definition record production | generation process which is operation | movement of a state definition record production | generation part 図26に続くフローチャートFlowchart following FIG. 本具体例において上記状態定義レコード表の元となる入出力順序系列仕様であるフローチャートを示す図The figure which shows the flowchart which is the input / output order series specification which becomes the origin of the said state definition record table in this specific example 図28の処理対象フローチャートから生成された状態定義レコード表の例を示した図The figure which showed the example of the state definition record table produced | generated from the process target flowchart of FIG. 図29に示した状態定義レコード表のデータから生成された状態遷移表の例を示す図The figure which shows the example of the state transition table produced | generated from the data of the state definition record table shown in FIG. IPアドレスの割り当てを行う処理の例を示したシーケンス図Sequence diagram showing an example of processing for assigning IP addresses クライアントであるPC−1の処理フローチャートの例を示す図The figure which shows the example of the processing flowchart of PC-1 which is a client 状態名(アクション実行パス状態)が付された図32のフローチャートを示す図The figure which shows the flowchart of FIG. 32 to which the state name (action execution path state) was attached | subjected. フローチャート(入出力順序系列仕様10)から状態遷移表生成装置が生成した状態遷移表を状態遷移図に示した図A diagram showing the state transition table generated by the state transition table generating device from the flowchart (input / output sequence specification 10) in the state transition diagram DHCPサーバであるPC−3の処理フローチャートの例を示す図The figure which shows the example of the process flowchart of PC-3 which is a DHCP server. 状態名(アクション実行パス状態)が付された図35のフローチャートを示す図The figure which shows the flowchart of FIG. 35 to which the state name (action execution path state) was attached | subjected. 図32のフローチャート(入出力順序系列仕様10)から状態遷移表生成装置が生成した状態遷移表を状態遷移図に示した図The state transition table generated by the state transition table generating device from the flowchart (input / output order sequence specification 10) of FIG. 32 is shown in the state transition diagram.

以下、図面を参照して本発明の実施の形態に係る状態遷移表生成装置を説明する。
[第1の実施の形態]
Hereinafter, a state transition table generating device according to an embodiment of the present invention will be described with reference to the drawings.
[First embodiment]

図1は、第1の実施の形態にかかる状態遷移表生成装置及び、この状態遷移表生成装置によって出力される状態遷移表を用いたモデル検査の流れを示した図である。
モデル検査の実施を行うユーザ(或いはオペレータなど、以下同じ)は、まず入出力順序系列仕様を用意する。ここで、「入出力順序系列仕様」とは、時系列の順序形式で記述された仕様書をいい、例えばフローチャートなどである。
FIG. 1 is a diagram illustrating a flow of model checking using a state transition table generation device according to the first embodiment and a state transition table output by the state transition table generation device.
A user (or an operator, etc., who is the same hereinafter) who performs model checking first prepares an input / output order sequence specification. Here, the “input / output order sequence specification” refers to a specification written in a time-series order format, such as a flowchart.

ユーザは入出力順序系列仕様10を状態遷移表生成装置11に入力する。状態遷移表生成装置11は、入出力順序系列仕様10のデータを状態遷移表生成処理方法によって処理し、その処理結果として状態遷移表12を生成し、出力する。
ユーザは状態遷移表12に基づいて検査用コード13を作成するとともに、検査式14を作成する。ユーザは検査用コード13及び検査式14をモデル検査器15に入力する。
The user inputs the input / output order sequence specification 10 to the state transition table generation device 11. The state transition table generation device 11 processes the data of the input / output order sequence specification 10 by the state transition table generation processing method, and generates and outputs the state transition table 12 as the processing result.
The user creates a test code 13 based on the state transition table 12 and creates a test formula 14. The user inputs the inspection code 13 and the inspection formula 14 to the model checker 15.

モデル検査器15はモデル検査処理を実行し、反例16を出力する。ユーザは反例を解析することにより、問題点を発見し、検査用コード13を修正し、この修正済みの検査用コード13をモデル検査器15によってさらに検査し、問題点をつぶすように、検査用コード13の改善を行う。   The model checker 15 executes a model check process and outputs a counterexample 16. By analyzing the counterexample, the user finds a problem, corrects the inspection code 13, and further inspects the corrected inspection code 13 by the model inspector 15 so as to crush the problem. The code 13 is improved.

図2は、状態遷移表生成装置11の構成例を示す機能ブロック図である。なお、図2に示した各構成要素は、状態遷移表生成装置11を機能ごとのまとまりとしてとらえた要素であって、実際の状態遷移表生成装置11が各構成様相に相当するハードウエア(回路、モジュール、ユニットなど)を備えていることを必要とすることを示すものではない。   FIG. 2 is a functional block diagram illustrating a configuration example of the state transition table generation device 11. 2 are elements in which the state transition table generation device 11 is regarded as a group for each function, and the actual state transition table generation device 11 has hardware (circuitry) corresponding to each configuration aspect. , Modules, units, etc.) are not required.

状態遷移表生成装置11は、例えばコンピュータ、ワークステーションなどの情報処理装置によって実現される装置である。この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。   The state transition table generation device 11 is a device realized by an information processing device such as a computer or a workstation. The information processing apparatus includes an arithmetic processing unit (CPU), a main memory (RAM), a read-only memory (ROM), an input / output device (I / O), and, if necessary, an external storage device such as a hard disk device. It is a device.

状態遷移表生成装置11は、入出力順序系列仕様記憶部21と、本実施の形態のだ第の生成手段に相当する状態定義レコード表生成部22と、本実施の形態の第1の生成手段に相当する状態遷移表生成部23と、イベント/アクション定義レコード表生成部24とを有する。入出力順序系列仕様記憶部21は状態定義レコード表生成部22に接続されており、状態定義レコード表生成部22は状態遷移表生成部23に接続されており、イベント/アクション定義レコード表生成部24は状態遷移表生成部23に接続されている。ここで「接続されている」とは、データ、情報、命令などの授受が可能な状態になっていることをいい、配線で連結されているような物理的な接続に限られる意味ではない。   The state transition table generation device 11 includes an input / output order sequence specification storage unit 21, a state definition record table generation unit 22 corresponding to the first generation unit of the present embodiment, and a first generation unit of the present embodiment. A state transition table generation unit 23 corresponding to the above and an event / action definition record table generation unit 24. The input / output order sequence specification storage unit 21 is connected to the state definition record table generation unit 22, the state definition record table generation unit 22 is connected to the state transition table generation unit 23, and the event / action definition record table generation unit Reference numeral 24 denotes a state transition table generation unit 23. Here, “connected” means that data, information, instructions, etc. can be exchanged, and is not limited to physical connections such as being connected by wiring.

入出力順序系列仕様記憶部21は、ユーザによって入力された入出力順序系列仕様を記憶する機能を有する。入出力順序系列仕様は状態定義レコード表生成部22が読み取り可能な形式、フォーマットなどであればどのようなデータとして保存されていてもよい。   The input / output order sequence specification storage unit 21 has a function of storing input / output order sequence specifications input by the user. The input / output order sequence specification may be stored as any data as long as it can be read by the state definition record table generation unit 22.

状態定義レコード表生成部22は、入出力順序系列仕様を表すデータを入出力順序系列仕様記憶部21から受信し、後述する状態定義レコード表生成処理を実行することにより状態定義レコード表を表すデータを生成し、出力する機能を有する。   The state definition record table generation unit 22 receives data representing the input / output order sequence specification from the input / output order sequence specification storage unit 21, and executes the state definition record table generation process described later, thereby representing the state definition record table. Has the function of generating and outputting.

状態遷移表生成部23は、状態定義レコード表生成部22から状態定義レコード生成部22から状態定義レコード表を表すデータを受信し、後述する状態遷移表生成処理を実行することにより、状態遷移表を表すデータを生成し、出力する機能を有する。   The state transition table generation unit 23 receives data representing the state definition record table from the state definition record table generation unit 22 from the state definition record table generation unit 22, and executes a state transition table generation process to be described later. Has a function of generating and outputting data representing.

イベント/アクション定義レコード表生成部24は、入出力順序系列仕様に含まれるイベント、アクションに付したラベル(符号)と、当該ラベルの内容を示す文や単語とを対応付けしたデータであるイベント/アクション定義レコード表を生成し、記憶する機能を有する。   The event / action definition record table generation unit 24 is an event / data that is a data in which a label (code) attached to an event and an action included in the input / output order series specification is associated with a sentence or a word indicating the content of the label. It has a function to generate and store an action definition record table.

[状態定義レコード表生成処理]
以下に、図3A,図3Bを参照しながら状態定義レコード表生成処理の例を説明する。図3Aは、状態定義レコード表生成処理の例を示したフローチャート、図3Bは図3Aに続くフローチャートである。なお、本説明においては、入出力順序系列仕様10はフローチャートであるものとして説明する。
[Status definition record table generation processing]
Hereinafter, an example of the state definition record table generation process will be described with reference to FIGS. 3A and 3B. FIG. 3A is a flowchart showing an example of state definition record table generation processing, and FIG. 3B is a flowchart following FIG. 3A. In this description, the input / output order sequence specification 10 is described as a flowchart.

まず、状態定義レコード表生成部22は、フローチャートの条件分岐、処理の各要素にそれぞれイベントとアクションの番号付けをする(S10)。すなわち、条件分岐処理にはイベントの番号付けをし、アクション(通常処理)にはアクションの番号付けを行う。   First, the state definition record table generating unit 22 assigns an event and an action number to each element of conditional branching and processing in the flowchart (S10). That is, event numbering is performed for conditional branch processing, and action numbering is performed for actions (normal processing).

次に、状態定義レコード表生成部22は、状態定義レコード表を生成する。状態定義レコード表は、一つのアクション実行パス状態について一つのレコードを有し、各レコードは「イベント」、「前イベント」、「アクション系列」という3つのフィールドを有する情報である。状態定義レコード表生成部22は、フローチャートの最初の要素である「Start」を読み取ると、アクション実行パス状態欄に「State0」を格納し、且つそのイベント欄にイベント名「Start」と格納したレコードを状態定義レコード表に加える(S20)。   Next, the state definition record table generation unit 22 generates a state definition record table. The state definition record table has one record for one action execution path state, and each record is information having three fields of “event”, “previous event”, and “action series”. When the state definition record table generation unit 22 reads “Start” that is the first element of the flowchart, the state definition record table generation unit 22 stores “State0” in the action execution path state column and the event name “Start” in the event column. Is added to the state definition record table (S20).

次に、状態定義レコード表生成部22は、「終了(End)」以外の全ての要素を読み込み済みで且つ状態定義済みか否かを判定する(S30)。「終了(End)」以外の全ての要素を読み込み済みである場合には、状態定義レコード表生成部22は現在の状態数を含む状態名をアクション実行パス状態欄に格納し、且つイベント欄に「End」を格納した新たな状態定義レコードを生成し、状態定義レコード表に追加する(S110)。
次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(S120)。
一方、「終了(End)」以外の全ての要素を読み込み済みでない場合(S30、No)、状態定義レコード表生成部22は、フローチャートの連結部分から一要素を読み取る(S40)。
Next, the state definition record table generating unit 22 determines whether all elements other than “End” have been read and the state has been defined (S30). When all the elements other than “End” have been read, the state definition record table generation unit 22 stores the state name including the current number of states in the action execution path state column and also in the event column. A new state definition record storing “End” is generated and added to the state definition record table (S110).
Next, the state definition record table generation unit 22 registers an event of a record that defines a state immediately before the two records as an event before a registered or registered event (S120).
On the other hand, when all elements other than “End” have not been read (No in S30), the state definition record table generating unit 22 reads one element from the connected portion of the flowchart (S40).

次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(S50)。その要素が条件分岐ではないと判定した場合(S50,No)、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号(ラベルともいう)を状態定義レコード表に登録する(S60)。その後、先に述べたステップS30に戻り、処理を続行する。   Next, the state definition record table generating unit 22 determines whether or not the read element is a conditional branch (S50). When it is determined that the element is not a conditional branch (S50, No), the state definition record table generating unit 22 uses the element (processing) as an action for the event of the condition, and also reads the element number (also referred to as a label) of the element. ) Is registered in the state definition record table (S60). Then, it returns to step S30 mentioned above and continues a process.

一方、ステップS50においてその要素が条件分岐であると判定した場合(S50,Yes)、状態定義レコード表生成部22は、当該条件分岐によって生じる状態を定義する状態名を状態定義レコード表に登録する(S70)。ここで「状態」とは、アクション実行パスであって、ある条件分岐から次の条件分岐に至るまでのフローチャート上の経路(パス)に相当する。本例では状態名は「State[状態レコード数]」というフォーマットで記述するものとする。
なお、本例では、上記経路を状態として扱っているが、条件分岐ごと状態として扱っても実施可能である。この場合経路は状態の区別に関係しない。
On the other hand, when it is determined in step S50 that the element is a conditional branch (S50, Yes), the state definition record table generation unit 22 registers a state name that defines a state caused by the conditional branch in the state definition record table. (S70). Here, the “state” is an action execution path and corresponds to a path (path) on the flowchart from a certain conditional branch to the next conditional branch. In this example, the state name is described in the format “State [number of state records]”.
In this example, the above route is treated as a state, but it can be implemented even if each conditional branch is treated as a state. In this case, the route is not related to state distinction.

次に、状態定義レコード表生成部22は、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(S80)。その条件分岐がイベントとして状態定義レコード表に登録済みではないと判定した場合(S80、No)、状態定義レコード表生成部22は、状態定義レコード表に新たに状態定義レコードを2つ作成し、その条件分岐の「TRUE」に対応するイベントを一方のレコードのイベント欄に登録し、他方のレコードにその条件分岐の「FALSE」に対応するイベントを登録する(S90)。   Next, the state definition record table generation unit 22 determines whether or not the conditional branch has been registered in the state definition record table as an event (S80). When it is determined that the conditional branch has not been registered in the state definition record table as an event (S80, No), the state definition record table generation unit 22 creates two new state definition records in the state definition record table, The event corresponding to “TRUE” of the conditional branch is registered in the event field of one record, and the event corresponding to “FALSE” of the conditional branch is registered to the other record (S90).

次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(S100)。その後ステップS30に戻り、処理を続行する。   Next, the state definition record table generation unit 22 registers the event of the record that has defined the state immediately before the two records in the event before the registered or registered event (S100). Thereafter, the process returns to step S30 to continue the processing.

一方、ステップS80においてその条件分岐がイベントとして状態定義レコード表に登録済みであると判定した場合(S80,Yes)、状態定義レコード表生成部22は、ステップS90を行うこと無く、ステップS100を実行する。
以上で状態定義レコード表生成処理の説明を終了する。
On the other hand, if it is determined in step S80 that the conditional branch has already been registered in the state definition record table as an event (S80, Yes), the state definition record table generation unit 22 executes step S100 without performing step S90. To do.
This is the end of the description of the state definition record table generation process.

[具体例]
上記状態定義レコード表生成処理の具体例を示す。図4は、本具体例において上記状態定義レコード表の元となる入出力順序系列仕様10であるフローチャート(「処理対象フローチャート」と呼ぶ)である。図5は、図4の処理対象フローチャートから生成された状態定義レコード表の例を示した図である。以下、図3、図4、図5を参照しながら状態定義レコード表生成処理の具体例を説明する。
[Concrete example]
A specific example of the state definition record table generation process will be described. FIG. 4 is a flowchart (referred to as a “processing target flowchart”) that is the input / output order sequence specification 10 that is the basis of the state definition record table in this specific example. FIG. 5 is a diagram showing an example of a state definition record table generated from the process target flowchart of FIG. Hereinafter, a specific example of the state definition record table generation process will be described with reference to FIGS. 3, 4, and 5.

処理対象フローチャートの内容は以下の通りである。まず、初めに第1の条件分岐であるステップS101がある。条件分岐ステップS101の「True」に対応するアクションであるステップS102があり、ステップS102に続く別のアクションであるステップS102がある。また、条件分岐ステップS101の「False」に対応するアクションはステップS103である。   The contents of the processing target flowchart are as follows. First, there is step S101 which is the first conditional branch. There is step S102 which is an action corresponding to “True” in the conditional branch step S101, and there is step S102 which is another action following step S102. The action corresponding to “False” in the conditional branch step S101 is step S103.

ステップS103に続いて第2の条件分岐であるステップS104がある。条件分岐ステップS104の「True」に対応するアクションとしてアクションであるステップS105があり、ステップS105の後この処理対象フローチャートの処理は「End」に到達する。また、第2の条件分岐のステップS104の「False」に対応するのは、「End」となる。   Following step S103 is step S104, which is the second conditional branch. As an action corresponding to “True” in the conditional branching step S104, there is Step S105 which is an action. After Step S105, the processing of the processing target flowchart reaches “End”. Also, “End” corresponds to “False” in step S104 of the second conditional branch.

さて、この処理対象フローチャートに基づいて状態定義レコード表の作成処理を行う。まず、状態定義レコード表生成部22は、フローチャートの条件分岐、処理の各要素にそれぞれイベントとアクションの番号付けをする(図3、S10)。具体的には、第1の条件分岐S101にはイベント番号「E1」を付与し、第2の条件分岐S104にはイベント番号「E2」を付与する。また、アクションS102、S103、S104にはそれぞれアクション番号「A1」、「A2」、「A3」を付与する。   Now, a state definition record table creation process is performed based on this process target flowchart. First, the state definition record table generation unit 22 assigns an event and an action number to each element of conditional branching and processing in the flowchart (FIG. 3, S10). Specifically, an event number “E1” is assigned to the first conditional branch S101, and an event number “E2” is assigned to the second conditional branch S104. Action numbers “A1”, “A2”, and “A3” are assigned to actions S102, S103, and S104, respectively.

次に、状態定義レコード表生成部22は、状態定義レコード表を生成し、当該状態定義レコード表の第1のレコードとして、アクション実行パス状態欄に[State0]が格納され、イベント欄に[Start]が格納されたレコードを加える(図3、S20)。   Next, the state definition record table generation unit 22 generates a state definition record table, and [State0] is stored in the action execution path state column as the first record of the state definition record table, and [Start] ] Is stored (FIG. 3, S20).

次に、状態定義レコード表生成部22は、「終了(End)」以外の全ての要素を読み込み済みで且つ状態定義済みか否かを判定する(図3、S30)。この具体例では、まだいずれの要素も読み込んでいないので、判定は「No」としてステップS40に移行する。   Next, the state definition record table generation unit 22 determines whether all elements other than “End” have been read and the state has been defined (S30 in FIG. 3). In this specific example, since no element has been read yet, the determination is “No” and the process proceeds to step S40.

次に、状態定義レコード表生成部22は、処理対象フローチャートの連結部分から一要素を読み取る(図3、S40)。この例では処理対象フローチャートの要素「Start」を読み込む。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「Start」は条件分岐ではないと判定される(図3、S50、No)。
Next, the state definition record table generation unit 22 reads one element from the connected portion of the processing target flowchart (S40 in FIG. 3). In this example, the element “Start” of the processing target flowchart is read.
Next, the state definition record table generating unit 22 determines whether or not the read element is a conditional branch (FIG. 3, S50). In this example, it is determined that the element “Start” is not a conditional branch (FIG. 3, S50, No).

次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第1行の「アクション実行パス状態」欄に「State0」と記述し、同第1行の「イベント」欄に読み取った要素の要素番号である「Start」を記述する。   Next, the state definition record table generation unit 22 registers the element number of the read element in the state definition record table as an action for the event of the condition (process) (FIG. 3, S60). Specifically, “State0” is described in the “Action execution path status” field in the first line of the state definition record table shown in FIG. 5, and the element number of the element read in the “Event” field in the first line “Start” is described.

次に、状態定義レコード表生成部22は、ステップS30の判定後、処理対象フローチャートの連結部分から次の一要素を読み取る(図3、S40)。この例では処理対象フローチャートの要素「E1」を読み込む。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する。この例では要素「E1」は条件分岐であると判定される(図3、S50、Yes)。
Next, the state definition record table production | generation part 22 reads the next one element from the connection part of a process target flowchart after determination of step S30 (FIG. 3, S40). In this example, the element “E1” of the processing target flowchart is read.
Next, the state definition record table generation unit 22 determines whether the read element is a conditional branch. In this example, the element “E1” is determined to be a conditional branch (FIG. 3, S50, Yes).

次に、状態定義レコード表生成部22は、当該条件分岐によって生じる状態を定義する状態名を決定する(図3、S70)。この例では、状態定義レコード表生成部22は、条件分岐「E1」の「True」における経路(E1からA1,A2を経由してE2に至る経路)を状態名「State1」と定め、また条件分岐「E1」の「False」における経路(E1からA2を経由してE2に至る経路)を状態名「State2」と定める。   Next, the state definition record table generation unit 22 determines a state name that defines a state caused by the conditional branch (FIG. 3, S70). In this example, the state definition record table generation unit 22 determines a route (route from E1 to E2 via A1, A2) as the state name “State1” in “True” of the conditional branch “E1”. A path in “False” of the branch “E1” (path from E1 to E2 via A2) is defined as a state name “State2”.

次に、状態定義レコード表生成部22は、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図3、S80)。この例では、条件分岐「E1」は未だ状態定義レコード表に登録済みではないと判定し(図3、S80、No)、ステップS90に移行する。   Next, the state definition record table generation unit 22 determines whether or not the conditional branch has been registered in the state definition record table as an event (S80 in FIG. 3). In this example, it is determined that the conditional branch “E1” has not yet been registered in the state definition record table (FIG. 3, S80, No), and the process proceeds to step S90.

ステップS90において、状態定義レコード表生成部22は、状態定義レコード表に新たに状態定義レコードを2つ作成し、その条件分岐の「True」に対応するイベントを一方のレコードのイベント欄に登録し、他方のレコードにその条件分岐の「False」に対応するイベントを登録する。この例では、状態定義レコード表生成部22は、図5の状態定義レコード表において、第2行と第3行を作成し、第2行の「アクション実行パス状態」欄に「State1」を記述するとともに「イベント」欄に「E1[True]」を記述する。またさらに状態定義レコード表生成部22は、第3行の「アクション実行パス状態」欄に「State2」と記述するとともに「イベント」欄に「E1[False]」を記述する。   In step S90, the state definition record table generating unit 22 creates two new state definition records in the state definition record table, and registers an event corresponding to “True” in the conditional branch in the event field of one record. In the other record, an event corresponding to “False” of the conditional branch is registered. In this example, the state definition record table generation unit 22 creates the second row and the third row in the state definition record table of FIG. 5 and describes “State1” in the “action execution path state” column of the second row. In addition, describe “E1 [True]” in the “Event” column. Furthermore, the state definition record table generating unit 22 describes “State2” in the “action execution path state” field in the third row and “E1 [False]” in the “event” field.

次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図3、S100)。この例では、状態定義レコード表生成部22は、直前に登録したイベントである「E1[True]」(第2行)、「E1[False]」(第3行)に対応する「前イベント」欄に、直前に状態を定義したレコード(第1行)の「イベント」欄に記述されたイベント「Start」を記述する。   Next, the state definition record table generation unit 22 registers an event of a record that defines a state immediately before the two records as an event before a registered or registered event (FIG. 3, S100). In this example, the state definition record table generation unit 22 “previous event” corresponding to “E1 [True]” (second line) and “E1 [False]” (third line), which are the events registered immediately before. In the column, the event “Start” described in the “Event” column of the record (first line) in which the state has been defined immediately before is described.

次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、要素「E1」の次の要素「A1」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する。この例では要素「A1」は条件分岐ではないと判定される(図3、S50、No)。
Next, the state definition record table generating unit 22 returns to step S30 and then reads the element “A1” next to the element “E1” in step S40 (FIG. 3, S40).
Next, the state definition record table generation unit 22 determines whether the read element is a conditional branch. In this example, it is determined that the element “A1” is not a conditional branch (FIG. 3, S50, No).

次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第2行の「アクション系列」欄に「A1」と記述する。   Next, the state definition record table generation unit 22 registers the element number of the read element in the state definition record table as an action for the event of the condition (process) (FIG. 3, S60). Specifically, “A1” is described in the “action series” column of the second row of the state definition record table shown in FIG.

次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、要素「A1」の次の要素「A2」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「A2」は条件分岐ではないと判定される(図3、S50、No)。
Next, the state definition record table generating unit 22 returns to step S30, and then reads the element “A2” next to the element “A1” in step S40 (FIG. 3, S40).
Next, the state definition record table generating unit 22 determines whether or not the read element is a conditional branch (FIG. 3, S50). In this example, it is determined that the element “A2” is not a conditional branch (FIG. 3, S50, No).

次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第2行の「アクション系列」欄に「A2」を追加するように記述する。   Next, the state definition record table generation unit 22 registers the element number of the read element in the state definition record table as an action for the event of the condition (process) (FIG. 3, S60). Specifically, it is described so that “A2” is added to the “action series” column in the second row of the state definition record table shown in FIG.

次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、処理対象フローチャートにおける要素「A2」の次の要素「E2」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「E2」は条件分岐であると判定される(図3、S50、Yes)。
Next, the state definition record table generating unit 22 returns to step S30, and then reads the element “E2” next to the element “A2” in the process target flowchart in step S40 (FIG. 3, S40).
Next, the state definition record table generating unit 22 determines whether or not the read element is a conditional branch (FIG. 3, S50). In this example, the element “E2” is determined to be a conditional branch (FIG. 3, S50, Yes).

次に、状態定義レコード表生成部22は、当該条件分岐によって生じる状態を定義する状態名を決定する(S70)。この例では、状態定義レコード表生成部22は、条件分岐「E2」の「True」における経路(E2からA3を経由してEndに至る経路)を状態名「State3」と定め、また条件分岐「E2」の「False」における経路(E2からEndに至る経路)を状態名「State4」と定める。   Next, the state definition record table generation unit 22 determines a state name that defines a state caused by the conditional branch (S70). In this example, the state definition record table generating unit 22 defines a route in “True” of the conditional branch “E2” (a route from E2 to End via A3) as the state name “State3” and the conditional branch “E3”. A path (path from E2 to End) in “False” of “E2” is defined as a state name “State4”.

次に、状態定義レコード表生成部22は、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図3、S80)。この例では、条件分岐「E2」は未だ状態定義レコード表に登録済みではないと判定し(図3、S80、No)、ステップS90に移行する。   Next, the state definition record table generation unit 22 determines whether or not the conditional branch has been registered in the state definition record table as an event (S80 in FIG. 3). In this example, it is determined that the conditional branch “E2” has not yet been registered in the state definition record table (FIG. 3, S80, No), and the process proceeds to step S90.

ステップS90において、状態定義レコード表生成部22は、図5に示す状態定義レコード表に新たに状態定義レコードを2つ追加し、その条件分岐の「True」に対応するイベントを一方のレコードのイベント欄に登録し、他方のレコードにその条件分岐の「False」に対応するイベントを登録する。この例では、状態定義レコード表生成部22は、状態定義レコード表に第4行と第5行を作成し、第4行の「アクション実行パス状態」欄に「State3」を記述するとともに「イベント」欄に「E2[True]」を記述する。またさらに状態定義レコード表生成部22は、第5行の「アクション実行パス状態」欄に「State4」と記述するとともに「イベント」欄に「E2[False]」を記述する。   In step S90, the state definition record table generation unit 22 adds two new state definition records to the state definition record table shown in FIG. 5, and sets an event corresponding to “True” in the conditional branch as an event of one record. Register in the field and register the event corresponding to “False” of the conditional branch in the other record. In this example, the state definition record table generation unit 22 creates the fourth and fifth rows in the state definition record table, describes “State3” in the “action execution path state” column of the fourth row, and “event” "E2 [True]" is written in the "" column. Furthermore, the state definition record table generating unit 22 describes “State4” in the “action execution path state” column of the fifth line and “E2 [False]” in the “event” column.

次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図3、S100)。この例では、状態定義レコード表生成部22は、第4行及び第5行の登録の直前に登録したレコード(第2行、第3行に相当するレコード)のイベント欄に記述された「E1[True]」(第2行)及び「E1[False]」(第3行)を第4行、第5行の「前イベント」欄に記述する。   Next, the state definition record table generation unit 22 registers an event of a record that defines a state immediately before the two records as an event before a registered or registered event (FIG. 3, S100). In this example, the state definition record table generation unit 22 records “E1” described in the event column of the record (records corresponding to the second and third rows) registered immediately before the registration of the fourth and fifth rows. “True” ”(second line) and“ E1 [False] ”(third line) are described in the“ previous event ”column of the fourth and fifth lines.

次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、要素「E2」の次の要素「A3」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「A3」は条件分岐ではないと判定される(S50、No)。
Next, the state definition record table generating unit 22 returns to step S30 and then reads the element “A3” next to the element “E2” in step S40 (FIG. 3, S40).
Next, the state definition record table generating unit 22 determines whether or not the read element is a conditional branch (FIG. 3, S50). In this example, it is determined that the element “A3” is not a conditional branch (S50, No).

次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第4行の「アクション系列」欄に「A3」を記述する。   Next, the state definition record table generation unit 22 registers the element number of the read element in the state definition record table as an action for the event of the condition (process) (FIG. 3, S60). Specifically, “A3” is described in the “action series” column of the fourth row of the state definition record table shown in FIG.

次に、状態定義レコード表生成部22は、ステップS30に戻り終了(End)以外の全ての要素を読み込み済みか否かを判定する(S30)。この例では、状態定義レコード表生成部22は、終了(End)以外の全ての要素を読み込み済みであると判定し(S30、Yes)、図3BのステップS110に進む。   Next, the state definition record table generating unit 22 returns to step S30 and determines whether all elements other than the end (End) have been read (S30). In this example, the state definition record table generation unit 22 determines that all elements other than the end (End) have been read (S30, Yes), and proceeds to step S110 in FIG. 3B.

ステップS110において、状態定義レコード表生成部22は現在の状態数を含む状態名をアクション実行パス状態欄に格納し、且つイベント欄に「End」を格納した新たな状態定義レコードを生成し、状態定義レコード表に追加する(S110)。この例では、第6行のレコードに相当する。   In step S110, the state definition record table generation unit 22 stores a state name including the current number of states in the action execution path state column, and generates a new state definition record in which “End” is stored in the event column. It adds to the definition record table (S110). In this example, it corresponds to the record in the sixth row.

次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(S120)。この例では、状態定義レコード表生成部22は、第6行の登録の直前に登録したレコード(第4行、第5行に相当するレコード)のイベント欄に記述された「E2[True]」(第4行)及び「E2[False]」(第5行)を第6行の「前イベント」欄に記述する。図4に示したフローチャートに基づく状態定義レコード表が完成する。
以上で、状態定義レコード表生成処理の説明を終了する。
Next, the state definition record table generation unit 22 registers an event of a record that defines a state immediately before the two records as an event before a registered or registered event (S120). In this example, the state definition record table generation unit 22 “E2 [True]” described in the event column of the record (records corresponding to the fourth and fifth lines) registered immediately before the registration of the sixth line. (Fourth line) and “E2 [False]” (Fifth line) are described in the “Previous event” column of the sixth line. The state definition record table based on the flowchart shown in FIG. 4 is completed.
This is the end of the description of the state definition record table generation process.

[状態遷移表生成処理]
次に、状態定義レコード表から状態遷移表を生成する処理である、状態遷移表生成処理について説明する。図6は、状態遷移表生成処理の一例を示したフローチャートである。以下、このフローチャートを参照しながら状態遷移表生成処理について説明する。
[State transition table generation processing]
Next, state transition table generation processing, which is processing for generating a state transition table from a state definition record table, will be described. FIG. 6 is a flowchart illustrating an example of the state transition table generation process. Hereinafter, the state transition table generation process will be described with reference to this flowchart.

状態定義レコード表生成部22によって生成された状態定義レコード表を取得した状態遷移表生成部23は、状態定義レコード表の「アクション実行パス状態」欄に記述された内容を、状態遷移表の各行のインデックスとして状態遷移表に記述し、且つ状態定義レコード表の「イベント」欄に記述された内容を各列のインデックスとして状態遷移表に記述する(S201)。
次に、状態遷移表生成部23は、状態定義レコード表の最初の状態定義レコード(状態定義レコード表の第1行に相当する)を読み込む(S202)
The state transition table generation unit 23 that has acquired the state definition record table generated by the state definition record table generation unit 22 uses the contents described in the “action execution path state” column of the state definition record table for each row of the state transition table. In the state transition table, the contents described in the “event” column of the state definition record table are described in the state transition table as indexes of each column (S201).
Next, the state transition table generating unit 23 reads the first state definition record (corresponding to the first row of the state definition record table) of the state definition record table (S202).

次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての状態定義レコードを読み終えたか否かを判定する(S203)。全ての状態定義レコードを読み終えたと判定した場合(S203、Yes)、状態遷移表生成部23は、状態遷移表の空いているセルの全てに空欄であることを示す所定の情報、例えば記号「/」(スラッシュ)を書き込む(ステップS211)。このステップS211終了後、状態遷移表生成部23は状態遷移表生成処理を終了する。一方、ステップS203において全ての状態定義レコードを読み終えていないと判定した場合(S203、No)、状態遷移表生成部23は、現在処理している状態定義レコード(以下、「処理対象レコード」と呼ぶ)の「アクション実行パス状態」欄に記述されている情報が「State0」でないか否かを判定する(S204)。   Next, the state transition table generation unit 23 determines whether or not all the state definition records in the acquired state definition record table have been read (S203). When it is determined that all the state definition records have been read (S203, Yes), the state transition table generating unit 23 stores predetermined information indicating that all the empty cells in the state transition table are blank, for example, the symbol “ / "(Slash) is written (step S211). After step S211, the state transition table generation unit 23 ends the state transition table generation process. On the other hand, if it is determined in step S203 that all the state definition records have not been read (S203, No), the state transition table generation unit 23 determines that the state definition record currently being processed (hereinafter referred to as “processing target record”). It is determined whether or not the information described in the “action execution path state” column is “State 0” (S204).

ステップS204において処理対象レコードの「アクション実行パス状態」欄の記述が「State0」であると判定した場合(S204、No)、状態遷移表生成部23は次の状態定義レコードを処理対象レコードとする(S205)。その後ステップS203に戻る。   When it is determined in step S204 that the description in the “action execution path state” field of the processing target record is “State0” (No in S204), the state transition table generating unit 23 sets the next state definition record as the processing target record. (S205). Thereafter, the process returns to step S203.

一方、ステップS204において処理対象レコードの「アクション実行パス状態」が「State0」でないと判定した場合(S204、Yes)、状態遷移表生成部23は処理対象レコードを読み取る(S206)。   On the other hand, when it is determined in step S204 that the “action execution path state” of the processing target record is not “State0” (S204, Yes), the state transition table generating unit 23 reads the processing target record (S206).

状態遷移表生成部23はS206において読み取った処理対象レコードの「前イベント」欄に何らかのイベントが記述されているか否かを判定する(S207)。ステップS207において、「前イベント」欄に何のイベントも記述されていないと判定した場合(S207、No)、状態遷移表生成部23は、前イベントに対するアクション実行パス状態を「State0」に決定する(S208)。この「State0」は後述する「処理対象セル」を決定するための情報として用いられる。   The state transition table generation unit 23 determines whether any event is described in the “previous event” column of the processing target record read in S206 (S207). In step S207, when it is determined that no event is described in the “previous event” column (S207, No), the state transition table generation unit 23 determines the action execution path state for the previous event as “State0”. (S208). This “State 0” is used as information for determining a “processing target cell” to be described later.

ステップS208実行後、状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(S209)。より具体的には、状態遷移表生成部23は、状態定義レコード表の全ての状態定義レコードのうち、処理対象レコードの「前イベント」欄に記載されたイベントと同一のイベントを「イベント」欄に有する状態定義レコードを全て抽出する。この抽出された行を抽出レコードと呼ぶこととする。また、処理対象レコードにおいて「前イベント」欄に記載が無い場合は、状態遷移表における「Init」行を、処理対象セルを定めるための行とする。   After step S208 is executed, the state transition table generation unit 23 extracts a state definition record group having an action execution path state for the previous event from the state definition record table (S209). More specifically, the state transition table generation unit 23 selects the same event as the event described in the “previous event” column of the processing target record among all the state definition records in the state definition record table. Extract all the state definition records in This extracted line is called an extracted record. Further, when there is no description in the “previous event” column in the processing target record, the “Init” row in the state transition table is a row for defining the processing target cell.

次に、状態遷移表生成部23は、前イベントに対するアクション実行パス状態群に対するイベントの状態遷移先として、イベントに対するアクション実行パス状態を定義する(S210)。より具体的には、状態遷移表生成部23は、状態遷移表において、処理対象レコードにおける「前イベント」に記述されたイベントを「イベント」欄に有する状態定義レコードの「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となるセル(処理対象セルと呼ぶ)の状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込む。また、処理対象レコードの「アクション系列」欄にアクションの記述があれば、そのアクションを上記処理対象セルのアクション欄に書き込む。
ステップS210終了後、状態遷移表生成部23はステップS205に戻る。
Next, the state transition table generating unit 23 defines an action execution path state for the event as a state transition destination of the event for the action execution path state group for the previous event (S210). More specifically, the state transition table generating unit 23 includes, in the state transition table, the “action execution path state” field of the state definition record having the event described in the “previous event” in the processing target record in the “event” field. A cell (referred to as a processing target cell) that is an intersection of a row having an index that matches the action execution path state described in the column and a column having an index that matches the event described in the “event” column of the processing target record In the status column, the action execution path status described in the “action execution path status” column of the processing target record is written. If there is a description of an action in the “action series” column of the processing target record, the action is written in the action column of the processing target cell.
After step S210 is completed, the state transition table generation unit 23 returns to step S205.

一方、前述のステップS207において、「前イベント」欄にイベントが記述されていると判定した場合(S207、Yes)、状態遷移表生成部23は直ちにステップS209に進む。
以上で、状態遷移表作成処理の説明を終了する。
On the other hand, if it is determined in step S207 described above that an event is described in the “previous event” field (S207, Yes), the state transition table generation unit 23 immediately proceeds to step S209.
This is the end of the description of the state transition table creation process.

[状態遷移表作成処理の具体例]
次に、上述した状態遷移表作成処理について、具体例を挙げて説明する。図7は、本実施の形態の状態定義レコード表生成部22が生成した状態定義レコード表の一例を示す図であり、図17は図7に示した状態定義レコード表に基づいて、本実施の形態の状態遷移表生成部23が生成した状態遷移表の例を示す図である。また、図8から図16は図17に示した状態遷移表を完成させる過程を示した図である。以下、状態遷移表作成処理によりどのように図7に示した状態定義レコード表から図17に示した状態遷移表が生成されるかを図6から図17を参照しながら説明する。
[Specific example of state transition table creation processing]
Next, the state transition table creation process described above will be described with a specific example. FIG. 7 is a diagram illustrating an example of the state definition record table generated by the state definition record table generation unit 22 according to the present embodiment. FIG. 17 illustrates the present embodiment based on the state definition record table illustrated in FIG. It is a figure which shows the example of the state transition table which the state transition table production | generation part 23 of the form produced | generated. 8 to 16 are diagrams showing a process of completing the state transition table shown in FIG. In the following, how the state transition table shown in FIG. 17 is generated from the state definition record table shown in FIG. 7 by the state transition table creation processing will be described with reference to FIGS.

状態定義レコード表生成部22によって生成された状態定義レコード表を取得した状態遷移表生成部23は、図7の状態定義レコード表の「アクション実行パス状態」欄(最左列の各セル)に記述された内容である「State0」、「State1」、「State2」、「State3」、「State4」、「State5」及びこれらに加えて「Init」を、状態遷移表の最左列の各セルに記述し、また状態定義レコード表の「イベント」欄(左端から2番目の列の各セル)に記述された内容である「Start」、「E1[true]」、「E1[false]」、「E2[true]」、「E2[false]」、「End」を状態遷移表の最上行の各セルに各列のインデックスとして記述する(図6、S201参照)。   The state transition table generation unit 23 that has acquired the state definition record table generated by the state definition record table generation unit 22 displays the “action execution path state” column (each cell in the leftmost column) of the state definition record table of FIG. “State0”, “State1”, “State2”, “State3”, “State4”, “State5”, and “Init” in addition to these are described in each cell in the leftmost column of the state transition table. "Start", "E1 [true]", "E1 [false]", "Contents" described in the "Event" column (each cell in the second column from the left end) in the state definition record table “E2 [true]”, “E2 [false]”, and “End” are described as the index of each column in each cell in the top row of the state transition table (see S201 in FIG. 6).

次に、状態遷移表生成部23は、状態定義レコード表の第1行の状態定義レコードを読む(図6、S202)。第1行の状態定義レコードはこの時点での「処理対象レコード」となる。図8は、状態とイベントがインデックスとして記述される前の状態遷移表の例を示した図、図9は図8の状態遷移表に状態とイベントがインデックスとして記述された状態を示した図である。   Next, the state transition table generation unit 23 reads the state definition record in the first row of the state definition record table (S202 in FIG. 6). The state definition record in the first row is the “processing target record” at this point. 8 is a diagram illustrating an example of a state transition table before states and events are described as indexes, and FIG. 9 is a diagram illustrating a state in which states and events are described as indexes in the state transition table of FIG. is there.

次に、状態遷移表生成部23は、状態定義レコード表の全ての状態定義レコードを読み終えたか否かを判定する(図6、S203)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。   Next, the state transition table generation unit 23 determines whether all the state definition records in the state definition record table have been read (S203 in FIG. 6). In this specific example, the state transition table generation unit 23 determines that all rows have not been read (No in FIG. 6, S203).

次に状態遷移表生成部23は処理対象レコードの「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S204)。本具体例では、状態遷移表生成部23はステップS203において処理対象レコードにおける「アクション実行パス状態」欄のセルに記述された情報は「State0」であると判定し、ステップS205に進む(S204、No)。ここで、状態遷移表生成部23はアクション実行パス状態に「Init」が記載された行と、処理対象レコードの「イベント」欄に記載されたイベント「Start」に一致するインデックスを有する列との交点となるセル(処理対象セルと呼ぶ)の状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State0」を書き込む。 図10に、図9の状態の後上記処理で「State0」が書き込まれた状態の状態遷移表の例を示す。   Next, the state transition table generation unit 23 determines whether or not the information described in the “action execution path state” cell of the processing target record is “State 0” (FIG. 6, S204). In this specific example, the state transition table generation unit 23 determines that the information described in the cell in the “action execution path state” column in the processing target record in step S203 is “State0”, and proceeds to step S205 (S204, No). Here, the state transition table generating unit 23 includes a line in which “Init” is described in the action execution path state and a column having an index that matches the event “Start” described in the “event” column of the processing target record. The action execution path state “State0” described in the “action execution path state” column of the processing target record is written in the state column of the cell that is the intersection (referred to as the processing target cell). FIG. 10 shows an example of a state transition table in which “State 0” is written in the above process after the state of FIG.

[状態定義レコード表、第2行の処理]
ステップS205では、状態遷移表生成部23は状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図7の状態定義レコード表の第2行、「アクション実行パス状態」欄のセルが「State1」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, second row processing]
In step S205, the state transition table generating unit 23 sets the next record in the state definition record table as a process target record (S205 in FIG. 6). In this specific example, the state definition record whose cell in the “Action Execution Path State” column in the second row of the state definition record table of FIG. 7 is “State1” is determined as a new process target record.

次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。   Next, the state transition table generation unit 23 determines whether or not all the rows (records) in the acquired state definition record table have been read (S203 in FIG. 6). In this specific example, the state transition table generation unit 23 determines that all rows have not been read (No in FIG. 6, S203).

次に状態遷移表生成部23は状態定義レコード表の処理対象レコードの「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」のセルは「State1」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第2行、「アクション実行パス状態」欄のセルが「State1」である状態定義レコードが読み取られる。   Next, the state transition table generation unit 23 determines whether or not the information described in the “action execution path state” cell of the processing target record in the state definition record table is “State0” (FIG. 6, S203). In this specific example, since the “action execution path state” cell of the processing target record is “State 1”, the process proceeds to step S206. In step S206, the state transition table generating unit 23 reads the processing target record. In this specific example, a state definition record in which the cell in the “action execution path state” column in the second row of the state definition record table is “State1” is read.

次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(図6、S207)。本具体例では、状態定義レコード表の第2行の「前イベント」欄には、イベント「Start」の記述があるので、ステップS209へと進む。   Next, the state transition table generation unit 23 determines whether there is an event described in the “previous event” column in the processing target record (S207 in FIG. 6). In this specific example, since there is a description of the event “Start” in the “previous event” column in the second row of the state definition record table, the process proceeds to step S209.

状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(図6、S209)。抽出されたレコード群を「抽出レコード群」と呼ぶこととする。本具体例では、状態定義レコード表においてイベント「Start」が「イベント」欄に記述されている状態定義レコードが抽出され、抽出レコード群は第1行の状態定義レコードのみである。   The state transition table generation unit 23 extracts a state definition record group having an action execution path state for the previous event from the state definition record table (S209 in FIG. 6). The extracted record group is called an “extracted record group”. In this specific example, the state definition record in which the event “Start” is described in the “event” column in the state definition record table is extracted, and the extracted record group is only the state definition record in the first row.

次に、状態遷移表生成部23は、状態遷移表において、抽出レコード群の「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となるセル(処理対象セルと呼ぶ)の状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込む(図6、S210)のであるが、抽出レコードである第1行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State0」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E1[True]」である。よって、状態遷移表における処理対象セルは、「State0」をインデックスとする第2行と、「E1[True]」をインデックスとする左端から第2列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State1」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクション「A1,A2」を上記処理対象セルのアクション欄(セル内下側)に書き込む(図6、S210参照)。状態「State1」及びアクション「A1,A2」が処理対象セルに書き込まれた状態の状態遷移表の例を図11に示す。   Next, the state transition table generation unit 23 creates a row having an index that matches the action execution path state described in the “action execution path state” column of the extracted record group in the state transition table, and “event” of the processing target record. The action execution described in the “action execution path status” column of the processing target record in the status column of the cell (referred to as the processing target cell) that intersects with the column having the index matching the event described in the “” column Although the path state is written (S210 in FIG. 6), the action execution path state described in the “action execution path state” column of the first line which is the extracted record is “State0”. Further, the event described in the “event” column of the processing target record is “E1 [True]”. Therefore, the processing target cell in the state transition table is determined to be a cell that is the intersection of the second row with “State 0” as an index and the second column from the left end with “E1 [True]” as an index. The state transition table generation unit 23 writes the action execution path state “State1” described in the “action execution path state” field of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 sets the action “A1, A2” described in the “action series” column of the processing target record in the action column (lower side of the cell) of the processing target cell. Write to (lower side in the cell) (see S210 in FIG. 6). FIG. 11 shows an example of a state transition table in which the state “State1” and the actions “A1, A2” are written in the processing target cell.

[状態定義レコード表、第3行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の第3行、「アクション実行パス状態」欄のセルが「State2」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, third row processing]
Next, the state transition table generation unit 23 proceeds to step S205, and sets the next record in the state definition record table as a process target record (FIG. 6, S205). In this specific example, the state definition record in which the cell in the “action execution path state” column in the third row of the state definition record table of FIG. 5 is “State2” is determined as a new processing target record.

次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(S203、No)。   Next, the state transition table generation unit 23 determines whether or not all the rows (records) in the acquired state definition record table have been read (S203 in FIG. 6). In this specific example, the state transition table generation unit 23 determines that all rows have not been read (S203, No).

次に状態遷移表生成部23は状態定義レコード表の処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State2」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第3行、「アクション実行パス状態」欄のセルが「State2」である状態定義レコードが読み取られる。   Next, the state transition table generation unit 23 determines whether or not the information described in the cell of the process target record “action execution path state” in the state definition record table is “State 0” (FIG. 6, S203). In this specific example, the description in the “action execution path state” column of the processing target record is “State2”, and thus the process proceeds to step S206. In step S206, the state transition table generating unit 23 reads the processing target record. In this specific example, the state definition record in which the cell in the “action execution path state” column in the third row of the state definition record table is “State2” is read.

次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(S207)。本具体例では、状態定義レコード表の第3行の「前イベント」欄には、イベント「Start」の記述があるので、ステップS209へと進む。   Next, the state transition table generation unit 23 determines whether there is an event described in the “previous event” column in the processing target record (S207). In this specific example, since there is a description of the event “Start” in the “previous event” column in the third row of the state definition record table, the process proceeds to step S209.

状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(図6、S209)。本具体例では、状態定義レコード表においてイベント「Start」が「イベント」欄に記述されている状態定義レコードが抽出レコード群として抽出され、抽出レコード群は第1行の状態定義レコードのみである。   The state transition table generation unit 23 extracts a state definition record group having an action execution path state for the previous event from the state definition record table (S209 in FIG. 6). In this specific example, the state definition record in which the event “Start” is described in the “event” column in the state definition record table is extracted as an extracted record group, and the extracted record group is only the state definition record in the first row.

次に、状態遷移表生成部23は、状態遷移表において、抽出レコード群の「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(S210参照)。本具体例では、抽出レコード群は状態定義レコード表の第1行のみであり、その第1行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State0」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E1[False]」である。よって、状態遷移表における処理対象セルは、「State0」をインデックスとする第2行と、「E1[False]」をインデックスとする左端から第3列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State2」を書き込む。状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄は空欄であるので、上記処理対象セルのアクション欄は空欄のままとなる。(S210参照)。処理対象セルに上記「State2」が記述され、アクション欄は空欄のままとされた状態の状態遷移表の例を図12に示す。   Next, the state transition table generation unit 23 creates a row having an index that matches the action execution path state described in the “action execution path state” column of the extracted record group in the state transition table, and “event” of the processing target record. The action execution path state described in the “action execution path state” column of the processing target record is written in the state column of the processing target cell that is the intersection with the column having the index matching the event described in the “ In the action column of the processing target cell, the action described in the “action series” column of the processing target record is described (see S210). In this specific example, the extracted record group is only the first row of the state definition record table, and the action execution path state described in the “action execution path state” column of the first row is “State 0”. In addition, the event described in the “event” column of the processing target record is “E1 [False]”. Therefore, the processing target cell in the state transition table is determined to be a cell that is the intersection of the second row having “State 0” as an index and the third column from the left end having “E1 [False]” as an index. The state transition table generation unit 23 writes the action execution path state “State2” described in the “action execution path state” field of the processing target record in the state column (upper side of the cell) of the processing target cell. The state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since the processing target record “action series” column is blank, the action column of the processing target cell remains blank. (See S210). FIG. 12 shows an example of a state transition table in which “State2” is described in the processing target cell and the action column is left blank.

[状態定義レコード表、第4行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の第4行、「アクション実行パス状態」欄のセルが「State3」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, 4th line]
Next, the state transition table generation unit 23 proceeds to step S205, and sets the next record in the state definition record table as a process target record (FIG. 6, S205). In this specific example, the state definition record in which the cell in the “action execution path state” column in the fourth row of the state definition record table of FIG. 5 is “State3” is determined as a new processing target record.

次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203参照)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。   Next, the state transition table generating unit 23 determines whether or not all the rows (records) of the acquired state definition record table have been read (see S203 in FIG. 6). In this specific example, the state transition table generation unit 23 determines that all rows have not been read (No in FIG. 6, S203).

次に状態遷移表生成部23は処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State3」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第4行、「アクション実行パス状態」欄のセルが「State3」である状態定義レコードが読み取られる。   Next, the state transition table generation unit 23 determines whether the information described in the cell of the processing target record “action execution path state” is not “State0” (S203 in FIG. 6). In this specific example, since the description in the “action execution path state” column of the processing target record is “State3”, the process proceeds to step S206. In step S206, the state transition table generating unit 23 reads the processing target record. In this specific example, a state definition record in which the cell in the “action execution path state” column in the fourth row of the state definition record table is “State3” is read.

次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(図6、S207)。本具体例では、状態定義レコード表の第4行の「前イベント」欄には、イベント「E1[True]」及び「E1[False]」の記述があるので、ステップS209へと進む。   Next, the state transition table generation unit 23 determines whether there is an event described in the “previous event” column in the processing target record (S207 in FIG. 6). In this specific example, since the events “E1 [True]” and “E1 [False]” are described in the “previous event” column in the fourth row of the state definition record table, the process proceeds to step S209.

状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(S209参照)。本具体例では、状態定義レコード表においてイベント「E1[True]」及び「E1[False]」が「イベント」欄に記述されている状態定義レコードが抽出され、抽出レコードは「E1[True]」について第2行の状態定義レコードのみ、「E1[False]」について第3行の状態定義レコードのみである。   The state transition table generation unit 23 extracts a state definition record group having an action execution path state for the previous event from the state definition record table (see S209). In this specific example, the state definition record in which the events “E1 [True]” and “E1 [False]” are described in the “event” column in the state definition record table is extracted, and the extracted record is “E1 [True]”. Only the state definition record in the second row for “E1 [False]” is only the state definition record in the third row.

次に、状態遷移表生成部23は、状態遷移表において、抽出レコード群の「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(図6、S210参照)。   Next, the state transition table generation unit 23 creates a row having an index that matches the action execution path state described in the “action execution path state” column of the extracted record group in the state transition table, and “event” of the processing target record. The action execution path state described in the “action execution path state” column of the processing target record is written in the state column of the processing target cell that is the intersection with the column having the index matching the event described in the “ In the action column of the processing target cell, the action described in the “action series” column of the processing target record is described (see S210 in FIG. 6).

状態定義レコード表において「E1[True]」についての抽出レコード群は第2行のみであり、その第2行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State1」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E2[True]」である。よって、状態遷移表における処理対象セルは、「State1」をインデックスとする第3行と、「E2[True]」をインデックスとする左端から第4列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State3」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄にはアクション「A3」が記述されているので、上記処理対象セルのアクション欄に「A3」を記述する。(S210参照)。   In the state definition record table, the extracted record group for “E1 [True]” is only the second row, and the action execution path state described in the “action execution path state” column of the second row is “State1”. is there. Further, the event described in the “event” column of the processing target record is “E2 [True]”. Therefore, the processing target cell in the state transition table is determined as a cell that is the intersection of the third row with “State1” as an index and the fourth column from the left end with “E2 [True]” as an index. The state transition table generation unit 23 writes the action execution path state “State3” described in the “action execution path state” field of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since the action “A3” is described in the processing target record “action series” column, “A3” is described in the action column of the processing target cell. (See S210).

次に、もう一つのイベントである「E1[False]」についての抽出レコード群の処理に付いて述べる。状態定義レコード表において「E1[False]」についての抽出レコードは第3行のみであり、その第3行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State2」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E2[True]」である。よって、状態遷移表における処理対象セルは、「State2」をインデックスとする第4行と、「E2[True]」をインデックスとする左端から第4列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State3」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄にはアクションが記述されていないので、上記処理対象セルのアクション欄には何も書き込まれない。(S210参照)。上記状態定義レコード表、第4行の処理が終了した時点の状態遷移表の状態を図13に示す。   Next, processing of the extracted record group for another event “E1 [False]” will be described. In the state definition record table, the extracted record for “E1 [False]” is only the third row, and the action execution path state described in the “action execution path state” column of the third row is “State2”. . Further, the event described in the “event” column of the processing target record is “E2 [True]”. Therefore, the processing target cell in the state transition table is determined as the cell that is the intersection of the fourth row with “State2” as an index and the left column with “E2 [True]” as an index. The state transition table generation unit 23 writes the action execution path state “State3” described in the “action execution path state” field of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since no action is described in the “action series” column of the processing target record, nothing is written in the action column of the processing target cell. (See S210). FIG. 13 shows the state of the state definition record table and the state transition table at the time when the processing of the fourth row is completed.

[状態定義レコード表、第5行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の第5行、「アクション実行パス状態」欄のセルが「State4」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, 5th line]
Next, the state transition table generation unit 23 proceeds to step S205, and sets the next record in the state definition record table as a process target record (FIG. 6, S205). In this specific example, the state definition record in which the cell in the “action execution path state” column in the fifth row of the state definition record table of FIG. 5 is “State 4” is determined as a new processing target record.

次に、状態遷移表生成部23は、状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203参照)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。   Next, the state transition table generation unit 23 determines whether or not all rows (records) in the state definition record table have been read (see S203 in FIG. 6). In this specific example, the state transition table generation unit 23 determines that all rows have not been read (No in FIG. 6, S203).

次に状態遷移表生成部23は状態定義レコード表の処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State4」であるので、ステップS2066に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第5行、「アクション実行パス状態」欄のセルが「State4」である状態定義レコードが読み取られる。   Next, the state transition table generation unit 23 determines whether or not the information described in the cell of the process target record “action execution path state” in the state definition record table is “State 0” (FIG. 6, S203). In this specific example, since the description in the “action execution path state” column of the processing target record is “State4”, the process proceeds to step S2066. In step S206, the state transition table generating unit 23 reads the processing target record. In this specific example, a state definition record in which the cell in the “action execution path state” column in the fifth row of the state definition record table is “State4” is read.

次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(S207)。本具体例では、状態定義レコード表の第5行の「前イベント」欄には、イベント「E1[True]」及び「E1[False]」の記述があるので、ステップS209へと進む(図6、S207、Yes)。   Next, the state transition table generation unit 23 determines whether there is an event described in the “previous event” column in the processing target record (S207). In this specific example, since the events “E1 [True]” and “E1 [False]” are described in the “previous event” column in the fifth row of the state definition record table, the process proceeds to step S209 (FIG. 6). , S207, Yes).

状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(S209参照)。本具体例では、状態定義レコード表においてイベント「E1[True]」及び「E1[False]」が「イベント」欄に記述されている状態定義レコードが抽出され、「E1[True]」についての抽出レコード群は第2行の状態定義レコードのみ、「E1[False]」についての抽出レコード群は第3行の状態定義レコードのみである。   The state transition table generation unit 23 extracts a state definition record group having an action execution path state for the previous event from the state definition record table (see S209). In this specific example, in the state definition record table, the state definition records in which the events “E1 [True]” and “E1 [False]” are described in the “event” column are extracted, and “E1 [True]” is extracted. The record group is only the state definition record in the second row, and the extracted record group for “E1 [False]” is only the state definition record in the third row.

次に、状態遷移表生成部23は、状態遷移表において、抽出レコードの「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(図6、S210)。   Next, in the state transition table, the state transition table generating unit 23 includes a row having an index that matches the action execution path state described in the “action execution path state” column of the extracted record, and the “event” of the processing target record. Write the action execution path status described in the “Action execution path status” column of the processing target record in the status column of the processing target cell that is the intersection with the column having the index that matches the event described in the column. The action described in the “action series” column of the processing target record is described in the action column of the processing target cell (FIG. 6, S210).

状態定義レコード表において「E1[True]」についての抽出レコード群は第2行のみであり、その第2行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State1」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E2[False]」である。よって、状態遷移表における処理対象セルは、「State1」をインデックスとする第3行と、「E2[False]」をインデックスとする左端から第5列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State4」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄には何も記述されていないので、上記処理対象セルのアクション欄は空欄のままとする。(図6、S210)。   In the state definition record table, the extracted record group for “E1 [True]” is only the second row, and the action execution path state described in the “action execution path state” column of the second row is “State1”. is there. Further, the event described in the “event” column of the processing target record is “E2 [False]”. Therefore, the processing target cell in the state transition table is determined to be a cell that is the intersection of the third row with “State1” as an index and the left end with “E2 [False]” as an index from the fifth column. The state transition table generation unit 23 writes the action execution path state “State4” described in the “action execution path state” field of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since nothing is described in the “action series” column of the processing target record, the action column of the processing target cell is left blank. (FIG. 6, S210).

次に、もう一つのイベントである「E1[False]」についての抽出レコードの処理について述べる。状態定義レコード表において「E1[False]」についての抽出レコード群は第3行のみであり、その第3行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State2」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E2[False]」である。よって、状態遷移表における処理対象セルは、「State2」をインデックスとする第4行と、「E2[False]」をインデックスとする左端から第5列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State4」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄にはアクションが記述されていないので、上記処理対象セルのアクション欄は空欄のままとする。(図6、S210)。
上記状態定義レコード表、第5行の処理が終了した時点の状態遷移表の状態を図14に示す。
Next, the processing of the extracted record for another event “E1 [False]” will be described. In the state definition record table, the extracted record group for “E1 [False]” is only the third row, and the action execution path state described in the “action execution path state” column of the third row is “State2”. is there. Further, the event described in the “event” column of the processing target record is “E2 [False]”. Therefore, the processing target cell in the state transition table is determined as a cell that is the intersection of the fourth row with “State2” as an index and the left column with “E2 [False]” as an index. The state transition table generation unit 23 writes the action execution path state “State4” described in the “action execution path state” field of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since no action is described in the “action series” column of the processing target record, the action column of the processing target cell is left blank. (FIG. 6, S210).
FIG. 14 shows the state of the state definition record table and the state transition table at the time when the processing of the fifth row is completed.

[状態定義レコード表、第6行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の最終行である第6行、「アクション実行パス状態」欄のセルが「State5」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, 6th line]
Next, the state transition table generation unit 23 proceeds to step S205, and sets the next record in the state definition record table as a process target record (FIG. 6, S205). In this specific example, the state definition record in which the cell in the “action execution path state” column is “State5” is determined as a new processing target record, which is the last row of the state definition record table of FIG.

次に、状態遷移表生成部23は、状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203参照)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。   Next, the state transition table generation unit 23 determines whether or not all rows (records) in the state definition record table have been read (see S203 in FIG. 6). In this specific example, the state transition table generation unit 23 determines that all rows have not been read (No in FIG. 6, S203).

次に状態遷移表生成部23は状態定義レコード表の処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203参照)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State5」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第3行、「アクション実行パス状態」欄のセルが「State5」である状態定義レコードが読み取られる。   Next, the state transition table generation unit 23 determines whether or not the information described in the cell of the process target record “action execution path state” in the state definition record table is “State0” (see S203 in FIG. 6). In this specific example, since the description in the “action execution path state” column of the processing target record is “State5”, the process proceeds to step S206. In step S206, the state transition table generating unit 23 reads the processing target record. In this specific example, the state definition record whose cell in the “action execution path state” column in the third row of the state definition record table is “State5” is read.

次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(図6、S207)。本具体例では、状態定義レコード表の第6行の「前イベント」欄には、イベント「E2[True]」及び「E2[False]」の記述があるので、ステップS209へと進む(図6、S207、Yes)。   Next, the state transition table generation unit 23 determines whether there is an event described in the “previous event” column in the processing target record (S207 in FIG. 6). In this specific example, since there are descriptions of events “E2 [True]” and “E2 [False]” in the “previous event” column in the sixth row of the state definition record table, the process proceeds to step S209 (FIG. 6). , S207, Yes).

状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(図6、S209)。本具体例では、状態定義レコード表においてイベント「E2[True]」及び「E2[False]」が「イベント」欄に記述されている状態定義レコードが抽出され、抽出レコード群は「E2[True]」について第4行の状態定義レコードのみ、「E2[False]」について第5行の状態定義レコードのみである。   The state transition table generation unit 23 extracts a state definition record group having an action execution path state for the previous event from the state definition record table (S209 in FIG. 6). In this specific example, in the state definition record table, state definition records in which the events “E2 [True]” and “E2 [False]” are described in the “event” column are extracted, and the extracted record group is “E2 [True] "Is only the state definition record in the fourth row, and" E2 [False] "is only the state definition record in the fifth row.

次に、状態遷移表生成部23は、状態遷移表において、抽出レコードの「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(図6、S210)。   Next, the state transition table generation unit 23 includes a row having an index that matches the action execution path state described in the “action execution path state” column of the extracted record in the state transition table, and the “event” of the processing target record. Write the action execution path status described in the “Action execution path status” column of the processing target record in the status column of the processing target cell that is the intersection with the column having the index that matches the event described in the column. The action described in the “action series” column of the processing target record is described in the action column of the processing target cell (FIG. 6, S210).

状態定義レコード表において「E2[True]」についての抽出レコード群は第4行のみであり、その第4行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State3」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「End」である。よって、状態遷移表における処理対象セルは、「State3」をインデックスとする第5行と、「End」をインデックスとする左端から第6列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State5」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄には何も記述されていないので、上記処理対象セルのアクション欄は空欄のままとする。(図6、S210)。   In the state definition record table, the extracted record group for “E2 [True]” is only the fourth row, and the action execution path state described in the “action execution path state” column of the fourth row is “State3”. is there. In addition, the event described in the “event” column of the processing target record is “End”. Therefore, the processing target cell in the state transition table is determined to be a cell that is the intersection of the fifth row with “State3” as an index and the left end with “End” as an index from the sixth column. The state transition table generation unit 23 writes the action execution path state “State5” described in the “action execution path state” column of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since nothing is described in the “action series” column of the processing target record, the action column of the processing target cell is left blank. (FIG. 6, S210).

次に、もう一つのイベントである「E2[False]」についての抽出レコード群の処理について述べる。状態定義レコード表において「E2[False]」についての抽出レコード群は第5行のみであり、その第5行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State4」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「End」である。よって、状態遷移表における処理対象セルは、「State4」をインデックスとする第6行と、「End」をインデックスとする左端から第6列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State5」を書き込む。さらに状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄にはアクションが記述されていないので、上記処理対象セルのアクション欄は空欄のままとする。(図6、S210)。
上記状態定義レコード表、第6行の処理が終了した時点の状態遷移表の状態を図15に示す。
Next, the processing of the extracted record group for another event “E2 [False]” will be described. In the state definition record table, the extracted record group for “E2 [False]” is only the fifth row, and the action execution path state described in the “action execution path state” column of the fifth row is “State4”. is there. In addition, the event described in the “event” column of the processing target record is “End”. Therefore, the processing target cell in the state transition table is determined as the cell that is the intersection of the sixth row with “State4” as an index and the left column with “End” as an index. The state transition table generation unit 23 writes the action execution path state “State5” described in the “action execution path state” column of the processing target record in the state column (upper side of the cell) of the processing target cell. Further, the state transition table generation unit 23 displays the action described in the “action series” column of the processing target record in the action column (lower side in the cell) of the processing target cell. However, since no action is described in the “action series” column of the processing target record, the action column of the processing target cell is left blank. (FIG. 6, S210).
FIG. 15 shows the state of the state definition record table and the state transition table at the time when the process on the sixth line is completed.

[空欄処理]
次に状態遷移表生成部23はステップS205に進み、処理対象レコードを次の状態定義レコードとするが、状態定義レコード表は第6行以降の行が無いので、最終行到達と判定する。次に状態遷移表生成部23はステップS203に進み、状態定義レコードが終了したか否かを判定する(図6、S203)。ここで、状態遷移表生成部23は状態定義レコードが終了したと判定し(図6、S203、Yes)、ステップS211に進む。
[Blank processing]
Next, the state transition table generation unit 23 proceeds to step S205 and sets the processing target record as the next state definition record. However, since the state definition record table has no rows after the sixth row, it is determined that the last row has been reached. Next, the state transition table generation unit 23 proceeds to step S203, and determines whether or not the state definition record has ended (FIG. 6, S203). Here, the state transition table generating unit 23 determines that the state definition record has ended (FIG. 6, S203, Yes), and proceeds to step S211.

ステップS211において、状態遷移表生成部23は状態遷移表の全ての空欄に、該当欄が空欄であることを示す情報として"/"を記述する。該当欄が空欄であることを示す情報が記述された状態の状態遷移表の例を図16に示す。図16に示す状態が完成した状態遷移表となる。
以上で、状態遷移表生成処理が終了し、図16に示した状態遷移表が完成する。
In step S211, the state transition table generating unit 23 describes “/” as information indicating that the corresponding field is blank in all blanks of the state transition table. FIG. 16 shows an example of a state transition table in which information indicating that the corresponding column is blank is described. The state shown in FIG. 16 is a completed state transition table.
Thus, the state transition table generation process is completed, and the state transition table shown in FIG. 16 is completed.

[実施例1]
次に、本実施の態様の別の実施例について説明する。図17は、本実施の態様にかかる状態遷移表生成装置に入力される入出力順序系列仕様であるフローチャートを示した図である。このフローチャートは、従業員食堂における代金精算システムの処理内容を示したフローチャートである。
[Example 1]
Next, another example of this embodiment will be described. FIG. 17 is a diagram illustrating a flowchart that is an input / output order sequence specification input to the state transition table generation device according to the present embodiment. This flowchart is a flowchart showing the processing contents of the payment settlement system in the employee cafeteria.

状態遷移表生成装置は、図17のフローチャートを読み取ると、まず、状態定義レコード表生成処理(図3参照)を実行する。
図17のフローチャートはステップS301からステップS312までの12ステップで構成され、そのうち条件分岐はステップS303,ステップS305,ステップS308である。
When the state transition table generation device reads the flowchart of FIG. 17, it first executes state definition record table generation processing (see FIG. 3).
The flowchart of FIG. 17 includes 12 steps from step S301 to step S312. Among them, conditional branches are step S303, step S305, and step S308.

状態遷移表生成装置、より詳しくは状態定義レコード表生成部は図17のフローチャートの各処理、S301、S302、S304、S306、S307、S309、S310、S311、S312にアクションとしてラベル付けを行い、A1,A2、A4,A5,A6,A8,A9,A3,A7とする。また、状態遷移表生成装置、より詳しくは状態定義レコード表生成部は、図17のフローチャートの各条件分岐S303、S305、S308のTrue(Yes側分岐に対応する)、False(No側分岐に対応する)をイベントとしてラベル付けを行い、それぞれをE1[True](S303、Yes)及びE1[False](S303、No)、E2[True](S305、Yes)及びE2[False](S305、No)、E3[True](S308、Yes)及びE3[False](S308、No)とする。   The state transition table generating device, more specifically, the state definition record table generating unit, labels each process of the flowchart of FIG. 17, S301, S302, S304, S306, S307, S309, S310, S311, and S312 as an action, and A1 , A2, A4, A5, A6, A8, A9, A3, A7. In addition, the state transition table generation device, more specifically, the state definition record table generation unit, corresponds to True (corresponds to Yes branch) and False (corresponds to No branch) in each of the conditional branches S303, S305, and S308 in the flowchart of FIG. To E1 [True] (S303, Yes) and E1 [False] (S303, No), E2 [True] (S305, Yes), and E2 [False] (S305, No) ), E3 [True] (S308, Yes) and E3 [False] (S308, No).

状態遷移表生成装置11、より詳しくは状態定義レコード表生成部22は状態定義レコード表生成処理(図3参照)を続行することにより、図18に示す状態定義レコード表を生成する。図18は、状態定義レコード表生成処理を実行することによって、図17のフローチャートから生成された状態定義レコード表の一例を示す図である。   The state transition table generation device 11, more specifically the state definition record table generation unit 22, generates the state definition record table shown in FIG. 18 by continuing the state definition record table generation process (see FIG. 3). FIG. 18 is a diagram illustrating an example of the state definition record table generated from the flowchart of FIG. 17 by executing the state definition record table generation process.

状態遷移表生成装置11、より詳しくは状態遷移表生成部23は図18に示す状態定義レコード表を受信すると、これに基づいて状態遷移表生成処理(図6参照)を実行し、状態遷移表を生成し出力する。図19は、状態遷移表生成処理によって図18の状態定義レコードから生成された状態遷移表の例を示す。   Upon receiving the state definition record table shown in FIG. 18, the state transition table generating device 11, more specifically the state transition table generating unit 23, executes state transition table generation processing (see FIG. 6) based on this, and the state transition table is generated. Is generated and output. FIG. 19 shows an example of the state transition table generated from the state definition record of FIG. 18 by the state transition table generation process.

[実施例1:追加機能]
状態遷移表生成装置11、より詳しくはイベント/アクション定義レコード生成部24は、各イベント並びにアクションに付したラベルと、各イベント並びにアクションの内容を対応付けして示した表である、「イベント/アクション定義レコード」を生成する。
図20は、図18に示したフローチャートから状態遷移表を生成する際に、状態遷移表生成装置、より詳しくは状態定義レコード表生成部によって生成される「イベント/アクション定義レコード」の一例を示した図である。
[Example 1: Additional functions]
The state transition table generation device 11, more specifically, the event / action definition record generation unit 24, is a table in which the labels attached to the events and actions are associated with the contents of the events and actions. Action definition record "is generated.
FIG. 20 shows an example of an “event / action definition record” generated by the state transition table generation device, more specifically the state definition record table generation unit, when generating the state transition table from the flowchart shown in FIG. It is a figure.

かかる「イベント/アクション定義レコード」を生成し、利用することによりユーザは状態遷移表の内容検証、検討などをより容易に行えるようになる。例えば、生成された状態遷移表を画面上に表示させた状態で、状態遷移表内のラベル(A1、など)の上にカーソルやポインタを置くと、「イベント/アクション定義レコード」が参照され、ポップアップウインドウが開いてその中に当該ラベルに対応する「意味」が表示されるような機能を実現することも可能となる。   By generating and using such an “event / action definition record”, the user can more easily verify and examine the contents of the state transition table. For example, when the generated state transition table is displayed on the screen and the cursor or pointer is placed on a label (A1, etc.) in the state transition table, the “event / action definition record” is referenced, It is also possible to realize a function that opens a pop-up window and displays a “meaning” corresponding to the label therein.

[実施例2]
上述した例では、状態遷移表生成装置11の入力である入出力順序系列仕様としてフローチャートを利用する態様を説明したが、状態遷移表生成装置11が利用可能な入出力順序系列仕様は、フローチャートに限られず、例えば、プログラムのソースコードであってもかまわない。以下に、プログラムのソースコードを入出力順序系列仕様として扱う場合の状態遷移表生成装置11の動作例を説明する。
[Example 2]
In the above-described example, the aspect in which the flowchart is used as the input / output order sequence specification that is the input of the state transition table generation device 11 has been described. For example, the source code of the program may be used. Hereinafter, an operation example of the state transition table generation device 11 when the source code of the program is handled as the input / output order series specification will be described.

まず、状態遷移表生成装置11はソースコードに基づいて状態定義レコード表を生成する。これは図3に示した状態定義レコード生成処理を実行することによって行われる。但し、if文、while文が「条件分岐」として扱われ、その他の命令文は「処理」として扱われる。
状態遷移表生成装置11は、生成した状態定義レコード表に基づいて状態遷移表を生成する。この処理は図6に示す状態遷移表生成処理によって行われる。
First, the state transition table generating device 11 generates a state definition record table based on the source code. This is performed by executing the state definition record generation process shown in FIG. However, the if statement and the while statement are treated as “conditional branch”, and the other command statements are treated as “processing”.
The state transition table generation device 11 generates a state transition table based on the generated state definition record table. This process is performed by the state transition table generation process shown in FIG.

図21は、状態遷移表生成装置11の入力となるソースコードの一例を示す図である。図22は、図21のソースコードにイベント及びアクションのラベルが付された状態を示す図である。図22に示したようにイベント及びアクションのラベルを付し、状態定義レコード表生成処理(図3参照)を実行した結果得られる状態定義レコード表の例を図23に示す。図23に示した状態定義レコード表に基づいて、状態遷移表生成処理(図6参照)を実行した結果得られる状態遷移表の例を図24に示す。すなわち、状態遷移表生成装置11は、図21に示したソースコードから図24に示す状態遷移表を生成することが可能である。   FIG. 21 is a diagram illustrating an example of source code that is input to the state transition table generation device 11. FIG. 22 is a diagram showing a state where event and action labels are attached to the source code of FIG. FIG. 23 shows an example of the state definition record table obtained as a result of executing the state definition record table generation process (see FIG. 3) with the event and action labels attached as shown in FIG. FIG. 24 shows an example of the state transition table obtained as a result of executing the state transition table generation process (see FIG. 6) based on the state definition record table shown in FIG. That is, the state transition table generating device 11 can generate the state transition table shown in FIG. 24 from the source code shown in FIG.

[まとめ]
本実施の態様によれば、状態遷移表等の事象-応答型の仕様を入力情報として検査コードを自動変換するモデル検査支援ツールに対して、フローチャート等の時系列の入力情報を扱うことができるようになる。
本実施の態様によれば、時系列の仕様の条件と処理を、状態遷移のイベント、条件、アクションに適切に対応させることで、状態遷移系に変換させても、条件に応じた処理のパスを理解容易にすることができる。
[Summary]
According to this embodiment, it is possible to handle time-series input information such as a flowchart for a model checking support tool that automatically converts a check code using event-response type specifications such as a state transition table as input information. It becomes like this.
According to the present embodiment, even if the time series specification conditions and processing are appropriately converted to state transition events, conditions, and actions so as to be converted to a state transition system, the processing path according to the conditions Can be easy to understand.

[第2の実施の形態]
次に、第2の実施の形態について説明する。第2の実施の形態は、条件分岐と処理にイベントとアクションのラベル付けを行う処理が、第1の実施の形態と異なる。より具体的には、第1の実施の形態では、イベントとアクションの組み合わせをアクション実行パス状態として定義するのに対して、第2の実施の形態ではイベントをアクション実行パスとする点で異なっている。
[Second Embodiment]
Next, a second embodiment will be described. The second embodiment is different from the first embodiment in processing for labeling events and actions in conditional branches and processing. More specifically, the first embodiment defines a combination of an event and an action as an action execution path state, whereas the second embodiment differs in that an event is an action execution path. Yes.

[装置の構成例]
第2の実施の形態にかかる状態遷移表生成装置11Aの構成例を図25に示す。状態遷移表生成装置11Aは、第1の実施の形態にかかる状態遷移表生成装置11の構成と基本的に同様であるが、状態定義レコード生成部22に代えて、状態定義レコード生成部22Aを有する点で異なっている。他の構成要素については同一の構成要素には同一の参照番号を付し、これら構成要素の詳細な説明は省略する。
[Example of device configuration]
FIG. 25 shows a configuration example of the state transition table generating device 11A according to the second embodiment. The state transition table generating device 11A is basically the same as the configuration of the state transition table generating device 11 according to the first embodiment, except that the state definition record generating unit 22A is replaced with the state definition record generating unit 22A. It is different in having. For the other components, the same components are denoted by the same reference numerals, and detailed description of these components is omitted.

[動作例]
次に、状態遷移表生成装置11Aの動作例を説明する。入出力順序系列仕様記憶部21、状態遷移表生成部23、イベント/アクション定義レコード生成部24のそれぞれは、第1の実施の形態における動作と同様なので、これらの動作の説明は省略する。以下に、状態定義レコード生成部22Aの動作を述べる。
[Example of operation]
Next, an operation example of the state transition table generation device 11A will be described. Since each of the input / output order sequence specification storage unit 21, the state transition table generation unit 23, and the event / action definition record generation unit 24 is the same as the operation in the first embodiment, description of these operations will be omitted. The operation of the state definition record generation unit 22A will be described below.

図26と図27は、状態定義レコード生成部22Aの動作である状態定義レコード生成処理の一例を示すフローチャートであって、図27は、図26に続くフローチャートである。
図26と図27に示す状態定義レコード生成部22Aの動作である状態定義レコード生成処理は、図3A,図3Bに示す状態定義レコード生成部22の動作と基本的に同じ処理内容であるが、ステップS90Aにおいて異なっている。
FIG. 26 and FIG. 27 are flowcharts showing an example of state definition record generation processing that is an operation of the state definition record generation unit 22A, and FIG. 27 is a flowchart following FIG.
The state definition record generation process, which is the operation of the state definition record generation unit 22A shown in FIGS. 26 and 27, is basically the same as the operation of the state definition record generation unit 22 shown in FIGS. 3A and 3B. The difference is in step S90A.

ステップS90Aにおいて、状態定義レコード生成部22Aは同一の状態名(アクション実行パス状態を特定する情報)を有する状態定義レコードを2つ作成し、一方のレコードに当該条件分岐の「True」をそのイベント欄に登録し、他方のレコードのイベント欄に「False」を登録する。   In step S90A, the state definition record generating unit 22A creates two state definition records having the same state name (information for specifying the action execution path state), and sets “True” of the conditional branch as one of the records for the event. Register in the field and register "False" in the event field of the other record.

その他の各ステップについては、第1の実施の形態にかかる図3A、図3Bに示したステップと同様なので、同一の処理内容を有するステップには同一の参照番号を付し、これらの詳細な説明は省略する。   The other steps are the same as the steps shown in FIGS. 3A and 3B according to the first embodiment. Therefore, the steps having the same processing contents are denoted by the same reference numerals, and detailed descriptions thereof are given. Is omitted.

第2の実施の形態における状態定義レコード生成処理によって状態定義レコードが生成される。この状態定義レコードから第1の実施の形態の状態遷移表生成処理(図6参照)と同様の処理によって、状態遷移表が生成されることになる。   A state definition record is generated by the state definition record generation process in the second embodiment. A state transition table is generated from this state definition record by the same processing as the state transition table generation processing (see FIG. 6) of the first embodiment.

第2の実施の形態において生成される状態遷移表は、第2の実施の形態のそれに比べて、アクション実行パス状態(状態定義レコード)の数を少なくすることができ、その結果最終的生成される状態遷移表もより簡素化されたものを生成することができ、ユーザの状態遷移表の使用の際の負担を軽減できる。   The state transition table generated in the second embodiment can reduce the number of action execution path states (state definition records) compared to that in the second embodiment, and as a result is finally generated. It is also possible to generate a simplified state transition table and reduce the burden on the user when using the state transition table.

[具体例その1]
第2の実施の形態にかかる状態遷移表生成装置11Aの動作例の具体例を述べる。図28は、本具体例において上記状態定義レコード表の元となる入出力順序系列仕様10であるフローチャート(「処理対象フローチャート」と呼ぶ)である。図28は、前述した図4に示すフローチャートと同様であるので、このフローチャートの内容の説明は省略する。図29は、図28の処理対象フローチャートから生成された状態定義レコード表の例を示した図である。
[Specific example 1]
A specific example of the operation example of the state transition table generation device 11A according to the second embodiment will be described. FIG. 28 is a flowchart (referred to as a “processing target flowchart”) that is the input / output order sequence specification 10 that is the basis of the state definition record table in this specific example. FIG. 28 is the same as the flowchart shown in FIG. 4 described above, and the description of the content of this flowchart is omitted. FIG. 29 is a diagram showing an example of a state definition record table generated from the process target flowchart of FIG.

まず、状態定義レコード表生成部22Aは、図28に示したフローチャートの条件分岐、処理の各要素にそれぞれイベントとアクションの番号付けをする(図26、S10)。具体的には、第1の条件分岐S101にはイベント番号「E1」を付与し、第2の条件分岐S104にはイベント番号「E2」を付与する。また、アクションS102、S103、S104にはそれぞれアクション番号「A1」、「A2」、「A3」を付与する。   First, the state definition record table generation unit 22A assigns an event and an action number to each element of conditional branching and processing in the flowchart shown in FIG. 28 (S10 in FIG. 26). Specifically, an event number “E1” is assigned to the first conditional branch S101, and an event number “E2” is assigned to the second conditional branch S104. Action numbers “A1”, “A2”, and “A3” are assigned to actions S102, S103, and S104, respectively.

次に、状態定義レコード表生成部22は、状態定義レコード表を生成し、フローチャートの最初の要素である「Start」を読み取ると、アクション実行パス状態欄に「State0」を格納し、且つそのイベント欄にイベント名「Start」と格納したレコードを状態定義レコード表に加える(図26、S20)。   Next, when the state definition record table generation unit 22 generates a state definition record table and reads “Start” which is the first element of the flowchart, it stores “State0” in the action execution path state column and the event. A record having the event name “Start” stored in the column is added to the state definition record table (FIG. 26, S20).

次に、状態定義レコード表生成部22Aは、「終了(End)」以外の全ての要素を読み込み済みか否かを判定する(図26、S30)。この具体例では、全ての要素を読み込んでいないので、判定は「No」となりステップS40に移行する。   Next, the state definition record table generation unit 22A determines whether all elements other than “End” have been read (S30 in FIG. 26). In this specific example, since not all elements have been read, the determination is “No” and the process proceeds to step S40.

次に、状態定義レコード表生成部22Aは、ステップS30の判定後、処理対象フローチャートの連結部分から次の一要素を読み取る(図26、S40)。この例では処理対象フローチャートの要素「E1」を読み込む。   Next, after the determination in step S30, the state definition record table generation unit 22A reads the next element from the connected portion of the processing target flowchart (FIG. 26, S40). In this example, the element “E1” of the processing target flowchart is read.

次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「E1」は条件分岐であると判定される(図26、S50、Yes)。   Next, the state definition record table generating unit 22 determines whether or not the read element is a conditional branch (S50 in FIG. 26). In this example, the element “E1” is determined to be a conditional branch (FIG. 26, S50, Yes).

次に、状態定義レコード表生成部22Aは、当該条件分岐によって生じる状態を定義する状態名を決定する(図26、S70)。この例では、状態定義レコード表生成部22は、条件分岐「E1」を状態名「State1」と定める。   Next, the state definition record table generating unit 22A determines a state name that defines a state caused by the conditional branch (FIG. 26, S70). In this example, the state definition record table generation unit 22 defines the conditional branch “E1” as the state name “State1”.

次に、状態定義レコード表生成部22Aは、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図26、S80)。この例では、条件分岐「E1」は未だ状態定義レコード表に登録済みではないと判定し(図26、S80、No)、ステップS90Aに移行する。   Next, the state definition record table generating unit 22A determines whether or not the conditional branch has been registered in the state definition record table as an event (S80 in FIG. 26). In this example, it is determined that the conditional branch “E1” is not yet registered in the state definition record table (FIG. 26, S80, No), and the process proceeds to step S90A.

ステップS90Aにおいて、状態定義レコード表生成部22Aは、状態定義レコード表に新たに状態定義レコードを2つ作成し、一方のレコードのイベント欄にその条件分岐の「True」を登録し、他方のレコードのイベント欄にその条件分岐の「False」を登録する。この例では、状態定義レコード表生成部22Aは、図29の状態定義レコード表において、第2行と第3行を作成し、第2行の「アクション実行パス状態」欄に状態名「State1」を記述するとともに「イベント」欄に「E1[True]」を記述する。またさらに状態定義レコード表生成部22は、第3行の「アクション実行パス状態」欄に状態名「State1」と記述するとともに「イベント」欄に「E1[False]」を記述する。   In step S90A, the state definition record table generating unit 22A creates two new state definition records in the state definition record table, registers the conditional branch “True” in the event field of one record, and records the other record. Register “False” of the conditional branch in the event column. In this example, the state definition record table generating unit 22A creates the second and third rows in the state definition record table of FIG. 29, and the state name “State1” in the “action execution path state” column of the second row. And “E1 [True]” in the “Event” column. Furthermore, the state definition record table generating unit 22 describes the state name “State1” in the “action execution path state” column of the third row and “E1 [False]” in the “event” column.

次に、状態定義レコード表生成部22Aは、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図26、S100)。この例では、状態定義レコード表生成部22Aは、直前に登録したイベントである「E1[True]」(第2行)、「E1[False]」(第3行)に対応する「前イベント」欄に、直前に状態を定義したレコード(第1行)の「イベント」欄に記述されたイベント「Start」を記述する。   Next, the state definition record table generating unit 22A registers the event of the record whose state is defined immediately before the two records in the event before the registered or registered event (FIG. 26, S100). In this example, the state definition record table generation unit 22A performs “previous event” corresponding to “E1 [True]” (second line) and “E1 [False]” (third line), which are the events registered immediately before. In the column, the event “Start” described in the “Event” column of the record (first line) in which the state has been defined immediately before is described.

次に、状態定義レコード表生成部22Aは、ステップS30に戻りその後ステップS40において、要素「E1」の次の要素「A1」を読み取る(図26、S40)。
次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する。この例では要素「A1」は条件分岐ではないと判定される(図26、S50、No)。
Next, the state definition record table generating unit 22A returns to step S30 and then reads the element “A1” next to the element “E1” in step S40 (FIG. 26, S40).
Next, the state definition record table generating unit 22A determines whether or not the read element is a conditional branch. In this example, it is determined that the element “A1” is not a conditional branch (FIG. 26, S50, No).

次に、状態定義レコード表生成部22Aは、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図26、S60)。具体的には、図29に示した状態定義レコード表の第2行の「アクション系列」欄に「A1」と記述する。   Next, the state definition record table generating unit 22A registers the element number of the read element in the state definition record table with the element (process) as an action for the event of the condition (S60 in FIG. 26). Specifically, “A1” is described in the “action series” column of the second row of the state definition record table shown in FIG.

次に、状態定義レコード表生成部22Aは、ステップS30に戻り、続くステップS40において、要素「A1」の次の要素「A2」を読み取る(図26、S40)。   Next, the state definition record table generating unit 22A returns to step S30, and in the subsequent step S40, reads the element “A2” next to the element “A1” (FIG. 26, S40).

次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「A2」は条件分岐ではないと判定される(図26、S50、No)。   Next, the state definition record table generating unit 22A determines whether or not the read element is a conditional branch (FIG. 26, S50). In this example, it is determined that the element “A2” is not a conditional branch (FIG. 26, S50, No).

次に、状態定義レコード表生成部22Aは、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図26、S60)。具体的には、図29に示した状態定義レコード表の第2行の「アクション系列」欄に「A2」を追加して記述する。   Next, the state definition record table generating unit 22A registers the element number of the read element in the state definition record table with the element (process) as an action for the event of the condition (S60 in FIG. 26). Specifically, “A2” is added and described in the “action series” column of the second row of the state definition record table shown in FIG.

次に、状態定義レコード表生成部22Aは、ステップS30に戻りその後ステップS40において、処理対象フローチャートにおける要素「A2」の次の要素「E2」を読み取る(図26、S40)。   Next, the state definition record table generating unit 22A returns to step S30, and then reads the element “E2” next to the element “A2” in the processing target flowchart in step S40 (FIG. 26, S40).

次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「E2」は条件分岐であると判定される(図26、S50、Yes)。   Next, the state definition record table generating unit 22A determines whether or not the read element is a conditional branch (FIG. 26, S50). In this example, the element “E2” is determined to be a conditional branch (FIG. 26, S50, Yes).

次に、状態定義レコード表生成部22Aは、当該条件分岐によって生じる状態を定義する状態名を決定する(図26、S70)。この例では、状態定義レコード表生成部22Aは、条件分岐「E2」を状態名「State2」と定める。   Next, the state definition record table generating unit 22A determines a state name that defines a state caused by the conditional branch (FIG. 26, S70). In this example, the state definition record table generation unit 22A determines the conditional branch “E2” as the state name “State2”.

次に、状態定義レコード表生成部22Aは、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図26、S80)。この例では、条件分岐「E2」は未だ状態定義レコード表に登録済みではないと判定し(図26、S80、No)、ステップS90Aに移行する。   Next, the state definition record table generating unit 22A determines whether or not the conditional branch has been registered in the state definition record table as an event (S80 in FIG. 26). In this example, it is determined that the conditional branch “E2” has not yet been registered in the state definition record table (FIG. 26, S80, No), and the process proceeds to step S90A.

ステップS90Aにおいて、状態定義レコード表生成部22Aは、状態定義レコード表に新たに状態定義レコードを2つ追加し、その条件分岐の「True」を一方のレコードのイベント欄に登録し、他方のレコードにその条件分岐の「False」を登録する。この例では、状態定義レコード表生成部22は、図29に示す状態定義レコード表に第4行と第5行を作成し、第4行の「アクション実行パス状態」欄に「State2」を記述するとともにその「イベント」欄に「E2[True]」を記述する。またさらに状態定義レコード表生成部22Aは、第5行の「アクション実行パス状態」欄に「State2」と記述するとともにその「イベント」欄に「E2[False]」を記述する。   In step S90A, the state definition record table generating unit 22A adds two new state definition records to the state definition record table, registers “True” of the conditional branch in the event field of one record, and records the other record. Register “False” of the conditional branch in. In this example, the state definition record table generating unit 22 creates the fourth and fifth rows in the state definition record table shown in FIG. 29, and describes “State2” in the “action execution path state” column of the fourth row. And “E2 [True]” in the “Event” column. Furthermore, the state definition record table generating unit 22A describes “State2” in the “action execution path state” column of the fifth line and “E2 [False]” in the “event” column.

次に、状態定義レコード表生成部22Aは、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図26、S100)。この例では、状態定義レコード表生成部22Aは、第4行及び第5行の登録の直前に登録したレコード(第2行、第3行のレコード)のイベント欄に記述された「E1[True]」(第2行)及び「E1[False]」(第3行)を第4行、第5行の「前イベント」欄に記述する。   Next, the state definition record table generation unit 22A registers the event of the record that defines the state immediately before the two records in the event before the registered or registered event (FIG. 26, S100). In this example, the state definition record table generation unit 22A has “E1 [True” described in the event column of the record (second and third line records) registered immediately before the registration of the fourth and fifth lines. ] ”(Second line) and“ E1 [False] ”(third line) are described in the“ previous event ”column of the fourth and fifth lines.

次に、状態定義レコード表生成部22Aは、ステップS30に戻りその後ステップS40において、要素「E2」の次の要素「A3」を読み取る(図26、S40)。
次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「A3」は条件分岐ではないと判定される(図26、S50、No)。
Next, the state definition record table generating unit 22A returns to step S30, and then reads the element “A3” next to the element “E2” in step S40 (FIG. 26, S40).
Next, the state definition record table generating unit 22A determines whether or not the read element is a conditional branch (FIG. 26, S50). In this example, it is determined that the element “A3” is not a conditional branch (FIG. 26, S50, No).

次に、状態定義レコード表生成部22Aは、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図26、S60)。具体的には、図29に示した状態定義レコード表の第4行の「アクション系列」欄に「A3」を記述する。   Next, the state definition record table generating unit 22A registers the element number of the read element in the state definition record table with the element (process) as an action for the event of the condition (S60 in FIG. 26). Specifically, “A3” is described in the “action series” column in the fourth row of the state definition record table shown in FIG.

次に、状態定義レコード表生成部22Aは、ステップS30に戻り、終了(End)以外の全ての要素を読み込み済みか否かを判定する(図26、S30)。この例では、状態定義レコード表生成部22Aは、終了(End)以外の全ての要素を読み込み済みであると判定し(S30、Yes)、図27のステップS110に進む。   Next, the state definition record table generating unit 22A returns to Step S30, and determines whether or not all elements other than the end (End) have been read (S30 in FIG. 26). In this example, the state definition record table generation unit 22A determines that all elements other than end (End) have been read (S30, Yes), and proceeds to step S110 in FIG.

ステップS110において、状態定義レコード表生成部22Aは現在の状態数を含む状態名をアクション実行パス状態欄に格納し、且つイベント欄に「End」を格納した新たな状態定義レコードを生成し、状態定義レコード表に追加する(図27、S110)。図29の例では、第6行のレコードに相当する。   In step S110, the state definition record table generation unit 22A stores a state name including the current number of states in the action execution path state column and generates a new state definition record in which “End” is stored in the event column. It is added to the definition record table (FIG. 27, S110). In the example of FIG. 29, this corresponds to the record in the sixth row.

次に、状態定義レコード表生成部22Aは、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図27、S120)。この例では、状態定義レコード表生成部22Aは、第6行の登録の直前に登録したレコード(第4行、第5行に相当するレコード)のイベント欄に記述された「E2[True]」(第4行)及び「E2[False]」(第5行)を第6行の「前イベント」欄に記述する。
以上で、図26に示したフローチャートの処理に基づいて、図29に示した状態定義レコード表が完成する。
Next, the state definition record table generating unit 22A registers the event of the record that defines the state immediately before the two records in the event before the registered or registered event (S120 in FIG. 27). In this example, the state definition record table generation unit 22A has “E2 [True]” described in the event column of the record (records corresponding to the fourth and fifth lines) registered immediately before the sixth line registration. (Fourth line) and “E2 [False]” (Fifth line) are described in the “Previous event” column of the sixth line.
Thus, the state definition record table shown in FIG. 29 is completed based on the processing of the flowchart shown in FIG.

[状態遷移表の生成]
次に、状態遷移表生成装置11A、より詳しくは状態遷移表生成部23は、図29に示した状態定義レコード表のデータを受信して、このデータを用いて、状態遷移表生成処理(図6参照)を実行し状態遷移表を生成する。状態遷移表生成処理の内容は第1の実施の形態と同様である。
図30に、図29に示した状態定義レコード表のデータから生成された状態遷移表の例を示す。
[Generate state transition table]
Next, the state transition table generation device 11A, more specifically, the state transition table generation unit 23 receives the data of the state definition record table shown in FIG. 29, and uses this data to generate a state transition table generation process (FIG. 6) to generate a state transition table. The contents of the state transition table generation process are the same as those in the first embodiment.
FIG. 30 shows an example of the state transition table generated from the data of the state definition record table shown in FIG.

[実施例その2]
第2の実施の形態にかかる状態遷移表生成装置11Aの動作例の別の具体例を述べる。図31に示すIPアドレスの割り当て処理を状態遷移表生成装置11Aを用いて状態遷移表を生成する例を示す。
[Example 2]
Another specific example of the operation example of the state transition table generating device 11A according to the second embodiment will be described. An example in which the state transition table is generated by using the state transition table generating device 11A in the IP address assignment processing shown in FIG.

図31は、PC−1、PC−2、PC−3、PC−4からなるネットワークにおいて、IPアドレスの割り当てを行う処理の例を示したシーケンス図である。PC−3、PC−4はともにDHCPサーバとして機能する。   FIG. 31 is a sequence diagram illustrating an example of processing for assigning an IP address in a network including PC-1, PC-2, PC-3, and PC-4. Both PC-3 and PC-4 function as a DHCP server.

まず、PC−1が起動時にIPアドレスの有無を判定し、IPアドレスが割り当てられていない場合には、ネットワーク内の他の装置にDISCOVERメッセージをブロードキャストする(S3101、S3102、S3103)。   First, the PC-1 determines whether or not there is an IP address at the time of activation, and if no IP address is assigned, it broadcasts a DISCOVER message to other devices in the network (S3101, S3102, and S3103).

DISCOVERメッセージを受信したDHCPサーバであるPC−3、PC−4は、割り当てる候補となるIPアドレスが含まれているOFFERメッセージを送信する(S3104、S3105)。この例では、PC−3はIP1というIPアドレスを提示し、PC−4はIP2というIPアドレスを提示したものとする。   The PC-3 and PC-4, which are DHCP servers that have received the DISCOVER message, transmit an OFFER message that includes an IP address that is a candidate for allocation (S3104, S3105). In this example, it is assumed that PC-3 presents an IP address IP1, and PC-4 presents an IP address IP2.

PC−3,PC−4のそれぞれからOFFERメッセージを受信したクライアントであるPC−1は、提示されたIPアドレスに問題がなければ、正式にサーバにIPを要求するREQUESTメッセージを送信する(S3106、S3107)。この例では、PC−1はIP1を選択して、REQUESTメッセージを送信した者とする。   If there is no problem with the presented IP address, the PC-1 that is the client that has received the OFFER message from each of the PC-3 and PC-4 officially sends a REQUEST message requesting the IP to the server (S3106, S3107). In this example, it is assumed that PC-1 selects IP1 and transmits the REQUEST message.

IP1についてのREQUESTメッセージを受信したPC−3は自分が選択されたことを同じユーザーIPアドレスが返送されたことで確認して、問題なければ「PACK」パケットを返信し、問題あれば「PNAK」パケットを返信する(S3108)。   The PC-3 that has received the REQUEST message for IP1 confirms that it has been selected by returning the same user IP address. If there is no problem, it returns a “PACK” packet, and if there is a problem, “PNAK”. The packet is returned (S3108).

PACKを正常に受信したPC-1は、OFFERで指定されたユーザIPアドレスを自分のIPアドレスとして保存し、以降はこのIPアドレスで通信を行うように内部設定する。一方、「PNAK」が返信された時は、再度DISCOVERの送信を実行する(S3109)。   The PC-1 that has received the PACK normally stores the user IP address specified by OFFER as its own IP address, and then internally configures communication using this IP address. On the other hand, when “PNAK” is returned, the DISCOVER is transmitted again (S3109).

この実施の例では、上記のシーケンス図に示される処理のうち、クライアントであるPC−1の処理フローチャートと、DHCPサーバであるPC−3の処理フローチャートを、それぞれ入出力順序系列仕様10として用意し、それぞれの入出力順序系列仕様10から状態遷移表生成装置11Aに状態遷移表を生成させる。   In this embodiment, among the processes shown in the above sequence diagram, the process flowchart of the PC-1 that is the client and the process flowchart of the PC-3 that is the DHCP server are prepared as the input / output order sequence specification 10, respectively. The state transition table generating device 11A generates a state transition table from each input / output order sequence specification 10.

[クライアント側]
図32は、クライアントであるPC−1の処理フローチャートの例を示す図である。このフローチャートに対応するデータ等を入出力順序系列仕様10から状態遷移表生成装置11Aに入力する。図33は、状態名(アクション実行パス状態)が付された図32のフローチャートを示す。図34は、図32のフローチャート(入出力順序系列仕様10)から状態遷移表生成装置11Aが生成した状態遷移表を状態遷移図に示した図である。
[Client side]
FIG. 32 is a diagram illustrating an example of a process flowchart of the PC-1 that is a client. Data corresponding to this flowchart is input from the input / output order sequence specification 10 to the state transition table generation device 11A. FIG. 33 is a flowchart of FIG. 32 to which a state name (action execution path state) is attached. FIG. 34 is a diagram showing the state transition table generated by the state transition table generating device 11A from the flowchart of FIG. 32 (input / output order sequence specification 10) in the state transition diagram.

[DHCPサーバ側]
図35は、DHCPサーバであるPC−3の処理フローチャートの例を示す図である。このフローチャートに対応するデータ等を入出力順序系列仕様10から状態遷移表生成装置11Aに入力する。図36は、状態名(アクション実行パス状態)が付された図35のフローチャートを示す。分岐条件E1,E2,E3,E4について、それぞれ状態名(アクション実行パス状態)State1, State2, State3, State4が付与され、これら状態名ごとに状態定義レコード表のレコードが生成されることとなる。図37は、図35のフローチャート(入出力順序系列仕様10)から状態遷移表生成装置11Aが生成した状態遷移表を状態遷移図に示した図である。
[DHCP server side]
FIG. 35 is a diagram illustrating an example of a processing flowchart of the PC-3 that is the DHCP server. Data corresponding to this flowchart is input from the input / output order sequence specification 10 to the state transition table generation device 11A. FIG. 36 is a flowchart of FIG. 35 to which a state name (action execution path state) is attached. State names (action execution path states) State1, State2, State3, and State4 are assigned to the branch conditions E1, E2, E3, and E4, respectively, and a record in the state definition record table is generated for each state name. FIG. 37 is a diagram showing a state transition table generated by the state transition table generating device 11A from the flowchart of FIG. 35 (input / output order sequence specification 10) in a state transition diagram.

なお、本実施の形態の変形として、条件分岐が連続している場合(図36、E2〜E3)は、これを一つの条件分岐として扱い、一つの状態として状態遷移表の生成を行うようにしてもよい。この例に上記変形を適用すると、条件分岐であるE2〜E4は、一つの状態「State2」として処理される。   As a modification of the present embodiment, when conditional branches are continuous (FIG. 36, E2 to E3), this is handled as one conditional branch, and a state transition table is generated as one state. May be. When the above modification is applied to this example, conditional branches E2 to E4 are processed as one state “State 2”.

[その他]
以上、本発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加、組み合わせ等が可能である。
変形例として、状態遷移表生成装置11は、状態定義レコード生成部22と状態定義レコード生成部22Aとをともに有しており、ユーザの指定により一方を選択して、状態定義レコード表の生成、それに基づく状態遷移表の生成を行わせるように変形することもできる。
[Other]
As mentioned above, although embodiment of this invention was described, this invention is not limited to these, A various change, addition, a combination, etc. are possible in the range which does not deviate from the meaning of invention.
As a modification, the state transition table generation device 11 has both a state definition record generation unit 22 and a state definition record generation unit 22A, and selects one of them according to a user's specification to generate a state definition record table. It can also be modified to generate a state transition table based on it.

10・・・入出力順序系列仕様; 11・・・状態遷移表生成装置; 12・・・状態遷移表; 21・・・入出力順序系列仕様記憶部; 22、22A・・・状態定義レコード生成部; 23・・・状態遷移表生成部; 24・・・イベント/アクション定義レコード生成部 DESCRIPTION OF SYMBOLS 10 ... Input / output order series specification; 11 ... State transition table production | generation apparatus; 12 ... State transition table; 21 ... Input / output order series specification memory | storage part; 22, 22A ... State definition record generation 23: State transition table generation unit; 24 ... Event / action definition record generation unit

Claims (3)

入出力順序系列仕様を表すデータにおける条件分岐と処理に、イベント及びアクションを特定する情報を付し、分岐の無い一本のパスにアクション実行パス状態を特定する情報を付し、一つのアクション実行パス状態について一つのレコードを有し、各レコードはイベント、前イベント、アクション系列を有する情報である状態定義レコード表を生成する第1の生成手段と、
前記状態定義レコード表に基づいて、前記状態定義レコード表に含まれるアクション実行パス状態ごとに一つのレコードを有し、各レコードは、前記状態定義レコード表に含まれる各イベントに対応するフィールドを有する情報である状態遷移表を生成する第2の生成手段と
を有する状態遷移表生成装置。
Information specifying event and action is attached to conditional branching and processing in data representing input / output sequence specification, information specifying action execution path state is attached to one path without branch, and one action is executed A first generation means for generating a state definition record table, which has one record for a path state, and each record is information having an event, a previous event, and an action sequence;
Based on the state definition record table, there is one record for each action execution path state included in the state definition record table, and each record has a field corresponding to each event included in the state definition record table. A state transition table generation device comprising: a second generation unit that generates a state transition table that is information.
入出力順序系列仕様を表すデータにおける条件分岐と処理に、イベント及びアクションを特定する情報を付し、条件分岐にアクション実行パス状態を特定する情報を付し、一つのアクション実行パス状態について一つ以上のレコードを有し、各レコードはイベント、前イベント、アクション系列を有する情報である状態定義レコード表を生成する第1の生成手段と、
前記状態定義レコード表に基づいて、前記状態定義レコード表に含まれるアクション実行パス状態ごとに一つのレコードを有し、各レコードは、前記状態定義レコード表に含まれる各イベントに対応するフィールドを有する情報である状態遷移表を生成する第2の生成手段と
を有する状態遷移表生成装置。
Information specifying events and actions is attached to conditional branches and processes in data representing input / output sequence specifications, information specifying action execution path states is attached to conditional branches, and one action execution path state is added. A first generation means for generating a state definition record table which is information including an event, a previous event, and an action sequence;
Based on the state definition record table, there is one record for each action execution path state included in the state definition record table, and each record has a field corresponding to each event included in the state definition record table. A state transition table generation device comprising: a second generation unit that generates a state transition table that is information.
前記第2の生成手段は、前記状態定義レコード表の処理対象レコードにおける前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出し、処理対象レコードにおける前イベントに記述されたイベントをイベント欄に有する状態定義レコードのアクション実行パス状態欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードのイベント欄に記載されたイベントに一致するインデックスを有する列との交点となるセルである処理対象セルの状態欄に、処理対象レコードのアクション実行パス状態欄に記載されているアクション実行パス状態を書き込み、処理対象レコードのアクション系列欄にアクションの記述があれば、そのアクションを上記処理対象セルのアクション欄に書き込むことにより、状態遷移表を生成する請求項1又は2に記載の状態遷移表生成装置。
The second generation unit extracts a state definition record group having an action execution path state with respect to a previous event in the processing target record of the state definition record table, and stores an event described in the previous event in the processing target record in an event column. This is the intersection of a row having an index that matches the action execution path status described in the action execution path status column of the state definition record and a column having an index that matches the event described in the event column of the processing target record. Write the action execution path status described in the action execution path status column of the processing target record in the status column of the processing target cell that is a cell, and if there is a description of the action in the action series column of the processing target record, enter that action. Write in the action column of the cell to be processed Mukoto, the state transition table generating apparatus according to claim 1 or 2 to generate a state transition table.
JP2011287991A 2011-12-28 2011-12-28 State transition table generator Expired - Fee Related JP5774468B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011287991A JP5774468B2 (en) 2011-12-28 2011-12-28 State transition table generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011287991A JP5774468B2 (en) 2011-12-28 2011-12-28 State transition table generator

Publications (2)

Publication Number Publication Date
JP2013137639A JP2013137639A (en) 2013-07-11
JP5774468B2 true JP5774468B2 (en) 2015-09-09

Family

ID=48913313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011287991A Expired - Fee Related JP5774468B2 (en) 2011-12-28 2011-12-28 State transition table generator

Country Status (1)

Country Link
JP (1) JP5774468B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7009001B1 (en) 2021-03-02 2022-01-25 株式会社Team F Information processing equipment and programs

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02238523A (en) * 1989-03-13 1990-09-20 Fujitsu Ltd Production processing system for sequence table
JPH1124900A (en) * 1997-06-30 1999-01-29 Canon Inc State transition diagram creation device, state transition diagram creation method, storage medium
JP3930255B2 (en) * 2001-01-31 2007-06-13 株式会社東芝 System specification information processing apparatus, system specification information processing method, and program

Also Published As

Publication number Publication date
JP2013137639A (en) 2013-07-11

Similar Documents

Publication Publication Date Title
CN110580189A (en) method and device for generating front-end page, computer equipment and storage medium
JP6440895B2 (en) Software analysis apparatus and software analysis method
CN112989795A (en) Text information extraction method and device, computer equipment and storage medium
CN118333675A (en) Enterprise incubator site selection method and system
JP5774468B2 (en) State transition table generator
JP6781819B2 (en) Task processing method and distributed computing framework system
Cheng et al. Llm-in-sandbox elicits general agentic intelligence
JP5163172B2 (en) Software test item editing support apparatus and software test item editing support method
JP2009059089A (en) Circuit specification description design analysis apparatus and circuit specification description design analysis method
Babar et al. Systematic reviews in requirements engineering: A systematic review
Castaneda et al. KNeXT: a networkX-based topologically relevant KEGG parser
CN114116108A (en) Dynamic rendering method, device, device and storage medium
CN114138641A (en) Logic diagram compiling detection method, system, electronic device and storage medium
CN110908896A (en) Test method and device based on decision tree
JP2007249826A (en) Test item generation device
JP2017151594A (en) Supporting device, supporting method, and program
CN110970083B (en) Integrated circuit repairing method and device, storage medium and electronic equipment
JP4390728B2 (en) Netlist generator
CN115934519B (en) Testing methods, equipment, and media based on Unified Modeling Language (UML) flowcharts
WO2021176982A1 (en) Display method, control program, and device
Wang et al. An Approach to transforming UML model to FSM model for automatic testing
CN117952041B (en) X value tracking method based on drive source code, electronic equipment and medium
JP2013004066A (en) Circuit generation device
US8942969B2 (en) Event simulation with energy analysis
Chomal et al. Finding Trend of Both Frequency and Type of Errors from Software Project Documentation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150527

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150701

R151 Written notification of patent or utility model registration

Ref document number: 5774468

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees