JP6169302B2 - Specification configuration apparatus and method - Google Patents

Specification configuration apparatus and method Download PDF

Info

Publication number
JP6169302B2
JP6169302B2 JP2017507175A JP2017507175A JP6169302B2 JP 6169302 B2 JP6169302 B2 JP 6169302B2 JP 2017507175 A JP2017507175 A JP 2017507175A JP 2017507175 A JP2017507175 A JP 2017507175A JP 6169302 B2 JP6169302 B2 JP 6169302B2
Authority
JP
Japan
Prior art keywords
model
transition
event
state
data
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
JP2017507175A
Other languages
Japanese (ja)
Other versions
JPWO2016151710A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016151710A1 publication Critical patent/JPWO2016151710A1/en
Application granted granted Critical
Publication of JP6169302B2 publication Critical patent/JP6169302B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Description

本発明は、システム設計の初期工程においてシステムの仕様を検証し、その構成を支援する装置および方法に関わる。   The present invention relates to an apparatus and method for verifying system specifications in an initial process of system design and supporting the configuration.

従来、組込みシステムやビジネスシステムの開発では、システムを熟知した設計者がソフトウェアを開発するのが通例であった。このため、もしシステム設計の初期工程(以下、上流工程と呼ぶ)で曖昧さや誤りが存在したとしても、後のソフトウェア開発工程で発見し修正することができ、開発後のシステムの運用段階まで持ち越され欠陥として発見されることは少なかった。しかし、システムが複雑になるにつれて設計者がシステム全体を把握することが困難になり、ソフトウェア開発工程での修正に依存した方法では欠陥が除去しきれなくなりつつある。   Conventionally, in the development of embedded systems and business systems, it is customary for designers who are familiar with the system to develop software. For this reason, even if there is ambiguity or error in the initial process of system design (hereinafter referred to as upstream process), it can be discovered and corrected in the later software development process, and it is carried over to the system operation stage after development. It was rarely found as a defect. However, as the system becomes more complex, it becomes difficult for the designer to grasp the entire system, and it is becoming impossible to remove defects by a method that relies on correction in the software development process.

このような背景から現在では、上流工程で誤りを除去し、ソフトウェア開発工程での手戻りを減らすことが、ソフトウェアの信頼性と生産性を向上させるうえで有効であると考えられている。上流工程の誤り除去を実現するため、上流工程の仕様記述と仕様の整合性確認が重要であり、上流工程に適した仕様記述法の利用が進んでいる。仕様は一般に、システムが扱うデータに関する記述、システムが実行する処理に関する記述、及びシステムの動的な振舞いに関する記述から構成される。上流工程では、処理に関する記述にはユースケース、振舞いに関する記述には処理フロー図が使われる一方、データに関する記述は抽象化されてユースケースに埋め込まれることが多い。   From such a background, it is considered that removing errors in the upstream process and reducing rework in the software development process are effective in improving the reliability and productivity of the software. In order to realize error elimination in the upstream process, it is important to check the consistency between the specification description of the upstream process and the specification, and the use of a specification description method suitable for the upstream process is progressing. The specification generally includes a description regarding data handled by the system, a description regarding processing executed by the system, and a description regarding dynamic behavior of the system. In the upstream process, a use case is used for a description relating to processing, and a processing flow diagram is used for a description relating to behavior, while a description relating to data is often abstracted and embedded in a use case.

上流工程の仕様における、処理に関する記述、動的な振舞いに関する記述の間には関連があり、システムの仕様はこれらの総体として表現される。しかし、各記述をまたがった仕様の整合性のチェックは困難であり、記述間の不整合による欠陥が除ききれなかった。これに対し特許文献1では、状態遷移表、アクション表、条件判定表、および制約条件表の4つの表に仕様を記述した後、それらを結合して1つの形式的なモデルを構成し、整合性を検証する方法が開示されている。   There is a relationship between the description of processing and the description of dynamic behavior in the specifications of the upstream process, and the system specifications are expressed as a whole of these. However, it is difficult to check the consistency of specifications across descriptions, and defects due to inconsistencies between descriptions cannot be completely removed. On the other hand, in Patent Document 1, specifications are described in four tables, a state transition table, an action table, a condition determination table, and a constraint condition table, and then combined to form a formal model. A method for verifying sex is disclosed.

具体的には、動的な振舞いを状態遷移表に、処理をアクション表に、遷移条件を条件判定表に記述し、制約条件表に記述したデータと状態の対応をチェックする。状態遷移表は、状態、イベント、及び遷移に加えて、遷移が起こるガード条件、及び遷移にともなうアクションから構成される。アクション表は、アクションに関して、アクションを起こすための事前条件、アクション後に成立すべき事後条件、アクションによる要素の値の更新を表す処理内容から構成される。条件判定表は、アクションと遷移が実行可能か否かの判定条件を表現し、ガード条件と事前条件から構成される。制約条件表は要素の値を状態ごとに記述する。   Specifically, the dynamic behavior is described in the state transition table, the process is described in the action table, the transition condition is described in the condition determination table, and the correspondence between the data described in the constraint condition table and the state is checked. The state transition table includes a state, an event, and a transition, a guard condition in which the transition occurs, and an action associated with the transition. The action table is composed of pre-conditions for causing an action, post-conditions to be established after the action, and processing contents representing element value update by the action. The condition determination table expresses a determination condition as to whether or not an action and a transition can be executed, and includes a guard condition and a precondition. The constraint table describes element values for each state.

特許文献1の装置は、記述された仕様から1つの形式的なモデルを生成する。このモデルをモデル検査器に入力し、モデル検査器を使って整合性を検証することにより、記述された仕様の不整合を機械的に検出する。   The apparatus of Patent Document 1 generates one formal model from the described specifications. This model is input to the model checker, and the consistency is verified using the model checker, thereby mechanically detecting the inconsistency of the described specification.

特開2009−157661公報JP 2009-157661 A

特許文献1に記載された仕様記述方法によれば、システムがある状態にあるときイベントが発生すると、システムは、状態とイベントに対して指定されたアクションを実行し、指定された状態に遷移する。アクションまたは遷移が実行可能か否かは、条件判定表の記述によって判定される。これは、プログラムモジュールの呼び出しをアクションと対応付け易い点で、設計工程で実装の仕様を記述するのに適していると考えられる。   According to the specification description method described in Patent Document 1, when an event occurs when the system is in a certain state, the system executes a specified action for the state and the event, and transitions to the specified state. . Whether or not an action or transition can be executed is determined by the description in the condition determination table. This is considered to be suitable for describing the implementation specifications in the design process because it is easy to associate the call of the program module with the action.

一方、上流工程の仕様記述の観点からは、イベントとアクションの区分が煩雑である。設計工程での仕様記述が計算機における実装方法の明確化を目的とするのに対し、上流工程での仕様記述は、人のための処理概要の明確化を目的としており、人が把握容易な仕様記述であることが求められる。例えば上記の場合、どのような時に何が起こり、その結果どのような効果が得られるか、が簡潔に表現できれば良い。特許文献1の方法では、できごとをイベントに、処理をアクションに分離しているため、人が仕様を把握するにはイベント名とアクション名の照合が必要であるとともに、アクションあるいは遷移が実行可能かどうかを判定するために条件判定表を参照する必要がある。このことは、人が仕様を直感的に把握することを難しくしている。人が把握しにくい仕様から形式的なモデルを生成し、整合性を検証すると、仕様の不整合が多く検出される。   On the other hand, from the viewpoint of description of specifications of upstream processes, the classification of events and actions is complicated. While the specification description in the design process aims to clarify the implementation method in the computer, the specification description in the upstream process is intended to clarify the processing outline for people, and it is a specification that is easy for humans to grasp. It is required to be a description. For example, in the case described above, it is only necessary to be able to express concisely what happens and what effect is obtained as a result. In the method of Patent Document 1, since events are separated into events, and processing is separated into actions, it is necessary for a person to check the specifications and match the event name with the action name, and the action or transition can be executed. In order to determine whether or not, it is necessary to refer to the condition determination table. This makes it difficult for a person to grasp the specifications intuitively. When a formal model is generated from a specification that is difficult for humans to grasp and the consistency is verified, many inconsistencies in the specification are detected.

