JP5774468B2 - State transition table generator - Google Patents
State transition table generator Download PDFInfo
- 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
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.
従来の支援ツールでは、入力情報として特定の表現(図又は仕様情報)のみをサポートしている。従って利用する支援ツールがどのような形式の入力仕様をサポートしているかによって、利用制限がかかってしまう。例えば、仕様を主にフローチャートで記述している場合は、状態遷移図/状態遷移表ベースの支援ソフトは利用できないという問題点があった。 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.
以下、図面を参照して本発明の実施の形態に係る状態遷移表生成装置を説明する。
[第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
The user creates a
モデル検査器15はモデル検査処理を実行し、反例16を出力する。ユーザは反例を解析することにより、問題点を発見し、検査用コード13を修正し、この修正済みの検査用コード13をモデル検査器15によってさらに検査し、問題点をつぶすように、検査用コード13の改善を行う。
The
図2は、状態遷移表生成装置11の構成例を示す機能ブロック図である。なお、図2に示した各構成要素は、状態遷移表生成装置11を機能ごとのまとまりとしてとらえた要素であって、実際の状態遷移表生成装置11が各構成様相に相当するハードウエア(回路、モジュール、ユニットなど)を備えていることを必要とすることを示すものではない。
FIG. 2 is a functional block diagram illustrating a configuration example of the state transition
状態遷移表生成装置11は、例えばコンピュータ、ワークステーションなどの情報処理装置によって実現される装置である。この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。
The state transition
状態遷移表生成装置11は、入出力順序系列仕様記憶部21と、本実施の形態のだ第の生成手段に相当する状態定義レコード表生成部22と、本実施の形態の第1の生成手段に相当する状態遷移表生成部23と、イベント/アクション定義レコード表生成部24とを有する。入出力順序系列仕様記憶部21は状態定義レコード表生成部22に接続されており、状態定義レコード表生成部22は状態遷移表生成部23に接続されており、イベント/アクション定義レコード表生成部24は状態遷移表生成部23に接続されている。ここで「接続されている」とは、データ、情報、命令などの授受が可能な状態になっていることをいい、配線で連結されているような物理的な接続に限られる意味ではない。
The state transition
入出力順序系列仕様記憶部21は、ユーザによって入力された入出力順序系列仕様を記憶する機能を有する。入出力順序系列仕様は状態定義レコード表生成部22が読み取り可能な形式、フォーマットなどであればどのようなデータとして保存されていてもよい。
The input / output order sequence
状態定義レコード表生成部22は、入出力順序系列仕様を表すデータを入出力順序系列仕様記憶部21から受信し、後述する状態定義レコード表生成処理を実行することにより状態定義レコード表を表すデータを生成し、出力する機能を有する。
The state definition record
状態遷移表生成部23は、状態定義レコード表生成部22から状態定義レコード生成部22から状態定義レコード表を表すデータを受信し、後述する状態遷移表生成処理を実行することにより、状態遷移表を表すデータを生成し、出力する機能を有する。
The state transition
イベント/アクション定義レコード表生成部24は、入出力順序系列仕様に含まれるイベント、アクションに付したラベル(符号)と、当該ラベルの内容を示す文や単語とを対応付けしたデータであるイベント/アクション定義レコード表を生成し、記憶する機能を有する。
The event / action definition record
[状態定義レコード表生成処理]
以下に、図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
まず、状態定義レコード表生成部22は、フローチャートの条件分岐、処理の各要素にそれぞれイベントとアクションの番号付けをする(S10)。すなわち、条件分岐処理にはイベントの番号付けをし、アクション(通常処理)にはアクションの番号付けを行う。
First, the state definition record
次に、状態定義レコード表生成部22は、状態定義レコード表を生成する。状態定義レコード表は、一つのアクション実行パス状態について一つのレコードを有し、各レコードは「イベント」、「前イベント」、「アクション系列」という3つのフィールドを有する情報である。状態定義レコード表生成部22は、フローチャートの最初の要素である「Start」を読み取ると、アクション実行パス状態欄に「State0」を格納し、且つそのイベント欄にイベント名「Start」と格納したレコードを状態定義レコード表に加える(S20)。
Next, the state definition record
次に、状態定義レコード表生成部22は、「終了(End)」以外の全ての要素を読み込み済みで且つ状態定義済みか否かを判定する(S30)。「終了(End)」以外の全ての要素を読み込み済みである場合には、状態定義レコード表生成部22は現在の状態数を含む状態名をアクション実行パス状態欄に格納し、且つイベント欄に「End」を格納した新たな状態定義レコードを生成し、状態定義レコード表に追加する(S110)。
次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(S120)。
一方、「終了(End)」以外の全ての要素を読み込み済みでない場合(S30、No)、状態定義レコード表生成部22は、フローチャートの連結部分から一要素を読み取る(S40)。
Next, the state definition record
Next, the state definition record
On the other hand, when all elements other than “End” have not been read (No in S30), the state definition record
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(S50)。その要素が条件分岐ではないと判定した場合(S50,No)、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号(ラベルともいう)を状態定義レコード表に登録する(S60)。その後、先に述べたステップS30に戻り、処理を続行する。
Next, the state definition record
一方、ステップ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
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
次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(S100)。その後ステップS30に戻り、処理を続行する。
Next, the state definition record
一方、ステップ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
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
処理対象フローチャートの内容は以下の通りである。まず、初めに第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
次に、状態定義レコード表生成部22は、状態定義レコード表を生成し、当該状態定義レコード表の第1のレコードとして、アクション実行パス状態欄に[State0]が格納され、イベント欄に[Start]が格納されたレコードを加える(図3、S20)。
Next, the state definition record
次に、状態定義レコード表生成部22は、「終了(End)」以外の全ての要素を読み込み済みで且つ状態定義済みか否かを判定する(図3、S30)。この具体例では、まだいずれの要素も読み込んでいないので、判定は「No」としてステップS40に移行する。
Next, the state definition record
次に、状態定義レコード表生成部22は、処理対象フローチャートの連結部分から一要素を読み取る(図3、S40)。この例では処理対象フローチャートの要素「Start」を読み込む。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「Start」は条件分岐ではないと判定される(図3、S50、No)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第1行の「アクション実行パス状態」欄に「State0」と記述し、同第1行の「イベント」欄に読み取った要素の要素番号である「Start」を記述する。
Next, the state definition record
次に、状態定義レコード表生成部22は、ステップS30の判定後、処理対象フローチャートの連結部分から次の一要素を読み取る(図3、S40)。この例では処理対象フローチャートの要素「E1」を読み込む。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する。この例では要素「E1」は条件分岐であると判定される(図3、S50、Yes)。
Next, the state definition record table production |
Next, the state definition record
次に、状態定義レコード表生成部22は、当該条件分岐によって生じる状態を定義する状態名を決定する(図3、S70)。この例では、状態定義レコード表生成部22は、条件分岐「E1」の「True」における経路(E1からA1,A2を経由してE2に至る経路)を状態名「State1」と定め、また条件分岐「E1」の「False」における経路(E1からA2を経由してE2に至る経路)を状態名「State2」と定める。
Next, the state definition record
次に、状態定義レコード表生成部22は、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図3、S80)。この例では、条件分岐「E1」は未だ状態定義レコード表に登録済みではないと判定し(図3、S80、No)、ステップS90に移行する。
Next, the state definition record
ステップ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
次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図3、S100)。この例では、状態定義レコード表生成部22は、直前に登録したイベントである「E1[True]」(第2行)、「E1[False]」(第3行)に対応する「前イベント」欄に、直前に状態を定義したレコード(第1行)の「イベント」欄に記述されたイベント「Start」を記述する。
Next, the state definition record
次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、要素「E1」の次の要素「A1」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する。この例では要素「A1」は条件分岐ではないと判定される(図3、S50、No)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第2行の「アクション系列」欄に「A1」と記述する。
Next, the state definition record
次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、要素「A1」の次の要素「A2」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「A2」は条件分岐ではないと判定される(図3、S50、No)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第2行の「アクション系列」欄に「A2」を追加するように記述する。
Next, the state definition record
次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、処理対象フローチャートにおける要素「A2」の次の要素「E2」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「E2」は条件分岐であると判定される(図3、S50、Yes)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22は、当該条件分岐によって生じる状態を定義する状態名を決定する(S70)。この例では、状態定義レコード表生成部22は、条件分岐「E2」の「True」における経路(E2からA3を経由してEndに至る経路)を状態名「State3」と定め、また条件分岐「E2」の「False」における経路(E2からEndに至る経路)を状態名「State4」と定める。
Next, the state definition record
次に、状態定義レコード表生成部22は、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図3、S80)。この例では、条件分岐「E2」は未だ状態定義レコード表に登録済みではないと判定し(図3、S80、No)、ステップS90に移行する。
Next, the state definition record
ステップ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
次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図3、S100)。この例では、状態定義レコード表生成部22は、第4行及び第5行の登録の直前に登録したレコード(第2行、第3行に相当するレコード)のイベント欄に記述された「E1[True]」(第2行)及び「E1[False]」(第3行)を第4行、第5行の「前イベント」欄に記述する。
Next, the state definition record
次に、状態定義レコード表生成部22は、ステップS30に戻りその後ステップS40において、要素「E2」の次の要素「A3」を読み取る(図3、S40)。
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図3、S50)。この例では要素「A3」は条件分岐ではないと判定される(S50、No)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22は、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図3、S60)。具体的には、図5に示した状態定義レコード表の第4行の「アクション系列」欄に「A3」を記述する。
Next, the state definition record
次に、状態定義レコード表生成部22は、ステップS30に戻り終了(End)以外の全ての要素を読み込み済みか否かを判定する(S30)。この例では、状態定義レコード表生成部22は、終了(End)以外の全ての要素を読み込み済みであると判定し(S30、Yes)、図3BのステップS110に進む。
Next, the state definition record
ステップS110において、状態定義レコード表生成部22は現在の状態数を含む状態名をアクション実行パス状態欄に格納し、且つイベント欄に「End」を格納した新たな状態定義レコードを生成し、状態定義レコード表に追加する(S110)。この例では、第6行のレコードに相当する。
In step S110, the state definition record
次に、状態定義レコード表生成部22は、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(S120)。この例では、状態定義レコード表生成部22は、第6行の登録の直前に登録したレコード(第4行、第5行に相当するレコード)のイベント欄に記述された「E2[True]」(第4行)及び「E2[False]」(第5行)を第6行の「前イベント」欄に記述する。図4に示したフローチャートに基づく状態定義レコード表が完成する。
以上で、状態定義レコード表生成処理の説明を終了する。
Next, the state definition record
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
Next, the state transition
次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての状態定義レコードを読み終えたか否かを判定する(S203)。全ての状態定義レコードを読み終えたと判定した場合(S203、Yes)、状態遷移表生成部23は、状態遷移表の空いているセルの全てに空欄であることを示す所定の情報、例えば記号「/」(スラッシュ)を書き込む(ステップS211)。このステップS211終了後、状態遷移表生成部23は状態遷移表生成処理を終了する。一方、ステップS203において全ての状態定義レコードを読み終えていないと判定した場合(S203、No)、状態遷移表生成部23は、現在処理している状態定義レコード(以下、「処理対象レコード」と呼ぶ)の「アクション実行パス状態」欄に記述されている情報が「State0」でないか否かを判定する(S204)。
Next, the state transition
ステップ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
一方、ステップ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
状態遷移表生成部23はS206において読み取った処理対象レコードの「前イベント」欄に何らかのイベントが記述されているか否かを判定する(S207)。ステップS207において、「前イベント」欄に何のイベントも記述されていないと判定した場合(S207、No)、状態遷移表生成部23は、前イベントに対するアクション実行パス状態を「State0」に決定する(S208)。この「State0」は後述する「処理対象セル」を決定するための情報として用いられる。
The state transition
ステップS208実行後、状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(S209)。より具体的には、状態遷移表生成部23は、状態定義レコード表の全ての状態定義レコードのうち、処理対象レコードの「前イベント」欄に記載されたイベントと同一のイベントを「イベント」欄に有する状態定義レコードを全て抽出する。この抽出された行を抽出レコードと呼ぶこととする。また、処理対象レコードにおいて「前イベント」欄に記載が無い場合は、状態遷移表における「Init」行を、処理対象セルを定めるための行とする。
After step S208 is executed, the state transition
次に、状態遷移表生成部23は、前イベントに対するアクション実行パス状態群に対するイベントの状態遷移先として、イベントに対するアクション実行パス状態を定義する(S210)。より具体的には、状態遷移表生成部23は、状態遷移表において、処理対象レコードにおける「前イベント」に記述されたイベントを「イベント」欄に有する状態定義レコードの「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となるセル(処理対象セルと呼ぶ)の状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込む。また、処理対象レコードの「アクション系列」欄にアクションの記述があれば、そのアクションを上記処理対象セルのアクション欄に書き込む。
ステップS210終了後、状態遷移表生成部23はステップS205に戻る。
Next, the state transition
After step S210 is completed, the state transition
一方、前述のステップ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
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
状態定義レコード表生成部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
次に、状態遷移表生成部23は、状態定義レコード表の第1行の状態定義レコードを読む(図6、S202)。第1行の状態定義レコードはこの時点での「処理対象レコード」となる。図8は、状態とイベントがインデックスとして記述される前の状態遷移表の例を示した図、図9は図8の状態遷移表に状態とイベントがインデックスとして記述された状態を示した図である。
Next, the state transition
次に、状態遷移表生成部23は、状態定義レコード表の全ての状態定義レコードを読み終えたか否かを判定する(図6、S203)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。
Next, the state transition
次に状態遷移表生成部23は処理対象レコードの「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S204)。本具体例では、状態遷移表生成部23はステップS203において処理対象レコードにおける「アクション実行パス状態」欄のセルに記述された情報は「State0」であると判定し、ステップS205に進む(S204、No)。ここで、状態遷移表生成部23はアクション実行パス状態に「Init」が記載された行と、処理対象レコードの「イベント」欄に記載されたイベント「Start」に一致するインデックスを有する列との交点となるセル(処理対象セルと呼ぶ)の状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State0」を書き込む。 図10に、図9の状態の後上記処理で「State0」が書き込まれた状態の状態遷移表の例を示す。
Next, the state transition
[状態定義レコード表、第2行の処理]
ステップS205では、状態遷移表生成部23は状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図7の状態定義レコード表の第2行、「アクション実行パス状態」欄のセルが「State1」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, second row processing]
In step S205, the state transition
次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。
Next, the state transition
次に状態遷移表生成部23は状態定義レコード表の処理対象レコードの「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」のセルは「State1」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第2行、「アクション実行パス状態」欄のセルが「State1」である状態定義レコードが読み取られる。
Next, the state transition
次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(図6、S207)。本具体例では、状態定義レコード表の第2行の「前イベント」欄には、イベント「Start」の記述があるので、ステップS209へと進む。
Next, the state transition
状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(図6、S209)。抽出されたレコード群を「抽出レコード群」と呼ぶこととする。本具体例では、状態定義レコード表においてイベント「Start」が「イベント」欄に記述されている状態定義レコードが抽出され、抽出レコード群は第1行の状態定義レコードのみである。
The state transition
次に、状態遷移表生成部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
[状態定義レコード表、第3行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の第3行、「アクション実行パス状態」欄のセルが「State2」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, third row processing]
Next, the state transition
次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(S203、No)。
Next, the state transition
次に状態遷移表生成部23は状態定義レコード表の処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State2」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第3行、「アクション実行パス状態」欄のセルが「State2」である状態定義レコードが読み取られる。
Next, the state transition
次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(S207)。本具体例では、状態定義レコード表の第3行の「前イベント」欄には、イベント「Start」の記述があるので、ステップS209へと進む。
Next, the state transition
状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(図6、S209)。本具体例では、状態定義レコード表においてイベント「Start」が「イベント」欄に記述されている状態定義レコードが抽出レコード群として抽出され、抽出レコード群は第1行の状態定義レコードのみである。
The state transition
次に、状態遷移表生成部23は、状態遷移表において、抽出レコード群の「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(S210参照)。本具体例では、抽出レコード群は状態定義レコード表の第1行のみであり、その第1行の「アクション実行パス状態」欄に記載されているアクション実行パス状態は「State0」である。また、処理対象レコードの「イベント」欄に記載されたイベントは「E1[False]」である。よって、状態遷移表における処理対象セルは、「State0」をインデックスとする第2行と、「E1[False]」をインデックスとする左端から第3列との交点であるセルに決定される。状態遷移表生成部23はこの処理対象セルの状態欄(セル内上側)に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態「State2」を書き込む。状態遷移表生成部23は処理対象セルのアクション欄(セル内下側)に、処理対象レコードの「アクション系列」欄に記述されているアクションを上記処理対象セルのアクション欄(セル内下側)に書き込むのであるが、処理対象レコード「アクション系列」欄は空欄であるので、上記処理対象セルのアクション欄は空欄のままとなる。(S210参照)。処理対象セルに上記「State2」が記述され、アクション欄は空欄のままとされた状態の状態遷移表の例を図12に示す。
Next, the state transition
[状態定義レコード表、第4行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の第4行、「アクション実行パス状態」欄のセルが「State3」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, 4th line]
Next, the state transition
次に、状態遷移表生成部23は、取得した状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203参照)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。
Next, the state transition
次に状態遷移表生成部23は処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State3」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第4行、「アクション実行パス状態」欄のセルが「State3」である状態定義レコードが読み取られる。
Next, the state transition
次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(図6、S207)。本具体例では、状態定義レコード表の第4行の「前イベント」欄には、イベント「E1[True]」及び「E1[False]」の記述があるので、ステップS209へと進む。
Next, the state transition
状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(S209参照)。本具体例では、状態定義レコード表においてイベント「E1[True]」及び「E1[False]」が「イベント」欄に記述されている状態定義レコードが抽出され、抽出レコードは「E1[True]」について第2行の状態定義レコードのみ、「E1[False]」について第3行の状態定義レコードのみである。
The state transition
次に、状態遷移表生成部23は、状態遷移表において、抽出レコード群の「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(図6、S210参照)。
Next, the state transition
状態定義レコード表において「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
次に、もう一つのイベントである「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
[状態定義レコード表、第5行の処理]
次に状態遷移表生成部23はステップS205に進み、状態定義レコード表の次のレコードを処理対象レコードにする(図6、S205)。本具体例では、図5の状態定義レコード表の第5行、「アクション実行パス状態」欄のセルが「State4」である状態定義レコードが新たな処理対象レコードに決定される。
[State definition record table, 5th line]
Next, the state transition
次に、状態遷移表生成部23は、状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203参照)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。
Next, the state transition
次に状態遷移表生成部23は状態定義レコード表の処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State4」であるので、ステップS2066に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第5行、「アクション実行パス状態」欄のセルが「State4」である状態定義レコードが読み取られる。
Next, the state transition
次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(S207)。本具体例では、状態定義レコード表の第5行の「前イベント」欄には、イベント「E1[True]」及び「E1[False]」の記述があるので、ステップS209へと進む(図6、S207、Yes)。
Next, the state transition
状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(S209参照)。本具体例では、状態定義レコード表においてイベント「E1[True]」及び「E1[False]」が「イベント」欄に記述されている状態定義レコードが抽出され、「E1[True]」についての抽出レコード群は第2行の状態定義レコードのみ、「E1[False]」についての抽出レコード群は第3行の状態定義レコードのみである。
The state transition
次に、状態遷移表生成部23は、状態遷移表において、抽出レコードの「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(図6、S210)。
Next, in the state transition table, the state transition
状態定義レコード表において「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
次に、もう一つのイベントである「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
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
次に、状態遷移表生成部23は、状態定義レコード表の全ての行(レコード)を読み終えたか否かを判定する(図6、S203参照)。本具体例では、状態遷移表生成部23は全ての行を読み終えていないと判定する(図6、S203、No)。
Next, the state transition
次に状態遷移表生成部23は状態定義レコード表の処理対象レコード「アクション実行パス状態」のセルに記述されている情報が「State0」でないか否かを判定する(図6、S203参照)。本具体例では、処理対象レコードの「アクション実行パス状態」欄の記述は「State5」であるので、ステップS206に進む。ステップS206において、状態遷移表生成部23は処理対象レコードを読む。本具体例では、状態定義レコード表の第3行、「アクション実行パス状態」欄のセルが「State5」である状態定義レコードが読み取られる。
Next, the state transition
次に、状態遷移表生成部23は、処理対象レコードにおける「前イベント」欄に記述されたイベントがあるか否かを判定する(図6、S207)。本具体例では、状態定義レコード表の第6行の「前イベント」欄には、イベント「E2[True]」及び「E2[False]」の記述があるので、ステップS209へと進む(図6、S207、Yes)。
Next, the state transition
状態遷移表生成部23は、状態定義レコード表から、前イベントに対するアクション実行パス状態を有する状態定義レコード群を抽出する(図6、S209)。本具体例では、状態定義レコード表においてイベント「E2[True]」及び「E2[False]」が「イベント」欄に記述されている状態定義レコードが抽出され、抽出レコード群は「E2[True]」について第4行の状態定義レコードのみ、「E2[False]」について第5行の状態定義レコードのみである。
The state transition
次に、状態遷移表生成部23は、状態遷移表において、抽出レコードの「アクション実行パス状態」欄に記載されたアクション実行パス状態に一致するインデックスを有する行と、処理対象レコードの「イベント」欄に記載されたイベントに一致するインデックスを有する列との交点となる処理対象セルの状態欄に、処理対象レコードの「アクション実行パス状態」欄に記載されているアクション実行パス状態を書き込み、同処理対象セルのアクション欄に、処理対象レコードの「アクション系列」欄に記載されたアクションを記述する(図6、S210)。
Next, the state transition
状態定義レコード表において「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
次に、もう一つのイベントである「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
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
ステップS211において、状態遷移表生成部23は状態遷移表の全ての空欄に、該当欄が空欄であることを示す情報として"/"を記述する。該当欄が空欄であることを示す情報が記述された状態の状態遷移表の例を図16に示す。図16に示す状態が完成した状態遷移表となる。
以上で、状態遷移表生成処理が終了し、図16に示した状態遷移表が完成する。
In step S211, the state transition
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
状態遷移表生成装置11、より詳しくは状態遷移表生成部23は図18に示す状態定義レコード表を受信すると、これに基づいて状態遷移表生成処理(図6参照)を実行し、状態遷移表を生成し出力する。図19は、状態遷移表生成処理によって図18の状態定義レコードから生成された状態遷移表の例を示す。
Upon receiving the state definition record table shown in FIG. 18, the state transition
[実施例1:追加機能]
状態遷移表生成装置11、より詳しくはイベント/アクション定義レコード生成部24は、各イベント並びにアクションに付したラベルと、各イベント並びにアクションの内容を対応付けして示した表である、「イベント/アクション定義レコード」を生成する。
図20は、図18に示したフローチャートから状態遷移表を生成する際に、状態遷移表生成装置、より詳しくは状態定義レコード表生成部によって生成される「イベント/アクション定義レコード」の一例を示した図である。
[Example 1: Additional functions]
The state transition
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
まず、状態遷移表生成装置11はソースコードに基づいて状態定義レコード表を生成する。これは図3に示した状態定義レコード生成処理を実行することによって行われる。但し、if文、while文が「条件分岐」として扱われ、その他の命令文は「処理」として扱われる。
状態遷移表生成装置11は、生成した状態定義レコード表に基づいて状態遷移表を生成する。この処理は図6に示す状態遷移表生成処理によって行われる。
First, the state transition
The state transition
図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
[まとめ]
本実施の態様によれば、状態遷移表等の事象-応答型の仕様を入力情報として検査コードを自動変換するモデル検査支援ツールに対して、フローチャート等の時系列の入力情報を扱うことができるようになる。
本実施の態様によれば、時系列の仕様の条件と処理を、状態遷移のイベント、条件、アクションに適切に対応させることで、状態遷移系に変換させても、条件に応じた処理のパスを理解容易にすることができる。
[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
[動作例]
次に、状態遷移表生成装置11Aの動作例を説明する。入出力順序系列仕様記憶部21、状態遷移表生成部23、イベント/アクション定義レコード生成部24のそれぞれは、第1の実施の形態における動作と同様なので、これらの動作の説明は省略する。以下に、状態定義レコード生成部22Aの動作を述べる。
[Example of operation]
Next, an operation example of the state transition
図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
The state definition record generation process, which is the operation of the state definition
ステップS90Aにおいて、状態定義レコード生成部22Aは同一の状態名(アクション実行パス状態を特定する情報)を有する状態定義レコードを2つ作成し、一方のレコードに当該条件分岐の「True」をそのイベント欄に登録し、他方のレコードのイベント欄に「False」を登録する。
In step S90A, the state definition
その他の各ステップについては、第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
まず、状態定義レコード表生成部22Aは、図28に示したフローチャートの条件分岐、処理の各要素にそれぞれイベントとアクションの番号付けをする(図26、S10)。具体的には、第1の条件分岐S101にはイベント番号「E1」を付与し、第2の条件分岐S104にはイベント番号「E2」を付与する。また、アクションS102、S103、S104にはそれぞれアクション番号「A1」、「A2」、「A3」を付与する。
First, the state definition record
次に、状態定義レコード表生成部22は、状態定義レコード表を生成し、フローチャートの最初の要素である「Start」を読み取ると、アクション実行パス状態欄に「State0」を格納し、且つそのイベント欄にイベント名「Start」と格納したレコードを状態定義レコード表に加える(図26、S20)。
Next, when the state definition record
次に、状態定義レコード表生成部22Aは、「終了(End)」以外の全ての要素を読み込み済みか否かを判定する(図26、S30)。この具体例では、全ての要素を読み込んでいないので、判定は「No」となりステップS40に移行する。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、ステップS30の判定後、処理対象フローチャートの連結部分から次の一要素を読み取る(図26、S40)。この例では処理対象フローチャートの要素「E1」を読み込む。
Next, after the determination in step S30, the state definition record
次に、状態定義レコード表生成部22は、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「E1」は条件分岐であると判定される(図26、S50、Yes)。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、当該条件分岐によって生じる状態を定義する状態名を決定する(図26、S70)。この例では、状態定義レコード表生成部22は、条件分岐「E1」を状態名「State1」と定める。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図26、S80)。この例では、条件分岐「E1」は未だ状態定義レコード表に登録済みではないと判定し(図26、S80、No)、ステップS90Aに移行する。
Next, the state definition record
ステップ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
次に、状態定義レコード表生成部22Aは、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図26、S100)。この例では、状態定義レコード表生成部22Aは、直前に登録したイベントである「E1[True]」(第2行)、「E1[False]」(第3行)に対応する「前イベント」欄に、直前に状態を定義したレコード(第1行)の「イベント」欄に記述されたイベント「Start」を記述する。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、ステップS30に戻りその後ステップS40において、要素「E1」の次の要素「A1」を読み取る(図26、S40)。
次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する。この例では要素「A1」は条件分岐ではないと判定される(図26、S50、No)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22Aは、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図26、S60)。具体的には、図29に示した状態定義レコード表の第2行の「アクション系列」欄に「A1」と記述する。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、ステップS30に戻り、続くステップS40において、要素「A1」の次の要素「A2」を読み取る(図26、S40)。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「A2」は条件分岐ではないと判定される(図26、S50、No)。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図26、S60)。具体的には、図29に示した状態定義レコード表の第2行の「アクション系列」欄に「A2」を追加して記述する。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、ステップS30に戻りその後ステップS40において、処理対象フローチャートにおける要素「A2」の次の要素「E2」を読み取る(図26、S40)。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「E2」は条件分岐であると判定される(図26、S50、Yes)。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、当該条件分岐によって生じる状態を定義する状態名を決定する(図26、S70)。この例では、状態定義レコード表生成部22Aは、条件分岐「E2」を状態名「State2」と定める。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、その条件分岐がイベントとして状態定義レコード表に登録済みであるか否かを判定する(図26、S80)。この例では、条件分岐「E2」は未だ状態定義レコード表に登録済みではないと判定し(図26、S80、No)、ステップS90Aに移行する。
Next, the state definition record
ステップ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
次に、状態定義レコード表生成部22Aは、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図26、S100)。この例では、状態定義レコード表生成部22Aは、第4行及び第5行の登録の直前に登録したレコード(第2行、第3行のレコード)のイベント欄に記述された「E1[True]」(第2行)及び「E1[False]」(第3行)を第4行、第5行の「前イベント」欄に記述する。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、ステップS30に戻りその後ステップS40において、要素「E2」の次の要素「A3」を読み取る(図26、S40)。
次に、状態定義レコード表生成部22Aは、読み取った要素が条件分岐か否かを判定する(図26、S50)。この例では要素「A3」は条件分岐ではないと判定される(図26、S50、No)。
Next, the state definition record
Next, the state definition record
次に、状態定義レコード表生成部22Aは、その要素(処理)を当該条件のイベントに対するアクションとして、読み取った要素の要素番号を状態定義レコード表に登録する(図26、S60)。具体的には、図29に示した状態定義レコード表の第4行の「アクション系列」欄に「A3」を記述する。
Next, the state definition record
次に、状態定義レコード表生成部22Aは、ステップS30に戻り、終了(End)以外の全ての要素を読み込み済みか否かを判定する(図26、S30)。この例では、状態定義レコード表生成部22Aは、終了(End)以外の全ての要素を読み込み済みであると判定し(S30、Yes)、図27のステップS110に進む。
Next, the state definition record
ステップS110において、状態定義レコード表生成部22Aは現在の状態数を含む状態名をアクション実行パス状態欄に格納し、且つイベント欄に「End」を格納した新たな状態定義レコードを生成し、状態定義レコード表に追加する(図27、S110)。図29の例では、第6行のレコードに相当する。
In step S110, the state definition record
次に、状態定義レコード表生成部22Aは、登録した或いは登録済みイベントの前イベントに、前記2つのレコードの直前に状態を定義したレコードのイベントを登録する(図27、S120)。この例では、状態定義レコード表生成部22Aは、第6行の登録の直前に登録したレコード(第4行、第5行に相当するレコード)のイベント欄に記述された「E2[True]」(第4行)及び「E2[False]」(第5行)を第6行の「前イベント」欄に記述する。
以上で、図26に示したフローチャートの処理に基づいて、図29に示した状態定義レコード表が完成する。
Next, the state definition record
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
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
図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
[クライアント側]
図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
[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
なお、本実施の形態の変形として、条件分岐が連続している場合(図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 “
[その他]
以上、本発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加、組み合わせ等が可能である。
変形例として、状態遷移表生成装置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
10・・・入出力順序系列仕様; 11・・・状態遷移表生成装置; 12・・・状態遷移表; 21・・・入出力順序系列仕様記憶部; 22、22A・・・状態定義レコード生成部; 23・・・状態遷移表生成部; 24・・・イベント/アクション定義レコード生成部
DESCRIPTION OF
Claims (3)
前記状態定義レコード表に基づいて、前記状態定義レコード表に含まれるアクション実行パス状態ごとに一つのレコードを有し、各レコードは、前記状態定義レコード表に含まれる各イベントに対応するフィールドを有する情報である状態遷移表を生成する第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.
前記状態定義レコード表に基づいて、前記状態定義レコード表に含まれるアクション実行パス状態ごとに一つのレコードを有し、各レコードは、前記状態定義レコード表に含まれる各イベントに対応するフィールドを有する情報である状態遷移表を生成する第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.
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.
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)
| 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)
| 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 |
-
2011
- 2011-12-28 JP JP2011287991A patent/JP5774468B2/en not_active Expired - Fee Related
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 |