また、モデル検査器に入力するためのモデル作成支援装置の提供を目的としており、モデル検査器を使って検証することが前提である。モデル検査は、すべての状態遷移の組み合わせについて網羅的に検査するので、並行動作を含むシステムの仕様検証には有効な検証方法であるが、並行動作を含まないシステムの仕様不整合の検出には効率が悪い。   Moreover, it aims at provision of the model creation assistance apparatus for inputting into a model checker, and it is premised on verifying using a model checker. Model checking is an exhaustive check for all combinations of state transitions, so it is an effective verification method for system specification verification that includes parallel operations. ineffective.

そこで、システム設計の初期工程おいて、人(設計者)が記述した仕様の整合性を効率的に検証できることが求められる。   Therefore, it is required that the consistency of specifications described by a person (designer) can be efficiently verified in the initial process of system design.

開示する仕様構成装置は、システムの動的な振る舞いを、システムの状態とイベントによる状態の遷移の組み合わせにより記述した遷移モデルを入力する遷移モデル入力部、イベントによる遷移に伴うデータ値の更新を記述した処理モデルを入力する処理モデル入力部、システムが満たすべきデータ値の条件を状態に対応付けて記述した検証条件を入力する検証条件入力部、遷移モデルと処理モデルを共通のイベントで関連付けることにより、遷移モデルと処理モデルを結合した結合モデルを生成するモデル結合部、および、結合モデルをデータフロー解析し、状態について検証条件が満たされることを検証するデータフロー解析部を有する。   The specification component device to be disclosed is a transition model input unit that inputs a transition model in which the dynamic behavior of the system is described by a combination of the system state and the state transition by the event, and the data value update accompanying the transition by the event is described A processing model input unit that inputs a processed model, a verification condition input unit that inputs a verification condition in which a condition of a data value that the system should satisfy is associated with a state, and a transition model and a processing model are associated with a common event A model combining unit that generates a combined model obtained by combining the transition model and the processing model, and a data flow analyzing unit that performs data flow analysis on the combined model and verifies that the verification condition is satisfied for the state.

開示する仕様構成装置によれば、システム設計の初期工程おいて、人が記述した仕様を効率的に検証できる。   According to the disclosed specification component apparatus, it is possible to efficiently verify a specification written by a person in the initial process of system design.

仕様構成装置における仕様構成方法を示すフロー図である。It is a flowchart which shows the specification structure method in a specification structure apparatus. 仕様構成装置の構成を示す図である。It is a figure which shows the structure of a specification structure apparatus. 遷移モデルの記述例を示す図である。It is a figure which shows the example of a description of a transition model. 処理モデルの記述例を示す図である。It is a figure which shows the example of a description of a processing model. 検証条件の記述例を示す図である。It is a figure which shows the example of description of verification conditions. モデルの結合部のフロー図である。It is a flowchart of the connection part of a model. 結合モデルの例を示す図である。It is a figure which shows the example of a connection model. データフロー解析部のフロー図である。It is a flowchart of a data flow analysis part. データフロー解析部の手続き1の手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure 1 of a data flow analysis part. データフロー解析部の手続き2の手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure 2 of a data flow analysis part. データフロー解析部の手続き3の手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure 3 of a data flow analysis part. データフロー解析部の手続き4の手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure 4 of a data flow analysis part. データフロー解析部が生成するデータ値の例を示す図である。It is a figure which shows the example of the data value which a data flow analysis part produces | generates. データフロー解析部が生成するデータ遷移グラフの例を示す図である。It is a figure which shows the example of the data transition graph which a data flow analysis part produces | generates. デッドロック検査モデル生成部のフロー図である。It is a flowchart of a deadlock test | inspection model production | generation part. デッドロック検査モデル生成部の手続きAの手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure A of a deadlock test model production | generation part. デッドロック検査モデル生成部の手続きBの手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure B of a deadlock test model production | generation part. デッドロック検査モデル生成部の手続きCの手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure C of a deadlock test model production | generation part. デッドロック検査モデル生成部の手続きDの手順を示すフロー図である。It is a flowchart which shows the procedure of the procedure D of a deadlock test model production | generation part. デッドロック検査モデル生成部が生成するデッドロック検査モデルの例を示す図である。It is a figure which shows the example of the deadlock test | inspection model which a deadlock test | inspection model production | generation part produces | generates.

利用者は、遷移モデルと処理モデルと検証条件を入力し、遷移モデルと処理モデルの間に不整合が無いこと、および別途入力した検証条件が満たされることを、仕様構成装置を用いて検証する。また、遷移モデルが複数の状態遷移系列に関わる並行動作を含むとき、状態遷移が進行しないデッドロックが各状態遷移系列の実行順序によって起こらないことを、仕様構成装置が生成するデッドロック検査モデルについて検査する。   The user inputs the transition model, processing model, and verification condition, and verifies that there is no inconsistency between the transition model and the processing model and that the verification condition that is input separately is satisfied using the specification component device. . In addition, when the transition model includes parallel operations related to a plurality of state transition sequences, the deadlock inspection model generated by the specification component device indicates that a deadlock in which the state transition does not proceed does not occur depending on the execution order of each state transition sequence. inspect.

図1は、仕様構成装置における仕様構成方法を示すフロー図である。利用者は仕様構成装置に、遷移モデルを入力し(ステップ1)、処理モデルを入力し(ステップ2)、検証条件を入力する(ステップ3)。これらの入力は、どのような順序で行われても良い。また、検証条件の入力は、次のステップ4の後でも良い。   FIG. 1 is a flowchart showing a specification configuration method in the specification configuration apparatus. The user inputs a transition model (step 1), a processing model (step 2), and a verification condition (step 3) into the specification component device. These inputs may be performed in any order. The verification condition may be input after the next step 4.

仕様構成装置は、入力された遷移モデルと処理モデルを照合し、両者を結合したモデルを生成する(ステップ4)。仕様構成装置は、結合されたモデルのデータフローを解析し、処理モデルの処理を遷移モデルの順序で実行することが可能であり、さらに検証条件が満たされることを検証する(ステップ5)。   The specification component device collates the input transition model with the processing model, and generates a model in which both are combined (step 4). The specification configuration apparatus analyzes the data flow of the combined model, can execute the processing of the processing model in the order of the transition model, and further verifies that the verification condition is satisfied (step 5).

仕様構成装置は、検証条件が満たされることを判定し(ステップ6)、検証条件が満たされない場合には、不整合箇所出力(ステップ7)へ進む。検証条件が満たされている場合には、仕様構成装置は、並行動作の有無を判定する(ステップ8)。並行動作が無い場合には、入力されたモデルは整合しているので、仕様構成装置は処理を終了する。   The specification configuration apparatus determines that the verification condition is satisfied (step 6), and if the verification condition is not satisfied, the specification configuration apparatus proceeds to the inconsistent location output (step 7). If the verification condition is satisfied, the specification configuration apparatus determines whether or not there is a parallel operation (step 8). If there is no parallel operation, the input model is consistent, and the specification configuration apparatus ends the process.

モデルに並行動作が含まれている場合には、仕様構成装置は、デッドロックの有無を検査するためのデッドロック検査モデルを生成する(ステップ9)。仕様構成装置は、たとえば、SPINモデル(Mordechai Ben-Ari著 中島震監訳 谷津弘一、野中哲、足立太郎共訳:SPINモデル検査入門、オーム社 2010年)のような一般のモデル検査器を用いて、デッドロックの有無を検査する(ステップ10)。仕様構成装置は、デッドロックの有無を判定し(ステップ11)、デッドロックがある場合には不整合箇所出力を実行する(ステップ7)。デッドロックが無い場合には、仕様構成装置は、入力されたモデルは整合しているとして、処理を終了する。   If the model includes a parallel operation, the specification configuration apparatus generates a deadlock inspection model for inspecting the presence or absence of deadlock (step 9). For example, SPIN model (Mordechai Ben-Ari, translated by Nakajima Earthquake, translated by Koichi Yatsu, Satoshi Nonaka, Taro Adachi: Introduction to SPIN Model Checking, Ohm Company 2010) The presence or absence of deadlock is inspected (step 10). The specification configuration apparatus determines whether or not there is a deadlock (step 11), and if there is a deadlock, executes the inconsistent location output (step 7). If there is no deadlock, the specification component apparatus determines that the input model is consistent and ends the process.

図2は、仕様構成装置の構成を示す図であり、図1の各ステップに対応した構成要素を持つ。仕様構成装置21は、検証結果27とデッドロック検査モデル210を出力する。   FIG. 2 is a diagram showing the configuration of the specification configuration apparatus, which has components corresponding to the steps in FIG. The specification component device 21 outputs the verification result 27 and the deadlock inspection model 210.

遷移モデル入力部22は、利用者からの遷移モデルを入力する。図2では、仕様構成装置21を利用者が操作して遷移モデルを入力する形態について図示しているが、この形態に限らず、利用者が予め記述した遷移モデルを、ファイル等を通じて入力する形態でも良い。また、遷移モデルの入力の際に、処理モデルや検証条件を参照して利用者の入力を支援する形態であっても良い。これは、処理モデル入力部23、検証条件入力部24についても同様である。   The transition model input unit 22 inputs a transition model from the user. FIG. 2 illustrates a mode in which the user operates the specification configuration device 21 and inputs a transition model. However, the present invention is not limited to this mode, and a mode in which a transition model described in advance by the user is input through a file or the like. But it ’s okay. Further, when a transition model is input, a form that supports user input with reference to a processing model and verification conditions may be used. The same applies to the processing model input unit 23 and the verification condition input unit 24.

処理モデル入力部23は、利用者からの処理モデルを入力する。検証条件入力部24は、利用者からの検証条件を入力する。   The processing model input unit 23 inputs a processing model from the user. The verification condition input unit 24 inputs verification conditions from the user.

モデル結合部25は、入力された遷移モデルと処理モデルを結合したモデルを生成する。データフロー解析部26は、モデル結合部25で生成されたモデルについてデータフローを解析し、処理モデルの処理を遷移モデルの順序で実行することが可能であり、さらに検証条件が満たされることを検証する。仕様構成装置21は、データフロー解析部26による検証結果27を出力する。   The model combining unit 25 generates a model obtained by combining the input transition model and the processing model. The data flow analysis unit 26 analyzes the data flow for the model generated by the model combining unit 25, can execute the processing model processing in the order of the transition model, and further verifies that the verification condition is satisfied. To do. The specification component device 21 outputs a verification result 27 by the data flow analysis unit 26.

デッドロック検査モデル生成部28であり、一般のモデル検査器を利用してデッドロック検査を行うための、モデル検査器が処理できる形式にモデルを変換する。なお、デッドロック検査の入力は必ずしも検証済モデルである必要はなく、遷移モデルと処理モデルから改めて生成しても良い。   The deadlock check model generation unit 28 converts the model into a format that can be processed by the model checker for performing a deadlock check using a general model checker. The input of the deadlock inspection is not necessarily a verified model, and may be generated again from the transition model and the processing model.

仕様構成装置21は、デッドロック検査モデル生成部28が生成したデッドロック検査モデル29を出力する。利用者は、デッドロック検査モデル29をモデル検査器210に入力し、デッドロック検査結果211を得る。   The specification component device 21 outputs the deadlock inspection model 29 generated by the deadlock inspection model generation unit 28. The user inputs the deadlock check model 29 to the model checker 210 and obtains the deadlock check result 211.

図3は、利用者が入力する遷移モデルの記述例を示す図である。遷移モデルは、上流工程で使われる処理フローに準ずる形式で、処理の流れを記述したものである。SIは開始状態31、SEは終了状態32を表し、処理の流れは開始状態31から始まり、一連の処理を経由して、終了状態32に至れば終了する。   FIG. 3 is a diagram illustrating a description example of the transition model input by the user. The transition model describes the flow of processing in a format that conforms to the processing flow used in the upstream process. SI represents a start state 31 and SE represents an end state 32. The flow of processing starts from the start state 31 and ends when the end state 32 is reached through a series of processes.

四角形32〜36は処理を示し、ここではイベントと呼ぶ。矢印は次に実行すべき処理を表し、ここでは遷移と呼ぶ。矢印と矢印を繋ぐ丸は、ここでは状態と呼ぶ。   Squares 32 to 36 indicate processing, and are called events here. An arrow represents a process to be executed next, and is referred to as a transition here. The circle connecting the arrows is called a state here.

図3の遷移モデルが表す処理フローは、次の通りである。開始状態31から処理が始まり、受付区分判定新規32および受付区分判定更改33のいずれかの処理が実行された後、契約書作成34が実行される。その後、契約者情報登録36が実行されて終了状態37に至るか、申込区分変更35により再び受付区分判定新規32および受付区分判定更改33のいずれかの処理に戻る。   The processing flow represented by the transition model in FIG. 3 is as follows. The process starts from the start state 31, and after the processing of either the acceptance category determination new 32 or the acceptance category determination renewal 33 is executed, the contract creation 34 is executed. Thereafter, the contractor information registration 36 is executed to reach an end state 37, or the application category change 35 returns to either the acceptance category determination new 32 or the acceptance category determination renewal 33 again.

遷移モデルには、このような処理フローを複数記述することができる。すなわち、互いに交わることのない、開始状態から終了状態への一連の処理が、複数存在し得る。その場合、それらの処理フローは並行動作するものとみなす。ここで、異なる一連の処理フローの間に共通のイベントが出現する場合、処理フローは共通のイベントを通じて同期すると考える。   A transition model can describe a plurality of such processing flows. That is, there can be a plurality of series of processes from the start state to the end state that do not intersect with each other. In that case, it is considered that those processing flows operate in parallel. Here, when a common event appears between different series of processing flows, the processing flow is considered to be synchronized through the common event.

このような複数記述は、大きな1つの処理フローを複数の処理フローに分割して記述できるので利便性が高いが、処理の実行順序に依存してデッドロックが起きる可能性がある。仕様構成装置21は、遷移モデルに並行動作を含む場合にデッドロックが起こらないことを、図1のステップ10で検査する。   Such a plurality of descriptions is highly convenient because it can be described by dividing a large processing flow into a plurality of processing flows, but there is a possibility of deadlock depending on the execution order of the processing. The specification component device 21 checks in step 10 in FIG. 1 that no deadlock occurs when the transition model includes parallel operations.

遷移モデルの記述形式は、図3のような図形式に限定されるものではなく、状態とイベントによる遷移が記述できるものであれば、テキスト形式や表形式でも良い。   The description format of the transition model is not limited to the diagram format as shown in FIG. 3, and may be a text format or a table format as long as it can describe transitions according to states and events.

図4は、利用者が入力する処理モデルの記述例を示す図である。処理モデルは、上流工程で使われるユースケース図の事前事後記述に準ずる形式で、処理を実行するためのデータ値の条件と、処理後のデータ値を記述する。遷移モデルと同様に、処理モデルに記述する処理を、ここではイベントと呼ぶ。遷移モデルのイベントと処理モデルのイベントは一致しなければならず、仕様構成装置21は、図1のステップ4でモデルを結合する際にチェックする。   FIG. 4 is a diagram illustrating a description example of the processing model input by the user. The processing model describes the data value condition for executing the process and the data value after the process in a format that conforms to the prior ex post description of the use case diagram used in the upstream process. Similar to the transition model, the process described in the process model is referred to as an event here. The event of the transition model and the event of the processing model must match, and the specification component device 21 checks when combining the models in step 4 of FIG.

受付区分判定新規41の処理は、データ申込区分の値が新規であるとき、データ受付区分の値が新規になることを表す、ここでは、処理の前提となるデータ値の記述を条件部、処理によって設定されるデータ値の記述を帰結部と呼ぶ。   The processing of the acceptance category determination new 41 indicates that the value of the data acceptance category becomes new when the value of the data application category is new. Here, the description of the data value that is the premise of the processing is a condition part, processing The description of the data value set by is called a consequence.

受付区分判定更改42の処理は、帰結部で2つのデータに値を設定している。これは、データ受付区分の値が更改になるとともに、データ契約書の値が確定になることを表す。   In the processing of the acceptance category determination renewal 42, values are set for two data in the consequent unit. This represents that the value of the data acceptance category is updated and the value of the data contract is confirmed.

契約書作成43a、43bの処理は、1つの処理を複数の項目に分割して記述した例である。契約書作成43aはデータ受付区分の値が新規のとき契約書の値を確定にすることを、契約書作成43bはデータ受付区分の値が更改のとき何もしないことを表す。   The process of creating the contracts 43a and 43b is an example in which one process is described by being divided into a plurality of items. The contract creation 43a indicates that the value of the contract is confirmed when the value of the data reception category is new, and the contract creation 43b indicates that nothing is performed when the value of the data reception category is renewal.

図4の処理モデルは、さらに受付区分変更44a、44bの処理、および契約者情報登録45の処理を記述している。   The processing model of FIG. 4 further describes the processing of the reception category changes 44a and 44b and the processing of the contractor information registration 45.

処理の条件部の記載項目は複数個であっても良く、また0個であっても良い。条件部の記載が0個の場合、条件が常に成り立つとみなす。また、条件部の記載が複数の場合、それらの条件が全て成り立つことが処理の前提となる。条件部にはデータ値に関する論理式が記載されていても良い。   There may be a plurality of items described in the processing condition part, or zero. If the condition part is described as zero, it is considered that the condition always holds. In addition, when there are a plurality of description of the condition part, it is a premise of the processing that all these conditions are satisfied. A logical expression related to the data value may be described in the condition part.

帰結部も同様に、記載項目は複数個であっても良く、また0個であっても良い。複数個の場合には、それらの値が同時に設定されることを、契約書作成43bの例のように、0個の場合には何もしないことを表す。   Similarly, the result part may include a plurality of items or zero. If there are a plurality of values, the values are set at the same time. If the number is zero, nothing is done as in the example of the contract creation 43b.

処理モデルの記述形式は、図4のような表形式に限定されるものではなく、イベントが起こるためのデータ値の条件とイベント後のデータ値の条件が記述できるものであれば、テキスト形式や図形式でも良い。   The description format of the processing model is not limited to the table format as shown in FIG. 4, and any text format or data format can be used as long as the data value condition for the event to occur and the data value condition after the event can be described. It may be in diagram form.

図5は、利用者が入力する検証条件の記述例を示す図である。検証条件は、図3の遷移モデルの状態に対応付けて、処理がその状態まで進行した場合に期待されるデータ値を列挙する。   FIG. 5 is a diagram illustrating a description example of the verification condition input by the user. The verification condition is associated with the state of the transition model in FIG. 3 and lists data values expected when the process has progressed to that state.

図5では、図3の遷移モデルが表す処理が終了状態まで進んだとき、すなわち一連の処理が終わったとき、データ契約者情報の値が確定である(51)ことを要求している。同様に、図3の遷移モデルが表す処理が終了状態まで進んだとき、申込区分の値が新規かつ受付区分の値が新規、または、申込区分の値が更改かつ受付区分の値が更改である(52)ことを要求している。後者のように、検証条件には論理式が記載されていても良い。   In FIG. 5, when the process represented by the transition model in FIG. 3 has advanced to the end state, that is, when a series of processes have been completed, it is requested that the value of the data contractor information is fixed (51). Similarly, when the process represented by the transition model in FIG. 3 proceeds to the end state, the application category value is new and the acceptance category value is new, or the application category value is updated and the acceptance category value is updated. (52) requesting that Like the latter, a logical expression may be described in the verification condition.

検証条件の記述形式は、図5のような図形式に限定されるものではなく、期待されるデータ値を状態に関連付けて記述できるものであれば、テキスト形式や表形式でも良い。   The description format of the verification condition is not limited to the diagram format as shown in FIG. 5, and may be a text format or a table format as long as an expected data value can be described in association with the state.

図6は、モデルの結合部25のフロー図(図1のステップ4の遷移モデルと処理モデルの結合手順を示すフロー図)である。この手順により、入力された遷移モデルと処理モデルを照合して、1つのモデルにまとめ上げる。   FIG. 6 is a flowchart of the model combining unit 25 (flow diagram showing the procedure for combining the transition model and the processing model in step 4 in FIG. 1). By this procedure, the input transition model and the processing model are collated and combined into one model.

モデルの結合部25は、遷移モデルからイベントを抽出し(ステップ61)、処理モデルからイベントを抽出する(ステップ62)。モデルの結合部25は、これらのイベントが一致するかを判定し(ステップ63)、不一致であれば、不一致であることを出力して(ステップ67)、終了する。   The model combining unit 25 extracts an event from the transition model (step 61), and extracts an event from the processing model (step 62). The model combining unit 25 determines whether or not these events match (step 63), and if they do not match, outputs that they do not match (step 67) and ends.

遷移モデルのイベントと処理モデルのイベントが一致するならば、モデルの結合部25は、遷移モデルから状態を抽出し(ステップ64)、状態をノード、イベントをエッジとする有向グラフを構成する(ステップ65)。モデルの結合部25は、構成した有向グラフに、開始状態と終了状態に対応するノードを付加し、エッジで結ぶ(ステップ66)。   If the event of the transition model matches the event of the processing model, the model combining unit 25 extracts a state from the transition model (step 64), and constructs a directed graph having the state as a node and the event as an edge (step 65). ). The model combining unit 25 adds nodes corresponding to the start state and the end state to the configured directed graph and connects them with edges (step 66).

このようにして遷移モデルと処理モデルを結合して構成したモデルを、ここでは結合モデルと呼ぶ。遷移モデルには一般に複数の処理フローが含まれ得るので、1つの結合モデルには複数の有向グラフが存在し得る。   A model configured by combining the transition model and the processing model in this manner is referred to as a combined model here. Since a transition model can generally include a plurality of processing flows, a single coupled model can have a plurality of directed graphs.

図7は、結合モデルの例を示した図である。この例は、図3の遷移モデルと図4の処理モデルに対応しており、結合モデルは1つの有向グラフからなる。図7で、円は有向グラフのノードを、矢印はエッジを表す。エッジのラベル(名称)は、イベント名である。   FIG. 7 is a diagram illustrating an example of a combined model. This example corresponds to the transition model of FIG. 3 and the processing model of FIG. 4, and the combined model is composed of one directed graph. In FIG. 7, a circle represents a directed graph node, and an arrow represents an edge. The label (name) of the edge is an event name.

図8は、データフロー解析部26のフロー図(図1のステップ5のデータフロー解析の手順を示すフロー図)である。データフロー解析部26は、遷移モデルと処理モデルを結合した有向グラフの上に、データとその値の変化を付加する。このとき、有向グラフのノードである状態には一般に複数のデータ値の組が対応付くので、データフロー解析部26はそれらを処理する方法を与える。また、図7のように、有向グラフは一般に分岐や合流、繰り返しを含むので、処理済のデータ値の組を繰り返し処理することを防ぐ方法も与える。   FIG. 8 is a flow diagram of the data flow analysis unit 26 (flow diagram showing the procedure of data flow analysis in step 5 of FIG. 1). The data flow analysis unit 26 adds data and a change in its value on the directed graph obtained by combining the transition model and the processing model. At this time, since a plurality of sets of data values generally correspond to a state of being a node of a directed graph, the data flow analysis unit 26 provides a method for processing them. Also, as shown in FIG. 7, a directed graph generally includes branching, merging, and repetition, so a method for preventing repeated processing of a set of processed data values is also provided.

データフロー解析部26は、有向グラフの全てのノードに、複数のデータ値の組を格納する格納領域Dを割り当てる(ステップ81)。割り当てたDの初期値は、空とする。データフロー解析部26は、開始状態に対応するノードの格納領域Dに、初期データ値の組を格納する(ステップ82)。   The data flow analysis unit 26 allocates a storage area D for storing a plurality of sets of data values to all nodes of the directed graph (step 81). The assigned initial value of D is empty. The data flow analysis unit 26 stores the set of initial data values in the storage area D of the node corresponding to the start state (step 82).

一般に初期データ値の組は複数あり、それらの各々について、データフロー解析部26は、処理モデルの処理を遷移モデルの順で実行した際のデータ値の変化を解析する。データフロー解析部26は、この解析を、手続き1を呼び出すことで実行する(ステップ83)。   In general, there are a plurality of sets of initial data values, and for each of them, the data flow analysis unit 26 analyzes changes in data values when the processing models are executed in the order of transition models. The data flow analysis unit 26 executes this analysis by calling the procedure 1 (step 83).

ステップ83が終了すると、各ノードにデータ値の組が付加されているので、データフロー解析部26は、これらが検証条件を満たすことを検証する。この検証のために、データフロー解析部26は、検証条件に指定された格納領域Dにある全てのデータ値の組を得(ステップ84)、それが検証条件を満たすかを判定する(ステップ85)。   When step 83 ends, a data value set is added to each node, so the data flow analysis unit 26 verifies that these satisfy the verification condition. For this verification, the data flow analysis unit 26 obtains a set of all data values in the storage area D specified in the verification condition (step 84), and determines whether it satisfies the verification condition (step 85). ).

検証条件が満たされない場合、データフロー解析部26は、不具合であることを出力し(ステップ86)、終了する。検証条件が満たされた場合には、遷移モデルと処理モデルは整合するとして、データフロー解析部26は、終了する。   If the verification condition is not satisfied, the data flow analysis unit 26 outputs a malfunction (step 86) and ends. If the verification condition is satisfied, the data flow analysis unit 26 ends, assuming that the transition model matches the processing model.

図9は、データフロー解析部26の手続き1の手順を示すフロー図である。手続き1は、データフロー解析を実行する手続き2を、全ての初期データの組について呼び出す(ステップ91)。   FIG. 9 is a flowchart showing the procedure of the procedure 1 of the data flow analysis unit 26. The procedure 1 calls the procedure 2 for executing the data flow analysis for all initial data sets (step 91).

手続き1は、手続き2が処理するノードnと処理するデータ値の組dを、初期データの組に設定する。具体的には、nを開始ノードに設定し(ステップ92)、dを初期データの組として設定し(ステップ93)、手続き2を呼び出す(ステップ94)。   The procedure 1 sets a node n processed by the procedure 2 and a data value set d to be processed to an initial data set. Specifically, n is set as a start node (step 92), d is set as a set of initial data (step 93), and procedure 2 is called (step 94).

図10は、データフロー解析26の手続き2の手順を示すフロー図である。手続き2では、与えられたノードnとデータ値の組dに対して、イベントによって遷移する先のノードにおけるデータ値の組を、nにおいて起こり得る全てのイベントについて計算する。   FIG. 10 is a flowchart showing the procedure 2 of the data flow analysis 26. In the procedure 2, for a given node n and data value set d, a data value set in a destination node that is transitioned by an event is calculated for all events that can occur in n.

このため、手続き2は、ノードnから外向きのエッジを得る(ステップ101)。外向きのエッジが存在するならば(ステップ102)、nから外向きの全てのエッジについて順に(ステップ103)、処理するエッジをeとして(ステップ104)手続き3を呼び出す(ステップ105)。   Therefore, the procedure 2 obtains an outward edge from the node n (step 101). If there is an outward edge (step 102), all the outward edges from n are sequentially executed (step 103), and the procedure 3 is called with the edge to be processed as e (step 104) (step 105).

ステップ102において、nからの外向きのエッジが存在しない場合はnからの遷移先がないことを意味するので、手続き2は、nが終了状態であるかを判定(ステップ106)し、終了状態であれば、終了し、終了状態でなければ、遷移モデルが不整合であることを出力する(ステップ107)。   In step 102, when there is no outward edge from n, it means that there is no transition destination from n, so procedure 2 determines whether n is in an end state (step 106), and the end state If it is, the process ends, and if it is not in the end state, it outputs that the transition model is inconsistent (step 107).

図11は、データフロー解析26の手続き3の手順を示すフロー図である。手続き3は、与えられたエッジeとデータ値の組dに対して処理モデルを参照し、dの下で起こり得るeを選択して、遷移後のデータ値を計算する。   FIG. 11 is a flowchart showing the procedure of the procedure 3 of the data flow analysis 26. The procedure 3 refers to the processing model for a given edge e and data value set d, selects e that can occur under d, and calculates the data value after the transition.

一般に、同一のイベントに対して処理モデルの項目は複数存在するので、与えられたエッジeとデータ値の組dに対して遷移先が複数存在し得る。手続き3は、それら全ての遷移先についてデータ値の組を計算する。   In general, since there are a plurality of processing model items for the same event, a plurality of transition destinations may exist for a given edge e and data value set d. Procedure 3 calculates a set of data values for all these transition destinations.

このため、手続き3は、eに対応するイベントから処理モデルの項目の条件部がdにマッチする項目を選ぶ(ステップ111)。そのような項目が存在するならば(ステップ112)、手続き3は、それらの項目全てについて(ステップ113)、手続き4を呼び出す(ステップ114)。   Therefore, the procedure 3 selects an item whose condition part of the process model item matches d from the event corresponding to e (step 111). If such items exist (step 112), procedure 3 calls procedure 4 for all of those items (step 113) (step 114).

一方、条件部がdにマッチする処理モデルの項目が一つもない場合には、遷移モデルの処理フローの通りに処理を進めることができないことを意味するので、手続き3は、処理モデルが不整合であることを出力(ステップ115)する。   On the other hand, if there is no processing model item whose condition part matches d, it means that the processing cannot proceed according to the processing flow of the transition model. Is output (step 115).

図12は、データフロー解析部26の手続き4の手順を示すフロー図である。手続き4は、与えられたデータ値の組dとノードn、エッジeから遷移先のデータ値の組を計算して遷移先のノードの格納領域Dに加えるとともに、ノードを遷移先のノードに進めて、データフロー解析部26の手続き2を再帰的に呼び出す。   FIG. 12 is a flowchart showing the procedure of the procedure 4 of the data flow analysis unit 26. The procedure 4 calculates a pair of data values of the transition destination from the given data value pair d, the node n, and the edge e, adds the data value pair to the storage area D of the transition destination node, and advances the node to the transition destination node. Thus, the procedure 2 of the data flow analysis unit 26 is recursively called.

具体的には、手続き4は、手続き3で選び出した処理モデルの項目の帰結部とdから、遷移先のデータ値の組dn+1を計算する(ステップ121)。手続き4は、エッジeをたどって遷移先ノードn+1を得る(ステップ122)とともに、ノードn+1に対応付けられたデータ値の格納領域Dn+1を得る(ステップ123)。   Specifically, the procedure 4 calculates a set dn + 1 of the data value of the transition destination from the result part and d of the item of the processing model selected in the procedure 3 (step 121). The procedure 4 follows the edge e to obtain the transition destination node n + 1 (step 122), and obtains a data value storage area Dn + 1 associated with the node n + 1 (step 123).

手続き4は、Dn+1にデータ値の組dn+1が存在するかを判定し(ステップ124)、存在しないならば、dn+1をDn+1に加え、dnからdn+1へエッジを張る(ステップ125)。これでノードnからエッジeによるデータ値の組dnの変化に関する処理の一つが終わったのでノードを一つ進め、n+1をn、d+1をdとして手続き2を呼び出す(ステップ126)。   Procedure 4 determines whether a data value set dn + 1 exists in Dn + 1 (step 124). If not, dn + 1 is added to Dn + 1, and an edge is moved from dn to dn + 1. (Step 125). Since one of the processes related to the change of the data value set dn by the edge e is completed from the node n, the node is advanced by one, and the procedure 2 is called with n + 1 as n and d + 1 as d (step 126).

一方、ステップ124でDn+1にdn+1が存在する場合には、ノードn+1でデータ値の組dn+1に関する解析が既に終了していることを意味するので、手続き4は、dnからdn+1へのエッジを張り(ステップ127)、終了する。   On the other hand, if dn + 1 exists in Dn + 1 at step 124, it means that the analysis on the data value set dn + 1 has already been completed at node n + 1. An edge from to dn + 1 is stretched (step 127), and the process ends.

図12では、データ値の組がどのように変化したかを記録するため、ステップ125とステップ127で、手続き4はdnからdn+1へのエッジを張っている。これにより、状態をノード、イベントをエッジとする有向グラフとは別に、データ値の組をノード、イベントをエッジとする有向グラフが構成される。以下では、これをデータ遷移グラフと呼ぶ。データ遷移グラフは、データ値の組の変化の追跡を容易にするとともに、デッドロック検証の際の検証効率を向上する。   In FIG. 12, in order to record how the set of data values has changed, in step 125 and step 127, procedure 4 has an edge from dn to dn + 1. As a result, a directed graph with a set of data values as a node and an event as an edge is formed separately from the directed graph with a state as a node and an event as an edge. Hereinafter, this is referred to as a data transition graph. A data transition graph facilitates tracking changes in a set of data values and improves verification efficiency during deadlock verification.

図13は、データフロー解析部26が生成するデータ値の組の例を示す図である。この図は、図3の遷移モデルおよび図4の処理モデルの例に対応する。   FIG. 13 is a diagram illustrating an example of a set of data values generated by the data flow analysis unit 26. This figure corresponds to the example of the transition model of FIG. 3 and the processing model of FIG.

図13の吹き出しは、各ノードに対応付けられた格納領域Dを表す。Dの中の<と>で囲まれた符号の組は、その状態における各データ値の組を表し、図中では<申込区分、受付区分、契約書、契約者情報>の順である。-は値が決まっていないことを表す。   The balloon in FIG. 13 represents the storage area D associated with each node. A set of codes surrounded by <and> in D represents a set of data values in that state, and in the figure, the order is <application category, acceptance category, contract, contractor information>. -Indicates that the value has not been determined.

吹き出し131は、開始状態に2つの初期データの組<新規、-、-、->と<更改、-、-、->が存在することを示す。これは、開始状態では申込区分が新規であること以外はデータの値が決まっていないデータ値の組と、申込区分が更新であること以外はデータの値が決まっていないデータ値の組が存在することを表す。   A balloon 131 indicates that two initial data sets <new,-,-,-> and <update,-,-,-> exist in the start state. This is because there are a set of data values whose data values are not determined except that the application category is new in the starting state, and a set of data values whose data values are not determined except that the application category is update. Represents what to do.

吹き出し132は、開始状態の次の状態におけるデータ値の組を示す。開始状態からのデータ値の組に加えて、イベント申込区分変更により戻ったデータ値の組があるため、4つのデータ値の組が存在する。吹き出し135はイベント契約者情報登録の後のデータ値の組であり、吹き出し136は終了状態におけるデータ値の組である。   A balloon 132 indicates a set of data values in the next state after the start state. In addition to the data value pairs from the starting state, there are four data value pairs because there are data value pairs returned by the event application category change. A balloon 135 is a set of data values after event contractor information registration, and a balloon 136 is a set of data values in the end state.

図5の検証条件の例では、終了状態において契約者情報は確定であること(51)、申込区分は新規であり受付区分も新規であることまたは申込区分は更改であり受付区分も更改であること(52)を要求しており、吹き出し136がこの条件を満たしていることは容易に検証できる。この検証は、図8のステップ84およびステップ85で実行される。   In the example of the verification condition in FIG. 5, the contractor information is confirmed in the final state (51), the application category is new and the reception category is new, or the application category is renewal and the reception category is also renewal. (52) is requested, and it can be easily verified that the balloon 136 satisfies this condition. This verification is performed at step 84 and step 85 in FIG.

図14は、データフロー解析部26が生成するデータ遷移グラフの例を示す図である。図13の吹き出し131の2つの初期データ値の組は、図14ではノード141とノード142に対応する。同様に、吹き出し132はノード143からノード146、吹き出し133はノード147からノード149、吹き出し134はノード1410からノード1411、吹き出し135はノード1412からノード1413、吹き出し136はノード1414からノード1415に対応する。   FIG. 14 is a diagram illustrating an example of a data transition graph generated by the data flow analysis unit 26. A set of two initial data values of the balloon 131 in FIG. 13 corresponds to the node 141 and the node 142 in FIG. Similarly, balloon 132 corresponds to node 143 to node 146, balloon 133 corresponds to node 147 to node 149, balloon 134 corresponds to node 1410 to node 1411, balloon 135 corresponds to node 1412 to node 1413, and balloon 136 corresponds to node 1414 to node 1415. .

図14では、図12のステップ125とステップ127でdnからdn+1へのエッジを張った結果を示している。これにより、データ値の組をノード、イベントをエッジとするデータ遷移グラフが構成される。データ遷移グラフは、データ値の組がどのように変化したかを記録しており、デッドロック検査モデル生成部28が使用するために、仕様構成装置21のメモリに格納される。   FIG. 14 shows the result of extending the edge from dn to dn + 1 in steps 125 and 127 of FIG. As a result, a data transition graph is constructed in which a set of data values is a node and an event is an edge. The data transition graph records how the set of data values has changed, and is stored in the memory of the specification component device 21 for use by the deadlock check model generation unit 28.

図15は、デッドロック検査モデル生成部28のフロー図(図1のステップ9のデッドロック検査モデルを生成する手順を示すフロー図)である。仕様構成装置21は、遷移モデルが並行動作を含むとき、すなわち遷移モデルの中に独立した処理フローが複数存在するときに、それらの間のデッドロックの有無を、モデル検査器210を使って検査する。図15は、モデル検査器210の入力となるデッドロック検査モデル29を生成する手順を示す。   FIG. 15 is a flowchart of the deadlock check model generation unit 28 (flow chart showing a procedure for generating a deadlock check model in step 9 of FIG. 1). When the transition model includes parallel operations, that is, when there are a plurality of independent processing flows in the transition model, the specification configuration device 21 uses the model checker 210 to check whether there is a deadlock between them. To do. FIG. 15 shows a procedure for generating a deadlock check model 29 that is input to the model checker 210.

デッドロック検査モデル29は、各処理フローから生成した結合モデルに対応するプロセスの記述と、それらの間の同期をとる連携プロセスの記述、およびプロセス間の共有情報の記述を含む。このため、デッドロック検査モデル生成部28は、手続きAを呼び出してプロセス間共有情報を生成し(ステップ151)、次に手続きBを呼び出して連携プロセス記述を生成する(ステップ152)。その後、全ての結合モデルについて(ステップ153)、手続きCを呼び出してプロセスの記述を生成する(ステップ154)。   The deadlock checking model 29 includes a description of a process corresponding to the combined model generated from each processing flow, a description of a cooperative process that synchronizes between them, and a description of shared information between processes. Therefore, the deadlock check model generation unit 28 calls the procedure A to generate inter-process shared information (step 151), and then calls the procedure B to generate a linked process description (step 152). Thereafter, for all connection models (step 153), the procedure C is called to generate a process description (step 154).

図16は、デッドロック検査モデル生成部28の手続きAの手順を示すフロー図である。手続きAは、プロセス間で共有される、イベント受け渡しチャネルと状態変数の記述を生成する。このため、手続きAは全ての結合モデルについて(ステップ161)、イベントを受け渡すチャネルを生成し(ステップ162)、状態変数を生成する(ステップ163)。また、データ遷移グラフのデータノードに付番し、状態変数の値とする(ステップ164)。   FIG. 16 is a flowchart showing the procedure of the procedure A of the deadlock inspection model generation unit 28. The procedure A generates a description of an event passing channel and a state variable shared between processes. Therefore, the procedure A generates a channel for passing the event (step 162) and generates a state variable (step 163) for all connection models (step 161). In addition, the data node of the data transition graph is numbered and set as the value of the state variable (step 164).

図17は、デッドロック検査モデル生成部28の手続きBの手順を示すフロー図である。手続きBは、連携プロセスの記述を生成する。連携プロセスは、各結合モデルのデータ遷移グラフの情報を下に、発生し得るイベントを生成し、チャネルを通じて各結合モデルから生成されたプロセスに送信する。   FIG. 17 is a flowchart showing the procedure B of the deadlock check model generation unit 28. The procedure B generates a description of the cooperation process. The cooperation process generates an event that can occur under the information of the data transition graph of each connection model, and transmits the event to the process generated from each connection model through the channel.

手続きBは、プロセスの枠組みを生成し(ステップ171)、全てのイベントeについて(ステップ172)、ステップ173からステップ174を実行する。すなわち、全てのデータ遷移グラフについて、eを外向きエッジとするデータノードを抽出し(ステップ173)、eに関わる全ての結合モデルで状態変数の値が、抽出したデータノードであるときイベントeを発生させる文を生成する(ステップ174)。発生させたイベントを、チャネルを通じて各プロセスに送信する文を生成する(ステップ175)。   The procedure B generates a process framework (step 171), and executes steps 173 to 174 for all events e (step 172). That is, for all the data transition graphs, a data node having e as an outward edge is extracted (step 173), and when the value of the state variable is the extracted data node in all connection models related to e, the event e is set. A sentence to be generated is generated (step 174). A statement for transmitting the generated event to each process through the channel is generated (step 175).

図18は、デッドロック検査モデル生成部28の手続きCの手順を示すフロー図である。手続きCは、並行動作する各結合モデルについて、プロセスの記述を生成する。   FIG. 18 is a flowchart showing the procedure of the procedure C of the deadlock inspection model generation unit 28. Procedure C generates a process description for each combined model that operates in parallel.

手続きCは、チャネルを通じてイベントを受信する文を生成する(ステップ181)。手続きCは、初期状態に対応して、状態変数にデータ遷移モデルの開始データノードを代入する文を生成する(ステップ182)とともに、終了状態に対応して状態変数の値がデータ遷移モデルの終了データノードである文を生成する(ステップ183)。なお、初期値が複数ある場合にはデータ遷移モデルの開始データノードが複数存在するが、プロセスの記述は結合モデルに対して生成するので、それらの開始データノードに遷移するダミーの開始ノードを1つ設定する。   The procedure C generates a sentence for receiving an event through the channel (step 181). The procedure C generates a statement that assigns the start data node of the data transition model to the state variable corresponding to the initial state (step 182), and the value of the state variable corresponding to the end state ends the data transition model A sentence that is a data node is generated (step 183). When there are a plurality of initial values, there are a plurality of start data nodes of the data transition model. However, since a process description is generated for the combined model, a dummy start node that transitions to these start data nodes is set to 1 Set one.

手続きCは、初期状態と終了状態の中間にあるデータノードに関する記述を生成するため、開始データノードと終了データノードを除く全てのデータノードについて手続きDを呼び出す(ステップ184)。   The procedure C calls the procedure D for all the data nodes except the start data node and the end data node in order to generate a description about the data node in the intermediate state between the initial state and the end state (step 184).

図19は、デッドロック検査モデル生成部28の手続きDの手順を示すフロー図である。手続きDは、データ遷移グラフをもとに、イベントによる遷移を記述する。   FIG. 19 is a flowchart showing the procedure of the procedure D of the deadlock inspection model generation unit 28. Procedure D describes a transition due to an event based on the data transition graph.

手続きDは、データ遷移グラフのデータノードから外向きエッジと遷移先ノードを抽出する(ステップ191)。手続きDは、状態変数の値が外向きエッジを持つデータノードでありイベントが外向きエッジであるとき、状態変数を遷移先ノードで置き換える文を生成する(ステップ192)。手続きDは、データ遷移グラフのデータノードに名前をつけ、状態変数の値とする(ステップ193)。   The procedure D extracts an outward edge and a transition destination node from the data nodes of the data transition graph (step 191). The procedure D generates a statement for replacing the state variable with the transition destination node when the value of the state variable is a data node having an outward edge and the event is an outward edge (step 192). The procedure D assigns a name to the data node of the data transition graph and sets it as the value of the state variable (step 193).

図20は、デッドロック検査モデル生成部28が生成したデッドロック検査モデル29の例を示す図である。デッドロック検査モデル201は、例えばこのようなテキスト形式で出力される。このデッドロック検査モデル201は、プロセス間で共有される情報の記述(202)、連携プロセスの記述(203)、及び各結合モデルに対応するプロセスの記述(204a、204b)を含む。   FIG. 20 is a diagram illustrating an example of the deadlock inspection model 29 generated by the deadlock inspection model generation unit 28. The deadlock inspection model 201 is output in such a text format, for example. The deadlock checking model 201 includes a description (202) of information shared between processes, a description (203) of a cooperation process, and a description (204a, 204b) of a process corresponding to each combined model.

プロセス間で共有される情報の記述(202)は、デッドロック検査モデル生成部28の手続きA(図16)で生成される。この例では、結合モデルAとBに対して、チャネルcAとcB、及び状態変数stateAとstateBが作成される。   A description (202) of information shared between processes is generated by the procedure A (FIG. 16) of the deadlock check model generation unit. In this example, channels cA and cB and state variables stateA and stateB are created for combined models A and B.

連携プロセスの記述(203)は、デッドロック検査モデル生成部28の手続きB(図17)で生成される。この例では、Aがa1、Bがb1にあるとき、共有イベントe1を、チャネルを通じて送信する。一方、Aがa2にあるとき、Bに関わらずイベントe2を、チャネルを通じて送信する。e2は、Aの遷移に関わるイベントであり、共有イベントではない。   The description (203) of the cooperation process is generated by the procedure B (FIG. 17) of the deadlock inspection model generation unit 28. In this example, when A is a1 and B is b1, the shared event e1 is transmitted through the channel. On the other hand, when A is in a2, event e2 is transmitted through the channel regardless of B. e2 is an event related to the transition of A, not a shared event.

プロセスの記述(204a、204b)は、デッドロック検査モデル生成部28の手続きC(図18)と手続きD(図19)で生成される。各プロセスは、まず状態変数を初期状態に設定する。その後、チャネルを通じてイベントを受信し、現在の状態変数の値と受信したイベントから遷移先状態を決定し、状態変数に代入する。   The process descriptions (204a, 204b) are generated by the procedure C (FIG. 18) and the procedure D (FIG. 19) of the deadlock check model generation unit 28. Each process first sets a state variable to an initial state. Thereafter, an event is received through the channel, a transition destination state is determined from the value of the current state variable and the received event, and is assigned to the state variable.

デッドロック検査モデル29では、プロセスが共有イベントの発生を待つ、一方で対応するプロセスが他の共有イベントの発生を待つ、またはイベント発生を終了した際に、デッドロックが起こる。このように構成したデッドロック検査モデル29をモデル検査器210に入力し、デッドロックの有無を検査する。   In the deadlock checking model 29, a deadlock occurs when a process waits for the occurrence of a shared event, while the corresponding process waits for the occurrence of another shared event or terminates the event occurrence. The deadlock checking model 29 configured in this way is input to the model checker 210, and the presence or absence of deadlock is checked.

本実施形態の仕様構成装置によれば、システム設計の初期工程おいて、人が記述した仕様を効率的に検証できる。   According to the specification configuration apparatus of the present embodiment, it is possible to efficiently verify a specification written by a person in the initial process of system design.

また、上流工程の設計者は処理フローとユースケースに相当する方法で仕様を記述し、それらの間の整合性を検証できるので、組込みシステムやビジネスシステムなどの分野において、複雑なシステムの上流設計を信頼性高く効率的に行うことができる。   In addition, upstream designers can write specifications in a way that corresponds to the processing flow and use cases, and verify the consistency between them, so in the fields of embedded systems and business systems, the upstream design of complex systems Can be performed with high reliability and efficiency.

21:仕様構成装置、 22:遷移モデル入力部、23:処理モデル入力部、24:検証条件入力部、25:モデル結合部、26:データフロー解析部、27:検証結果、28:デッドロック検査モデル生成部、29:デッドロック検査モデル、210:モデル検査器、211検証結果。   21: Specification component device 22: Transition model input unit 23: Processing model input unit 24: Verification condition input unit 25: Model combination unit 26: Data flow analysis unit 27: Verification result 28: Deadlock check Model generation unit, 29: deadlock inspection model, 210: model checker, 211 verification result.

Claims (12)

システムの動的な振る舞いを、前記システムの状態とイベントによる前記状態の遷移の組み合わせにより記述した遷移モデルを入力する遷移モデル入力部、
前記イベントによる前記遷移に伴うデータ値の更新を記述した処理モデルを入力する処理モデル入力部、
前記システムが満たすべき前記データ値の条件を前記状態に対応付けて記述した検証条件を入力する検証条件入力部、
前記遷移モデルと前記処理モデルを共通の前記イベントで関連付けることにより、前記遷移モデルと前記処理モデルを結合した結合モデルを生成するモデル結合部、および、
前記結合モデルをデータフロー解析し、前記状態について前記検証条件が満たされることを検証するデータフロー解析部を有することを特徴とする仕様構成装置。
A transition model input unit for inputting a transition model in which the dynamic behavior of the system is described by a combination of the state transition of the system and the state transition by an event;
A processing model input unit for inputting a processing model describing an update of a data value accompanying the transition by the event;
A verification condition input unit for inputting a verification condition in which the condition of the data value to be satisfied by the system is described in association with the state;
A model combining unit that generates a combined model obtained by combining the transition model and the processing model by associating the transition model and the processing model with the common event; and
A specification configuration apparatus comprising: a data flow analysis unit that performs data flow analysis on the combined model and verifies that the verification condition is satisfied for the state.
前記モデル結合部は、前記遷移モデルの前記イベントと前記処理モデルの前記イベントが一致するとき、前記遷移モデルから抽出した前記状態をノードとし、前記イベントをエッジとする有向グラフを構成し、開始状態と終了状態に対応する新たなノードを付加し、前記有向グラフと新たな前記ノードを新たなエッジで結ぶことにより、前記結合モデルを生成することを特徴とする請求項1に記載の仕様構成装置。 When the event of the transition model and the event of the processing model match, the model combining unit configures a directed graph with the state extracted from the transition model as a node and the event as an edge, and a start state The specification composition device according to claim 1, wherein a new node corresponding to an end state is added, and the combined model is generated by connecting the directed graph and the new node with a new edge. 前記データフロー解析部は、前記有向グラフの上に、前記処理モデルに記述された前記データ値の更新に基づいて、前記データ値を付加し、付加した前記データ値が前記データ値の条件を満たすことを検証することを特徴とする請求項2に記載の仕様構成装置。 Wherein the data flow analysis unit, on the directed graph, based on the updating of the data values described in the process model, by adding the data value, the data value obtained by adding the condition of the data values The specification composition device according to claim 2, wherein it is verified that it is satisfied. 前記遷移モデルが並行動作を含む場合に、モデル検査法を利用したデッドロック検査をするためのデッドロック検査モデルを生成するデッドロック検査モデル生成部をさらに有することを特徴とする請求項1に記載の仕様構成装置。 The deadlock check model generation unit that generates a deadlock check model for performing a deadlock check using a model check method when the transition model includes parallel operations. Specifications configuration equipment. 前記デッドロック検査モデルは、前記結合モデルに対応するプロセスの記述、前記プロセスの間の同期をとる連携プロセスの記述、および前記プロセスの間の共有情報の記述を含むことを特徴とする請求項4に記載の仕様構成装置。 5. The deadlock checking model includes a description of a process corresponding to the coupling model, a description of a cooperative process that synchronizes between the processes, and a description of shared information between the processes. The specification component device described in 1. 前記データフロー解析部による、前記処理モデルに記述された前記データ値の更新に基づいた前記データ値の変化に関する情報を、前記デッドロック検査で用いることを特徴とする請求項4に記載の仕様構成装置。 The specification configuration according to claim 4, wherein information regarding a change in the data value based on the update of the data value described in the processing model by the data flow analysis unit is used in the deadlock check. apparatus. 仕様構成装置による仕様構成方法であって、前記仕様構成装置は、
システムの動的な振る舞いを、前記システムの状態とイベントによる前記状態の遷移の組み合わせにより記述した遷移モデルを入力し、
前記イベントによる前記遷移に伴うデータ値の更新を記述した処理モデルを入力し、
前記システムが満たすべき前記データ値の条件を前記状態に対応付けて記述した検証条件を入力し、
前記遷移モデルと前記処理モデルを共通の前記イベントで関連付けることにより、前記遷移モデルと前記処理モデルを結合した結合モデルを生成し、
前記結合モデルをデータフロー解析し、前記状態について前記検証条件が満たされることを検証することを特徴とする仕様構成方法。
A specification configuration method using a specification configuration device, wherein the specification configuration device is:
Input a transition model that describes the dynamic behavior of the system by combining the state transition of the system and the state transition caused by an event.
Input a processing model describing the update of the data value accompanying the transition by the event,
Enter a verification condition describing the condition of the data value that the system should satisfy in association with the state,
By associating the transition model and the processing model with the common event, a combined model that combines the transition model and the processing model is generated,
A specification configuration method characterized by performing data flow analysis on the combined model and verifying that the verification condition is satisfied for the state.
前記仕様構成装置は、前記遷移モデルの前記イベントと前記処理モデルの前記イベントが一致するとき、前記遷移モデルから抽出した前記状態をノードとし、前記イベントをエッジとする有向グラフを構成し、開始状態と終了状態に対応する新たなノードを付加し、前記有向グラフと新たな前記ノードを新たなエッジで結ぶことにより、前記結合モデルを生成することを特徴とする請求項7に記載の仕様構成方法。 When the event of the transition model and the event of the processing model match, the specification configuration device configures a directed graph with the state extracted from the transition model as a node and the event as an edge, and a start state, 8. The specification composition method according to claim 7, wherein a new node corresponding to an end state is added, and the combined model is generated by connecting the directed graph and the new node with a new edge. 前記仕様構成装置は、前記有向グラフの上に、前記処理モデルに記述された前記データ値の更新に基づいて、前記データ値を付加し、付加した前記データ値が前記データ値の条件を満たすことを検証することを特徴とする請求項8に記載の仕様構成方法。 The specification component devices, on the directed graph, based on the updating of the data values described in the process model, by adding a pre-Symbol data values, before the addition Symbol data value condition of the data values 9. The specification composition method according to claim 8, wherein it is verified that the condition is satisfied. 前記仕様構成装置は、前記遷移モデルが並行動作を含む場合に、モデル検査法を利用したデッドロック検査をするためのデッドロック検査モデルを生成することを特徴とする請求項7に記載の仕様構成方法。 The specification configuration apparatus according to claim 7, wherein the specification configuration device generates a deadlock check model for performing a deadlock check using a model check method when the transition model includes a parallel operation. Method. 前記デッドロック検査モデルは、前記結合モデルに対応するプロセスの記述、前記プロセスの間の同期をとる連携プロセスの記述、および前記プロセスの間の共有情報の記述を含むことを特徴とする請求項10に記載の仕様構成方法。 11. The deadlock checking model includes a description of a process corresponding to the coupling model, a description of a cooperative process that synchronizes between the processes, and a description of shared information between the processes. Specification configuration method described in 1. 前記仕様構成装置は、前記処理モデルに記述された前記データ値の更新に基づいた前記データ値の変化に関する情報を、前記デッドロック検査で用いることを特徴とする請求項10に記載の仕様構成方法。 11. The specification configuration method according to claim 10, wherein the specification configuration apparatus uses information regarding a change in the data value based on the update of the data value described in the processing model in the deadlock check. .
JP2017507175A 2015-03-20 2015-03-20 Specification configuration apparatus and method Expired - Fee Related JP6169302B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/058610 WO2016151710A1 (en) 2015-03-20 2015-03-20 Specification configuration device and method

Publications (2)

Publication Number Publication Date
JPWO2016151710A1 JPWO2016151710A1 (en) 2017-05-25
JP6169302B2 true JP6169302B2 (en) 2017-07-26

Family

ID=56977052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017507175A Expired - Fee Related JP6169302B2 (en) 2015-03-20 2015-03-20 Specification configuration apparatus and method

Country Status (2)

Country Link
JP (1) JP6169302B2 (en)
WO (1) WO2016151710A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7039365B2 (en) * 2018-03-30 2022-03-22 株式会社デンソー Deadlock avoidance method, deadlock avoidance device
JP7064367B2 (en) * 2018-03-30 2022-05-10 株式会社デンソー Deadlock avoidance method, deadlock avoidance device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07283847A (en) * 1994-04-13 1995-10-27 Hitachi Ltd Communication software verifying device
JP2013057985A (en) * 2009-12-09 2013-03-28 Hitachi Ltd System design support device and method
JP2013200787A (en) * 2012-03-26 2013-10-03 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan Model inspection device, model inspection processing method, and program

Also Published As

Publication number Publication date
JPWO2016151710A1 (en) 2017-05-25
WO2016151710A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
JP2011521368A (en) Method for automatically creating test cases to verify at least part of a piece of software
US9965252B2 (en) Method and system for generating stateflow models from software requirements
US9043746B2 (en) Conducting verification in event processing applications using formal methods
JP2019029015A (en) Interactive software program repair
Lee et al. Requirements modeling and automated requirements-based test generation
Tierno et al. Open issues for the automotive software testing
JP6169302B2 (en) Specification configuration apparatus and method
US11520966B2 (en) Automated assisted circuit validation
KR102013657B1 (en) Apparatus for statically analyzing assembly code including assoxiated multi files
US10915427B2 (en) Equivalence verification apparatus and computer readable medium
JP2008305079A (en) Requirement specification automatic verification method
JP2016031622A (en) Software verification system and control device
JP5463226B2 (en) Source code inspection method and source code inspection apparatus
CN110795142B (en) Configuration file generation method and device
EP3608786B1 (en) Systems and methods of requirements chaining and applications thereof
US20190377667A1 (en) Test case selection apparatus and computer readable medium
JP2011154568A (en) Information processing apparatus, program verification method and program
JPWO2012049816A1 (en) Model checking apparatus, method and program
US20100293018A1 (en) Test Model Abstraction For Testability in Product Line Engineering
JP2013206310A (en) Model inspection device, model inspection method, and program
Saifan et al. Using formal methods for test case generation according to transition-based coverage criteria
Machado et al. Automatic test-case generation
JP2014032447A (en) Degradation test support system, degradation test support method, and degradation test support program
CN109800155B (en) Method and device for testing QTE interlocking application software based on Probe
JP6658297B2 (en) Test case generation method, test case generation program and test case generation device

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161214

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: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170627

R150 Certificate of patent or registration of utility model

Ref document number: 6169302

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees