JP4959640B2 - Model checking support device and program - Google Patents
Model checking support device and program Download PDFInfo
- Publication number
- JP4959640B2 JP4959640B2 JP2008180608A JP2008180608A JP4959640B2 JP 4959640 B2 JP4959640 B2 JP 4959640B2 JP 2008180608 A JP2008180608 A JP 2008180608A JP 2008180608 A JP2008180608 A JP 2008180608A JP 4959640 B2 JP4959640 B2 JP 4959640B2
- Authority
- JP
- Japan
- Prior art keywords
- action
- event
- condition
- state
- model
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、モデル検査のためのモデル作成に特別のモデル記述言語の習得を要せず、動作仕様だけでなく制約条件も含んだモデルを作成することのできるモデル検査支援装置及びプログラムに関する。 The present invention relates to a model checking support apparatus and program capable of generating a model including not only operation specifications but also constraint conditions without requiring acquisition of a special model description language for creating a model for model checking.
現在では、ソフトウエアは日常の生活を取り巻く様々な装置やシステムに組み込まれ複雑化・大規模化しており、自動車など交通機関等の生命の安全に関わる場合をはじめとしてその信頼性を確保することの重要性が声高く要求されている。 Nowadays, software is incorporated into various devices and systems that surround daily life and is becoming more complex and large-scale, and its reliability must be ensured, including when it is involved in the safety of life such as automobiles. The importance of is highly demanded.
システム開発においては、まずソフトウエアの動作に関する設計が行われ、その後、その設計に基づくソフトウエアの作成及び検査が実行される。そのため、検査段階においてソフトウエアの設計段階で不具合が生じていたことが明らかになった場合は、ソフトウエアの設計にまで遡る修正作業、その修正作業に伴う開発工程の遅延、システム信頼性の低下などの問題が発生する。また人手による検査によってはこれらの設計時の検討の漏れ・設計書記載ミス・仕様の勘違いなどによる設計上の過ちを完全に検出することは困難で ある。 In the system development, a design related to the operation of the software is first performed, and then the software is created and inspected based on the design. Therefore, if it becomes clear that a defect has occurred in the software design stage during the inspection stage, the correction work goes back to the software design, the development process is delayed, and the system reliability is reduced. Problems occur. In addition, it is difficult to completely detect design errors due to omission of examination at the time of design, errors in description of design documents, misunderstanding of specifications, etc. by manual inspection.
そこでソフトウエアシステム開発において、設計段階におけるシステムを検証する形式手法のひとつとしてモデル検査技術が知られている。 Therefore, in software system development, model checking technology is known as one of formal methods for verifying a system at the design stage.
このモデル検査技術は、状態遷移系としてモデル化されたシステムについて可能な全ての動作シーケンスを生成し、それぞれの動作シーケンスにおいて制約条件が満たされているかどうかを検証して、その結果を出力するものである。 This model checking technology generates all possible operation sequences for a system modeled as a state transition system, verifies whether the constraint conditions are satisfied in each operation sequence, and outputs the result. It is.
ソフトウエアの作成後の検査工程において不具合が発見されたことによる設計にまで遡る修正作業が発生し、その修正作業に伴う開発工程の遅延が生じることを、未然に防ぐことができる。 It is possible to prevent the occurrence of a correction work that goes back to the design due to the discovery of a defect in the inspection process after the creation of the software, and the delay of the development process associated with the correction work.
また、このように設計段階において自動的・網羅的にモデル検査をすることによってシステムの信頼性を高め、システムの不具合、異常時や想定外の事態によって惹き起こされる不安定な挙動等を未然に防止することが出来る。 In addition, system reliability can be improved through automatic and comprehensive model checking at the design stage in this way, and system malfunctions, unstable behavior caused by abnormalities and unexpected situations, etc. Can be prevented.
ところで、このモデル検査技術を適用するためには、特別のモデル記述言語(例えば、Promela言語)を用いてシステムのモデルを作成する必要があった。そこで、システムの動作に関する設計書からモデル記述言語で書かれたモデルを作成することができるモデル検査支援装置が開示されている(例えば、特許文献1参照)
しかし、特許文献1に記載の技術では、モデルを作成するための設計書は、図形形式の「変数の状態遷移関係で表した論理記述」で表現されていなければならず、一般的に作成されている設計書とは異なり、必ずしも使い易いものであるとは言えなかった。さらに、特許文献1に記載のモデル検査支援装置では検査のための制約条件を生成できないため、別途手作業で制約条件を作成することが必要であった。
However, in the technique described in
本発明は、かかる事情に鑑みてなされたものであり、モデル検査のためのモデル作成に特別のモデル記述言語の習得を要せず、動作仕様だけでなく制約条件も含んだモデルを作成することのできるモデル検査支援装置及びプログラムを提供することを目的とする。 The present invention has been made in view of such circumstances, and does not require acquisition of a special model description language for model creation for model checking, and creates a model including not only operation specifications but also constraint conditions. An object of the present invention is to provide a model checking support apparatus and program capable of performing the above.
上記課題を解決するための、本発明に係るモデル検査支援装置は、状態遷移系として表されたシステムの動作に関する仕様と制約条件とを記述したモデル検査プログラムから、システムの動作に関する仕様に基づいて可能な全ての動作シーケンスを生成し、生成されたそれぞれの動作シーケンスにおいて制約条件が満たされているかどうかを検証するモデル検査器で検査されるモデル検査プログラムを生成するモデル検査支援装置であって、システムの動作に関する仕様とシステムに求める性質である前記制約条件とを表形式の情報として受け取る仕様入力部と、この表からシステムの動作に関する仕様と制約条件とを抽出して所定のモデル記述言語によってシステムの動作に関する仕様と制約条件とを記述した前記モデル検査プログラムを生成するモデル生成部とを備え、前記表は、システムで発生するイベントとシステムの各状態に対応して、システムが実行するアクション名と次に遷移する状態とを記述する状態遷移表と、前記状態遷移表で定義された状態毎に、当該システムを構成する要素の値を記述する制約条件表と、前記アクション名に対応して、当該アクションの実行によるシステムを構成する要素の値の変化と、システムを構成する要素の値で表される当該アクションの実行前後で成立していなければならない条件とを規定するアクション表と、前記状態遷移表において記述可能になされた、アクションあるいは遷移の実行が可能か否かを判定するための判定条件を、システムを構成する要素の値として記述した条件判定表と、システム外の外的作用によって発生する前記イベントについて、当該イベントの発生によるシステムを構成する要素の値の変化と、システムを構成する要素の値で定義される前記イベントの発生条件とを規定するイベント表とを有し、前記モデル検査プログラムは、システムの動作に関する仕様を、前記状態遷移表と、前記条件判定表と、前記イベント表と、前記アクション表で規定されたアクションの実行によるシステムを構成する要素の値の変化とに基づいて記述し、前記制約条件を、前記制約条件表と、前記アクション表で規定されたアクションの実行前後で成立していなければならない条件とに基づいて記述する。
In order to solve the above problems, a model checking support apparatus according to the present invention is based on a specification related to system operation from a model checking program that describes specifications and constraint conditions related to system operation expressed as a state transition system. A model checking support device that generates all possible operation sequences and generates a model checking program to be checked by a model checker that verifies whether or not the constraint condition is satisfied in each generated operation sequence, A specification input unit that receives specifications relating to system operation and the constraints required for the system as tabular information, and extracts specifications and constraints relating to system operation from this table in accordance with a predetermined model description language. The model checking program describing the specifications and constraints related to system operation A model generation unit, and the table includes a state transition table describing an action name executed by the system and a next transition state corresponding to an event occurring in the system and each state of the system, For each state defined in the state transition table, a constraint condition table that describes the values of the elements that constitute the system, and changes in the values of the elements that constitute the system by executing the action corresponding to the action names, An action table that defines the conditions that must be satisfied before and after the execution of the action represented by the values of the elements constituting the system, and the execution of the action or transition that can be described in the state transition table Generated by a condition determination table describing the determination conditions for determining whether or not possible as values of elements constituting the system and external actions outside the system An event table that defines a change in the value of an element constituting the system due to the occurrence of the event and an occurrence condition of the event defined by the value of the element constituting the system, and the model The inspection program changes the specifications relating to the operation of the system to the state transition table, the condition determination table, the event table, and a change in the value of an element constituting the system by executing an action defined in the action table. The constraint condition is described based on the constraint condition table and the conditions that must be satisfied before and after the execution of the action specified in the action table.
本発明によれば、特別のモデル記述言語の習得を要せずに、動作仕様だけでなく制約条件も含んだモデル検査のためのモデルを作成することができる。 According to the present invention, it is possible to create a model for model checking that includes not only operation specifications but also constraint conditions without the need for learning a special model description language.
[第1の実施の形態]
図1は、本発明の実施の形態に係るモデル検査支援装置を用いたモデル検査の流れを示す図である。
[First Embodiment]
FIG. 1 is a diagram showing a flow of model checking using the model checking support device according to the embodiment of the present invention.
ユーザは、システムの設計書に相当する状態遷移表2、アクション表3、制約条件表4、条件判定表5及びイベント表11を作成し、これらをモデル検査支援装置1に入力する。
本実施の形態に係るモデル検査支援装置1には、仕様入力部1a、検査項目生成部1b、及びモデル記述生成部1cが設けられている。そして、モデル検査支援装置1には、更に状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g、モデル記述言語辞書1h及びイベント記憶部1kが設けられている。
The user creates a state transition table 2, an action table 3, a constraint condition table 4, a condition determination table 5, and an event table 11 corresponding to the system design document, and inputs them to the model
The model
仕様入力部1aは、入力されたこれらの表から所要の情報を抽出して、それぞれ状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g及びイベント記憶部1kに格納する。検査項目生成部1b及びモデル記述生成部1cは、状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g及びイベント記憶部1kに格納された情報に基づいて、特別のモデル記述言語で書かれたモデル(以下、「モデル検査プログラム」という。)を生成する。 The specification input unit 1a extracts necessary information from these input tables and stores them in the state transition storage unit 1d, action storage unit 1e, constraint condition storage unit 1f, condition determination storage unit 1g, and event storage unit 1k, respectively. Store. The inspection item generation unit 1b and the model description generation unit 1c are based on information stored in the state transition storage unit 1d, the action storage unit 1e, the constraint condition storage unit 1f, the condition determination storage unit 1g, and the event storage unit 1k. A model written in the model description language (hereinafter referred to as “model checking program”) is generated.
モデル記述言語辞書1hは、モデル検査プログラムを生成する際に参照される辞書であり、これらの表に記載される自然言語で使用される演算子とモデル記述言語で使用される演算子との対応関係を格納している。 The model description language dictionary 1h is a dictionary that is referred to when generating a model checking program. Correspondence between the operators used in the natural language described in these tables and the operators used in the model description language. Stores relationships.
なお、検査項目生成部1bは主として動作に関する仕様を取扱い、モデル記述生成部1cは主として制約条件に関する仕様を取扱うが、実際の動作ではこれらが協働してモデル検査プログラム6を生成する。
The inspection item generation unit 1b mainly handles specifications related to operations, and the model description generation unit 1c mainly handles specifications related to constraints. In actual operations, these cooperate to generate the
生成されたモデル検査プログラム6は、モデル検査器7において検証が行われ、検査結果8として出力される。検査結果8には、モデル検査プログラム6が制約条件を満たしているかどうか、設計内容に矛盾点、不足点が存在するかどうかについての検査結果が記載される。
The generated
なお、モデル検査支援装置1、モデル検査器7は、ハードウエアに限られず、ソフトウエアで構成しても良い。また、モデル検査支援装置1に入力される各表2〜5及び11は、本実施の形態ではExcel(登録商標)を用いて作成しているが、これに限られずWord(登録商標)、Visio(登録商標)等の他の言語処理手段、ツールを用いて作成しても良い。
The model
続いて、モデル検査支援装置1に入力される上述の各表2〜5及び11について説明する。
図2は、状態遷移表2の記述例を示す図である。状態遷移表2は、システムの状態遷移を記述した表である。
Subsequently, each of the above-described tables 2 to 5 and 11 input to the model
FIG. 2 is a diagram illustrating a description example of the state transition table 2. The state transition table 2 is a table describing system state transitions.
状態遷移表2には、状態遷移表名欄2a、状態名欄2b、入退場アクション欄2c、イベント名欄2d、及びアクション欄2eが設けられている。
状態遷移表名欄2aには、この状態遷移表の名称が日本語または英数字等による表記で入力される。状態名欄2bは、このシステムが取り得る状態毎に分類され、その状態名が日本語または英数字等による表記で入力される。入退場アクション欄2cには、上述の状態に入退場する際の動作を規定し、入場アクションと退場アクションとが日本語または英数字等による表記で入力される。イベント名欄2dには、このシステムで発生するイベント毎に分類され、そのイベント名が日本語または英数字等による表記で入力される。アクション欄2eには、イベントと状態の組合せにおいて実行されるアクションと遷移先の状態名が入力される。
The state transition table 2 includes a state transition
In the state transition
次に、アクション欄2eの内容について説明する。アクション欄2eは、基本構成として、上段と下段を備えている。
Next, the contents of the
図3は、アクション欄2eの下段の内容を説明する図である。
下段には、所定のイベントと状態の組合せの場合に実行するアクションのアクション名を記載する。このアクション名の処理内容は、後述するアクション表3に規定されている。
複数のアクションを実行する場合は、このアクション欄2eの下段に複数のアクション名を改行して記述すれば良い。さらに、そのアクションを実行するか否かに条件が必要な場合は、その条件(以下、「ガード条件」という)を括弧([ ])で囲んで記述し、その後にアクション名を記載すれば良い。
FIG. 3 is a diagram for explaining the contents in the lower part of the
The lower part describes the action name of the action to be executed in the case of a combination of a predetermined event and state. The processing content of this action name is defined in action table 3 to be described later.
When a plurality of actions are to be executed, a plurality of action names may be described with line breaks in the lower part of the
図3に示すアクションでは、「電源OFF」の状態で「電源ボタン押下」によるイベントが発生したときは、電源ON処理を実行するとともに、ガード条件である「ディスク有」が成立している場合は再生初期化処理を実行することが規定されている。 In the action shown in FIG. 3, when an event due to “power button press” occurs in the “power OFF” state, the power ON process is executed and the guard condition “disk present” is satisfied. It is defined that the playback initialization process is executed.
図4は、アクション欄2eの上段の内容を説明する図である。
上段には、下段のアクションを実行した後、次にどの状態に遷移するのかを状態名で記述する。条件によって遷移先が異なる場合は、異なる遷移先毎に改行して記述する。遷移に条件が必要な場合は、ガード条件を括弧([ ])で囲んで記述し、その後に遷移先を記載すれば良い。
図4に示す遷移では、図3に示すアクションが実行された後は、ガード条件「ディスク有」が成立している場合は「停止」状態に遷移し、ガード条件「ディスク無」が成立している場合は「ディスクなし」状態に遷移することが規定されている。
FIG. 4 is a diagram for explaining the contents of the upper part of the
In the upper part, after executing the action in the lower part, the state to be changed to next is described by the state name. If the transition destination differs depending on the condition, write a line feed for each different transition destination. If a condition is required for the transition, the guard condition is described by enclosing it in parentheses ([]), followed by the transition destination.
In the transition shown in FIG. 4, after the action shown in FIG. 3 is executed, if the guard condition “with disk” is satisfied, the state transits to the “stop” state, and the guard condition “without disk” is satisfied. If there is, the transition to the “no disk” state is specified.
なお、アクション欄2eに「/」が記入されている場合は、「無視」として扱われる。「無視」は、所定のイベントと組合せは有り得るが、何も処理をしないことを表す。アクション欄2eに「×」が記入されている場合は、「不可」として扱われる。「不可」は、所定のイベントと状態の組合せはありえないことを示している。
If “/” is entered in the
図5は、入場アクション、退場アクションの内容を説明する図である。
入場アクションは、この状態に遷移した際に実行されるアクションであり、退場アクションは次の状態へ遷移する前に実行されるアクションである。
ここで、複数のアクションを実行する場合は、それらのアクション毎に改行して記述すれば良い。さらに、そのアクションを実行するか否かに条件が必要な場合は、ガード条件を括弧([ ])で囲んで記述し、その後にアクション名を記載すれば良い。
FIG. 5 is a diagram for explaining the contents of the entry action and the exit action.
The entrance action is an action that is executed when transitioning to this state, and the exit action is an action that is performed before transitioning to the next state.
Here, when a plurality of actions are executed, the actions may be described with line breaks. Furthermore, when a condition is required for whether or not to execute the action, the guard condition is described by enclosing it in parentheses ([]), followed by the action name.
アクションの実行は、アクション欄2e下段のアクション→退場アクション→入場アクションの順番で実行される。図5に示す例では、状態1でイベント1が発生した場合、アクション3→アクション2→アクション4の順序で実行される。
Actions are executed in the order of action in the lower part of the
なお、アクション欄2eの上段に現在の状態名を記述した場合を、「自己遷移」と呼ぶ。自己遷移の場合は状態自体は変化しないものの遷移の処理は行われ、かつ入場アクションと退場アクションが実行される。アクション欄2eの上段に「−(ハイフン)」が記述されあるいは空白である場合を、「内部遷移」と呼ぶ。内部遷移の場合は、アクション欄2e下段のアクションは実行されるが、退場アクション、入場アクションは実行されない。
The case where the current state name is described in the upper part of the
図6は、アクション表3の記述例を示す図である。アクション表3には状態遷移表2のアクション欄2eの下段および入退場アクション欄2cに記述した「アクション」の内容を「事前条件」、「処理内容」、「事後条件」に分類して、システム内の構成要素の状態を記述する。
FIG. 6 is a diagram illustrating a description example of the action table 3. In the action table 3, the contents of the “action” described in the lower part of the
アクション表3には、アクション名欄3a、事前条件欄3b、処理内容欄3c、及び事後条件欄3dが設けられている。
アクション名欄3aには、状態遷移表2のアクション欄2eの下段および入退場アクション欄2cに記載したアクション名と同一の名称が日本語または英数字等による表記で入力される。
The action table 3 includes an action name field 3a, a
In the action name field 3a, the same name as the action name described in the lower part of the
事前条件欄3bには、アクションの処理内容を実行するために成立していなければならない構成要素の値の条件を記載する。処理内容欄3cには、アクションの実行によって構成要素の値をどのように変化させるかを記載する。事後条件欄3dには、アクションの内容が実行された後に成立すべき構成要素の値の条件を記載する。
これら、それぞれの欄内の条件または内容は自然言語、式などで記述することができる。また、それぞれの欄内に複数の条件または内容がある場合には、改行して記述すれば良い。条件または内容がない場合は、その欄には「−(ハイフン)」あるいは空白を記述する。
In the
These conditions or contents in the respective columns can be described in natural language, expressions, or the like. In addition, when there are a plurality of conditions or contents in each column, they may be described with line breaks. If there is no condition or content, enter “-(hyphen)” or a blank in the field.
ここで、図6の事前条件欄3b及び事後条件欄3dに記載されている「=」は「条件」を表し、処理内容欄3cに記載されている「←」は、「代入」を表している。
Here, “=” described in the
図6に示すアクションでは、次のことが規定されている。「ディスク回転開始処理」を実行するためには、事前条件として、構成要素である「ディスク」の値が「あり」でかつ「ディスク回転」の値が「停止」にあることが必要である。そして、処理内容は、「ディスク回転」の値を「回転中」とすることであり、その処理の結果である事後条件は、「ディスク回転」の値が「回転中」となっていることが必要である。 The action shown in FIG. 6 defines the following. In order to execute the “disk rotation start process”, it is necessary as a precondition that the value of “disk” as a component is “present” and the value of “disk rotation” is “stop”. The processing content is that the value of “disk rotation” is set to “rotating”, and the post-condition that is the result of the processing is that the value of “disk rotation” is “rotating”. is necessary.
図7は、条件判定表5の記述例を示す図である。条件判定表5には、状態遷移表2の各欄の括弧内に記載したガード条件の内容を記述する。
条件判定表5は、条件判定名欄5a及び条件内容欄5bを備えている。
条件判定名欄5aには、状態遷移表2の各欄の括弧内に記載したガード条件の名称が日本語または英数字等による表記で入力される。
条件内容欄5bには、条件判定名の条件判定内容を記載する。これは、具体的な値、数式などの他、自然言語を用いて内容を記述しても良い。内容がない場合は、その欄には「−(ハイフン)」あるいは空白を記述する。
FIG. 7 is a diagram illustrating a description example of the condition determination table 5. The condition determination table 5 describes the contents of the guard conditions described in parentheses in each column of the state transition table 2.
The condition determination table 5 includes a condition
In the condition
In the
例えば、図7では、「開始トラックである」という条件は、構成要素「トラック番号」の値が「1」となっていることであり、「開始トラックでない」という条件は、構成要素「トラック番号」の値が「1より大きい」ことであることが規定されている。 For example, in FIG. 7, the condition “being a start track” is that the value of the component “track number” is “1”, and the condition “not a start track” is the component “track number” "Is greater than 1".
図8は、制約条件表4の記述例を示す図である。制約条件表4には、検証対象のシステムの各状態における構成要素が取り得る値を記述する。
制約条件表4には、構成要素名欄4a、状態名欄4b、及び制約条件内容欄4cが設けられている。
構成要素名欄4aには、各構成要素の名称が日本語または英数字等による表記で入力される。状態名欄4bには、状態遷移表2の状態名と同じ名称を記載する。制約条件内容欄4cには、ある構成要素がある状態でどのような値になっていなければないかという制約条件を記述する。これは、具体的な値や名称などの他に自然言語で記述しても良い。
FIG. 8 is a diagram illustrating a description example of the constraint condition table 4. The constraint condition table 4 describes values that can be taken by the components in each state of the system to be verified.
The constraint condition table 4 is provided with a
In the
例えば、図8では、状態「電源OFF」では、構成要素「電源」の値は「OFF」、構成要素「音声出力」の値は「なし」、構成要素「ディスク回転」の値は「停止」となっていなければならず、構成要素「ディスク」、「トラック番号」、「総トラック数」の値には制約がないことが規定されている。 For example, in FIG. 8, in the state “power OFF”, the value of the component “power” is “OFF”, the value of the component “audio output” is “none”, and the value of the component “disk rotation” is “stop”. It is specified that there are no restrictions on the values of the components “disk”, “track number”, and “total number of tracks”.
図9は、イベント表11の記述例を示す図である。イベント表11には、イベントが発生するための条件と、イベントの発生によるシステム内の構成要素の値の変化が記述される。 FIG. 9 is a diagram illustrating a description example of the event table 11. The event table 11 describes conditions for generating an event and changes in values of components in the system due to the occurrence of the event.
イベント表11には、イベント名欄11a、発生条件欄11b及び作用内容欄11cが設けられている。
イベント名欄11aには、状態遷移表2のイベント名欄2dに記載したイベント名と同一の名称が日本語または英数字等による表記で入力される。発生条件欄11bには、そのイベントが発生するために成立していなければならない条件、即ち、発生条件が記載される。作用内容欄11cには、イベントが発生したことによるシステム内の構成要素の値の変化、即ち作用内容が記載される。この作用内容は、システムが能動的に変化させたものでなく、ユーザによる操作などの外的作用によって変化したものである。
The event table 11 includes an
In the
図9に示すイベント表11によれば、イベント「ディスク挿入」は、既にディスクがCDプレーヤ内にある場合には発生せず、イベント「トラック終端到達」は、ディスクがCDプレーヤ内にある場合しか発生しない。
ここで、イベント「ディスク挿入」「トラック終端到達」以外のイベントについては、発生条件が指定されていないが、これはイベント「ディスク挿入」「トラック終端到達」以外のイベントはいつでも発生することができることを表している。
According to the event table 11 shown in FIG. 9, the event “disc insertion” does not occur when the disc is already in the CD player, and the event “track end reached” occurs only when the disc is in the CD player. Does not occur.
Here, for events other than the event “disc insertion” and “track end reached”, the generation conditions are not specified, but this means that events other than the events “disc insert” and “track end reached” can occur at any time. Represents.
次に、本発明の実施の形態に係るモデル検査支援装置を用いてモデル検査プログラムを生成する動作について説明する。
図10は、モデル検査プログラムの生成手順を示すフロー図である。
Next, the operation | movement which produces | generates a model check program using the model check assistance apparatus which concerns on embodiment of this invention is demonstrated.
FIG. 10 is a flowchart showing the generation procedure of the model checking program.
ステップS01において、ユーザは状態遷移表2、アクション表3、制約条件表4及びイベント表11をモデル検査支援装置1に入力する。
図11は、モデル検査支援装置1に入力される各表の記載例を示す図である。本図では電源ボタンのON・OFF、ディスクの挿入、次トラックボタン押下による動作について説明するが、説明の簡略化のため条件判定表5を用いない状態での動作について記載している。
In step S01, the user inputs the state transition table 2, the action table 3, the constraint condition table 4, and the event table 11 to the model checking
FIG. 11 is a diagram illustrating a description example of each table input to the model checking
なお、本実施の形態では、状態遷移表2、アクション表3、制約条件表4及びイベント表11は、上述のようにExcel(登録商標)等の他の言語処理手段やツールを用いて生成するが、入力方法については種々の形態をとる事ができる。例えば、ユーザが不図示の入力装置からデータを入力しても良く、作成済みの各表を不図示の記憶媒体を介して入力しても良く、外部の他システムから不図示の通信回線を介して作成済みの各表をモデル検査支援装置1に伝送しても良い。また、状態遷移表2以外は、必要なデータが入力されれば、必ずしも表形式で作成されなくても良い。
In the present embodiment, the state transition table 2, the action table 3, the constraint condition table 4, and the event table 11 are generated using other language processing means and tools such as Excel (registered trademark) as described above. However, the input method can take various forms. For example, the user may input data from an input device (not shown), may input each created table via a storage medium (not shown), or may be input from another external system via a communication line (not shown). Each table already created may be transmitted to the model checking
モデル検査支援装置1では、仕様入力部1aが起動して、入力された各表からデータを抽出して、それぞれ状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g及びイベント記憶部1kに格納する。この際に、図2に示す状態遷移表2のアクション欄2eの上段に記述された遷移先の状態名が状態名欄2bに記述されているかを確認する。アクション欄2eの上段に記述された遷移先の状態名が状態名欄2bに存在しない場合には、仕様入力部1aが異常と判断し、モデル検査プログラムを生成せずに動作を終了する。同様に、状態遷移表2のアクション欄2eの下段に記述されたアクション名がアクション表3のアクション表名欄3aに記述されているか、状態遷移表2のアクション欄2eの上段及び下段に括弧([ ])で囲んで記述されたガード条件が条件判定表5の条件判定名欄5aに記述されているか、アクション表3の事前条件欄3b、処理内容欄3c、事後条件欄3d及び条件判定表5の条件内容欄5bに記述された構成要素名が制約条件表4の構成要素名欄4aに記述されているか、またイベント表11のイベント名欄11aに記載したイベント名が状態遷移表2のイベント名欄2dに記述されているかを確認し、存在しない場合には仕様入力部1aがエラーを異常と判断し、モデル検査プログラムを生成せずに動作を終了する。
In the model checking
検査項目生成部1b及びモデル記述生成部1cは、状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g及びイベント記憶部1kに格納された各表のデータに基づいて、モデル検査プログラム6を生成する。アクションや制約条件、条件判定の記述において自然言語が用いられている場合には、適宜、モデル記述言語辞書1hを参照し、対応するモデル記述言語に変換する。
The inspection item generation unit 1b and the model description generation unit 1c are based on the data of each table stored in the state transition storage unit 1d, the action storage unit 1e, the constraint condition storage unit 1f, the condition determination storage unit 1g, and the event storage unit 1k. Thus, the
なお、以下特に明示しない場合は、検査項目生成部1b及びモデル記述生成部1cが協働してモデル検査プログラムの各部を生成するものとする。 Unless otherwise specified, the inspection item generation unit 1b and the model description generation unit 1c cooperate to generate each part of the model inspection program.
ステップS02において、モデル検査プログラム6の内、図23に示す状態遷移部6cの作成を開始する。先ず、状態遷移記憶部1dに格納された状態遷移表2のイベント名欄2dに記載されているイベント名毎に、そのイベントを処理するブロックをモデル検査プログラム6に生成する。
図12では、イベント「電源ボタンON」、「電源ボタンOFF」、「ディスク挿入」、「次トラックボタン押下」の異なるブロックが生成されている。即ち、発生したイベントを表す変数eventの値によってブロックが分けられている。
In step S02, generation of the
In FIG. 12, different blocks of the events “power button ON”, “power button OFF”, “disc insertion”, and “next track button press” are generated. That is, the blocks are divided according to the value of the variable event representing the event that has occurred.
ステップS03において、生成したそれぞれのブロックの内部に、状態遷移記憶部1dに格納された状態遷移表2の状態名欄2bにある状態ごとのブロックを生成する。
図13では、状態名である「電源OFF状態」、「待機状態」、「ディスクあり状態」のブロックが生成されている。即ち、現在の状態を表す変数stateによって、さらに3つのブロックに分けられている。
In step S03, a block for each state in the
In FIG. 13, blocks of status names “power OFF state”, “standby state”, and “disk presence state” are generated. That is, the block is further divided into three blocks according to the variable state representing the current state.
ステップS04において、生成した状態の各ブロックに、状態遷移記憶部1dに格納された状態遷移表2のアクション欄2eの記述に従い、ステップS06で作成するアクション部6aの呼び出し処理を生成する。
図14では、イベントが「電源ボタンON」で状態が「電源OFF状態」のブロックに、処理内容「ランプ点灯処理」の呼出しと遷移先「待機状態」が記載されている。また、イベントが「電源ボタンOFF」で状態が「待機状態」のブロックに、処理内容「ランプ消灯処理」の呼出しと遷移先「電源OFF状態」が記載されている。さらに、イベントが「電源ボタンOFF」で状態が「ディスクあり状態」のブロックに、処理内容「ディスク排出処理」、「ランプ消灯処理」の呼出しと遷移先「電源OFF状態」が記載されている。
In step S04, in accordance with the description in the
In FIG. 14, the call of the processing content “lamp lighting process” and the transition destination “standby state” are described in the block whose event is “Power button ON” and whose state is “Power OFF state”. Also, in the block where the event is “Power button OFF” and the state is “Standby state”, the calling of the processing content “Lamp off process” and the transition destination “Power OFF state” are described. Furthermore, in the block where the event is “power button OFF” and the state is “disk presence state”, the calling of the processing content “disk ejection process” and “lamp extinguishing process” and the transition destination “power OFF state” are described.
ステップS05において、状態遷移記憶部1dに格納された状態遷移表2の状態名欄2bにある状態ごとのブロックを新たに生成する。そして、生成した状態のブロックに、ステップS07で作成する制約条件検査部6bの呼出処理を生成する。即ち、生成した状態毎に制約条件の良否が検査される。
図15では、状態名である「電源OFF状態」、「待機状態」「ディスクあり状態」のブロックが生成されている。即ち、遷移先を表す変数nextstateによって場合わけがなされ、遷移先の状態ごとにブロックが生成されている。そして、そのブロック毎に状態名が制約条件を検査するための呼出名として作成されている。
In step S05, a block for each state in the
In FIG. 15, blocks of “power-off state”, “standby state”, and “disk presence state” which are state names are generated. In other words, a case is determined depending on the variable nextstate representing the transition destination, and a block is generated for each transition destination state. A state name is created for each block as a call name for checking the constraint condition.
ステップS06において、モデル検査プログラム6の内、アクション部6aの作成を開始する。アクション記憶部1eに格納されたアクション表3のアクション名欄3aに記載されたアクション名でブロックを分けて作成する。そして、生成したブロックにアクション記憶部1eに格納されたアクション表3の記述に従って、内部の処理を生成する。
図16では、アクション名の「次トラック処理」、「ディスク受入処理」に対応してブロックが作成されている。そして、「次トラック処理」のブロックに、アクション記憶部1eに格納された事前条件欄3bの内容がモデル記述言語であるPromela言語を用いてassert文として生成される。処理内容欄3cの内容がPromela言語を用いて変換して生成される。事後条件欄3dの内容がPromela言語を用いてassert文として生成される。「ディスク受入処理」のブロックについても、同様に処理される。
In step S06, creation of the
In FIG. 16, blocks are created corresponding to “next track processing” and “disk receiving processing” of action names. Then, in the “next track processing” block, the contents of the
なお、assert文として生成される内容は、例えば、事前条件であれば、処理を実施する前には「トラック番号は総トラック数より少なくなければならない」と解釈される。 For example, if the content generated as an assert statement is a precondition, it is interpreted that “the track number must be smaller than the total number of tracks” before the processing is performed.
ここまでの処理によって、モデル検査プログラムの内、アクション部6aが作成された。
By the processing so far, the
ステップS07において、モデル検査プログラム6の内、制約条件検査部6bの作成を開始する。制約条件記憶部1fに格納された制約条件表4の状態名欄4bに記載された状態名でブロックを分けて作成する。
In step S07, creation of the constraint
図17では、状態名の「電源OFF状態」、「待機状態」、「ディスクあり状態」に対応してブロックが作成されている。 In FIG. 17, blocks are created corresponding to the state names “power OFF state”, “standby state”, and “disk presence state”.
ステップS08において、生成したブロックに制約条件検査のために制約条件記憶部1fに格納された制約条件内容欄4cの記述を用いたブロックを生成する。
図18では、「電源OFF状態」のブロックに、制約条件である「ランプ」が「消灯」、「ディスク」が「なし」、「トラック番号」が「0」、「電源ボタン」が「押上」でなければならないことを規定するassert文が生成される。また、「待機状態」のブロックに、制約条件である「ランプ」が「点灯」、「ディスク」が「なし」、「トラック番号」が「0」、「電源ボタン」が「押下」でなければならないことを規定するassert文として生成される。
このように、状態毎に複数の構成要素を制約条件として記述することになる。
In step S08, a block using the description in the constraint
In FIG. 18, in the “power OFF state” block, “lamp” which is a constraint condition is “off”, “disk” is “none”, “track number” is “0”, and “power button” is “push up”. An assert statement is generated that specifies that it must be. Also, in the “standby” block, the “lamp” that is the constraint condition is not “lit”, “disk” is “none”, “track number” is “0”, and “power button” is not “pressed”. Generated as an assert statement that stipulates not to be.
In this way, a plurality of components are described as constraints for each state.
ここまでの処理によって、モデル検査プログラム6の内、制約条件検査部6bが作成された。
Through the processing so far, the constraint
ステップS09において、イベント記憶部1kに格納されたイベント表11のイベント名欄11aに記載されたイベントごとのブロックを生成する。生成したブロックにイベント記憶部1kに格納された作用内容欄11cに従った内部の処理を記述して、イベント内容部6fを作成する。
In step S09, a block for each event described in the
図19では、イベント名の「電源ボタンON」、「電源ボタンOFF」、「ディスク挿入」、「次トラックボタン押下」に対応してブロックが生成されている。
そして図20では、生成したブロック「電源ボタンON」の内部の処理として「電源ボタン=押下」、「電源ボタンOFF」の内部の処理として「電源ボタン=押上」が記載されている。ここで、作用内容の記載がない「ディスク挿入」、「次トラックボタン押下」では、ブロックのみが生成されている。
In FIG. 19, blocks are generated corresponding to the event names “power button ON”, “power button OFF”, “disc insertion”, and “next track button press”.
In FIG. 20, “power button = press” is described as the internal processing of the generated block “power button ON”, and “power button = press-up” is described as the internal processing of “power button OFF”. Here, only “block” is generated in “insert disc” and “press next track button” without description of action contents.
ステップS10において、モデル検査プログラムの内、イベントを非決定的に発生させるイベント発生部6dを、状態遷移記憶部1dに格納された状態遷移表2のイベント名欄2dを用いて生成する。更に、各イベントの発生条件にイベント記憶部1kに格納されたイベント表11の発生条件欄11bに記載された条件を付与し、イベント内容部の呼出処理を生成する。
In step S10, an
図21では、イベントを表す変数eventの値に「電源ボタンON」「電源ボタンOFF」「ディスク挿入」「次トラックボタン押下」を設定している。そして、イベント表11でイベント発生条件が指定されているイベント「電源ボタンON」、「電源ボタンOFF」に関しては、その発生条件が出力され、イベント発生条件が指定されていないイベント「ディスク挿入」、「次トラックボタン押下」に関しては、常に発生可能であることを示す「true」が出力される。
そして、図22では、そのイベント発生部6dにイベント作用内容の呼び出し部分が生成される。
In FIG. 21, “power button ON”, “power button OFF”, “disc insertion”, and “next track button press” are set as the value of a variable event representing an event. For the events “power button ON” and “power button OFF” for which the event occurrence condition is specified in the event table 11, the occurrence conditions are output, and the event “disk insertion” for which the event occurrence condition is not specified is output. Regarding “next track button press”, “true” indicating that it can always be generated is output.
Then, in FIG. 22, the event action content calling part is generated in the
図23は、上述の手順によって作成されたモデル検査プログラム6の基本構成を示す図である。
状態遷移表2、アクション表3、制約条件表4及びイベント表11に基づいて、それらのデータ間の対応付けがなされたアクション部6a、制約条件検査部6b、状態遷移部6c、イベント発生部6d及びイベント内容部6fが生成されている。なお、条件判定部6eについては後で詳細に説明する。
FIG. 23 is a diagram showing a basic configuration of the
Based on the state transition table 2, the action table 3, the constraint condition table 4 and the event table 11, the
なお、状態遷移部6c、アクション部6a、制約条件検査部6b、イベント発生部6dイベント内容部6fを生成する順序については、本実施の形態に限られない。
The order of generating the
なお、モデル検査プログラムの生成にあたり、変数や定数、プロセス等の宣言については、それを使用するモデル記述言語の規約に基づいて適宜行うものとする。 In generating a model checking program, declarations of variables, constants, processes, etc. are made appropriately based on the rules of the model description language that uses them.
[第2の実施の形態]
第2の実施の形態では、モデル検査プログラムの生成において、条件判定表5、状態遷移表2の入退場アクションなどを処理する動作について説明する。従って、第1の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
[Second Embodiment]
In the second embodiment, an operation for processing the entry / exit action of the condition determination table 5 and the state transition table 2 in the generation of the model checking program will be described. Accordingly, the same parts as those in the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.
図24は、モデル検査支援装置1に入力される各表の記載例を示す図である。図11に示す第1の実施の形態と比して、条件判定表5が読み込まれる点と、状態遷移表2には「電源OFF状態」のアクション欄2eにガード条件として[ディスク無]、[ディスク有]が記載されている点が異なっている。
FIG. 24 is a diagram illustrating a description example of each table input to the model checking
図10に示すモデル検査プログラム生成フローのステップS04において、生成した状態の各ブロックに、状態遷移記憶部1dに格納されている状態遷移表2のアクション欄2eにある各欄の内容を記載する。
図25では、イベントが「電源ボタンON」で状態が「電源OFF状態」のブロックに、処理内容「ランプ点灯処理」、遷移先「[ディスク無]待機状態」と「[ディスク有]ディスクあり状態」が記載されている。
先ず、状態遷移表2の状態名欄2bにある状態ごとのブロックを新たに生成する。そして、生成した状態のブロックにアクション欄2e下段にある「ランプ点灯処理」の呼出処理を記載する。
In step S04 of the model checking program generation flow shown in FIG. 10, the contents of each column in the
In FIG. 25, in the block where the event is “Power button ON” and the state is “Power OFF state”, the processing content “Lamp lighting process”, transition destination “[No disk] standby state” and “[Disk present] disk present state” Is described.
First, a block for each state in the
次に、アクション欄2e上段の条件を判定する条件判定部6eの呼出処理を生成し、その判定結果によって遷移先を変化させる処理を記載する。図25では、「ディスク無」が成立する場合には遷移先は「待機状態」となり、「ディスク有」が成立する場合には遷移先は「ディスクあり状態」であることが規定されている。
Next, a process for generating a call process of the
図26では、イベントが「ディスク挿入」で状態が「電源OFF状態」のブロックに、処理内容「[ディスク無]ディスク受入処理」と「ランプ点灯処理」、遷移先「ディスクあり状態」が記載されている。 In FIG. 26, the processing contents “[no disk] disk receiving process” and “lamp lighting process” and the transition destination “disk present state” are described in the block whose event is “disk inserted” and whose state is “power OFF state”. ing.
状態遷移表2のアクション欄2e下段で条件判定が使用されている場合は、その条件を判定する条件判定部6eの呼出処理を生成し、その判定結果によって対応するアクションを実行するか否かを変化させる処理を記載する。図26では、「ディスク無」が成立する場合にのみ「ディスク受入処理」が実行されることが規定されている。
When condition determination is used in the lower part of the
次に条件判定表5の処理について説明する。
図10に示すモデル検査プログラム生成フローのステップS08が終了した後に、条件判定表5の処理を実行する。
Next, the process of the condition determination table 5 will be described.
After step S08 of the model checking program generation flow shown in FIG. 10 is completed, the process of the condition determination table 5 is executed.
条件判定表処理では、条件判定記憶部1gに格納されている条件判定表5の条件判定名でブロックを生成し、生成したブロック内部に条件判定表5の内容に従って処理名を記載する。
図27では、条件判定名の「ディスク有」、「ディスク無」に対応してブロックが作成され、それぞれのブロックに、条件判定表5の内容が規定されている。
In the condition determination table process, a block is generated with the condition determination name of the condition determination table 5 stored in the condition determination storage unit 1g, and the process name is written in the generated block according to the contents of the condition determination table 5.
In FIG. 27, blocks are created corresponding to the condition determination names “with disk” and “without disk”, and the contents of the condition determination table 5 are defined for each block.
なお、この条件判定表5に基づいて生成されたプログラムの部分は、図23に示すモデル検査プログラム6に条件判定部6eとして追加される。この条件判定部6eは、状態遷移部6cの前に生成される。
The part of the program generated based on this condition determination table 5 is added as a
次に、「不可」と「無視」について説明する。
「不可」は、アクション欄2eに「×」が記入されている場合であり、この「不可」となっているイベントと状態の組合せはありえないことを示している。
Next, “impossible” and “ignore” will be described.
“Impossible” is a case where “x” is entered in the
図28では、「待機状態」と「ディスクあり状態」とでは、イベント「電源ボタンON」が発生してはならず、「電源OFF状態」では、イベント「電源ボタンOFF」が発生してはならないことが記載されている。
アクション欄2eが「不可」となっている場合は、ステップS04において生成した状態の各ブロックにはassert文が挿入される。これによって、このブロックが実行されてはならないことが表される。
In FIG. 28, the event “power button ON” must not occur in the “standby state” and “disk presence state”, and the event “power button OFF” must not occur in the “power OFF state”. It is described.
When the
「無視」は、アクション欄2eに「/」が記入されている場合であり、この「無視」となっているイベントと状態の組合せはあり得るが、何も処理をしないことを示している。
この場合には、そのアクション欄2eに対応するブロックには何も書き込まれない。
“Ignore” is a case where “/” is entered in the
In this case, nothing is written in the block corresponding to the
次に入退場アクションについて説明する。
入場アクションはこの状態に遷移した際に実行されるアクションであり、退場アクションは次の状態へ遷移する前に実行されるアクションである。
図29に示す状態遷移表2では、「電源OFF状態」へ遷移する際には、入場アクションとして「ランプ消灯処理」が実行され、「電源OFF状態」から他の状態へ遷移する際には、退場アクションとして「ランプ点灯処理」が実行されることが規定されている。
Next, the entry / exit action will be described.
The entry action is an action that is executed when transitioning to this state, and the exit action is an action that is performed before transitioning to the next state.
In the state transition table 2 shown in FIG. 29, “Lamp-off process” is executed as an entrance action when transitioning to “Power OFF state”, and when transitioning from “Power OFF state” to another state, It is defined that “lamp lighting process” is executed as an exit action.
この入退場アクションが状態遷移表2に記載されていた場合、図23に示すモデル検査プログラム6の状態遷移部の最後に入退場アクションを処理するブロックが生成される。入場アクションの処理ブロック、退場アクションの処理ブロックの内部には、状態遷移表2の状態に対応するブロックが生成され、その中に入場アクション欄、退場アクション欄に記述された内容がモデル記述言語を用いて生成される。
When this entry / exit action is described in the state transition table 2, a block for processing the entry / exit action is generated at the end of the state transition part of the
続いて、イベント表11の役割について、キッチンタイマに組み込むプログラムの検査を例として詳細に説明する。 Next, the role of the event table 11 will be described in detail by taking an example of checking a program incorporated in the kitchen timer.
図30は、キッチンタイマ20の構成を示すブロック図である。
キッチンタイマ20には、スタートボタン21、ストップボタン22及びアラーム(警報器)23が設けられている。そして、CPU25が、スタートボタン21、ストップボタン22の操作信号を受け取って、タイマ26との間で情報の授受を行い、アラーム23の警報吹鳴動作を制御する。
FIG. 30 is a block diagram illustrating a configuration of the
The
キッチンタイマ20の仕様は次のとおりである。
スタートボタン21を押下すると、タイマ26が起動し、一定時間が経過するとアラーム23が鳴動する。アラーム23の鳴動中にストップボタン22を押下するとアラーム23の鳴動が停止する。アラーム23の鳴動中に一定時間が経過するとアラーム23の鳴動が停止する。
アラーム23の鳴動が停止した後は、タイマ26は停止しており、タイマ26の起動には再びスタートボタン21を押下する。スタートボタン21の押下後、アラーム23の鳴動前にストップボタン22を押下すると、タイマ26は停止する。
The specification of the
When the
After the
キッチンタイマ20に内蔵されているタイマ26の仕様は次のとおりである。
タイマ26がCPU25からのカウンタ設定信号を受け取ると、タイマ26は直ちにカウントダウンを開始する。タイマ26に対してCPU25が割込許可信号を出力していた場合は、タイマ26はカウントがゼロになるとタイマ割込信号をCPU25に出力する。
The specifications of the
When the
タイマ割込信号がCPU25に出力されても、タイマ26は自動的に割込禁止にならない。再びカウンタ設定がされれば、タイマ26は直ちにカウントダウンを開始し、タイマ割込信号を発生する。
Even if the timer interrupt signal is output to the
図31は、キッチンタイマ20を設計した例を示す図である。
上述の動作を規定した、状態遷移表2、制約条件表3、アクション表4及びイベント表11の内容が示されている。この各表に従って生成されたモデル検査プログラム6をモデル検査器7で検査した結果は「良好」であり、不具合個所は存在していない。
FIG. 31 is a diagram illustrating an example in which the
The contents of the state transition table 2, the constraint condition table 3, the action table 4, and the event table 11 that define the above-described operations are shown. The result of checking the
しかし、イベント表11を用いずに、即ち発生条件欄11b、作用内容欄11cをブランクとして生成されたモデル検査プログラム6では、モデル検査器7での検査において、従来装置の場合、次のようなエラーが指摘される。
However, in the
それは、「待機中」の状態で「スタートボタン押下」イベントが発生しないうちに「タイマ割込」イベントが発生し「アラーム中」の状態に遷移したケースで、割込みがDISABLEとなっているというものである。即ち、制約条件表3では、「アラーム中」の状態において割込はENABLEとなっていなければならないと定義されていることに違反しているとの警告である。
しかしながら、そもそも「待機中」の状態において「スタートボタン押下」イベントが発生する前には「タイマ割込許可」アクションは実行されていないため「タイマ割込」イベントが発生することは不合理である。即ち、モデル検査装置7は、有りえない事象を検知してエラーを発生していることになる。
It is a case where a “timer interrupt” event occurs and a transition to the “alarming” state occurs before the “start button pressed” event occurs in the “waiting” state, and the interrupt is DISABLE. It is. In other words, the constraint condition table 3 is a warning that it is in violation of the definition that the interrupt must be ENABLE in the “alarming” state.
However, it is unreasonable to generate a “timer interrupt” event because the “timer interrupt permission” action is not executed before the “start button pressed” event occurs in the “waiting” state. . That is, the
この理由は、全てのイベントが常に発生し得るものとして検査を進めたため、本来発生し得ない状況でのイベント発生を契機とした制約条件違反が誤って検出されたことによる。一般的に次のような状況において同様の誤検出の可能性がある。
即ち、これまで検査対象システム内の構成要素の値はシステムの能動的な処理(アクション)によってのみ変化した。システムが「閉じた系」である場合には、システム内部で構成要素の値は整合がとれている。しかし、システムが「開いた系」であり、システム外部からの作用(外的作用)によってシステム内の構成要素の値が受動的に変化する可能性がある場合、構成要素の値が矛盾する結果、制約条件の違反が誤って検出される可能性がある。
The reason for this is that, since all the events can always occur, the inspection is proceeded, and therefore, the constraint condition violation triggered by the occurrence of the event in a situation where it cannot originally occur is erroneously detected. In general, there is a possibility of the same false detection in the following situation.
That is, until now, the value of the component in the system to be inspected has changed only by the active processing (action) of the system. When the system is a “closed system”, the values of the constituent elements are consistent within the system. However, if the system is an “open system” and the value of the component in the system may passively change due to an action from outside the system (external action), the result of inconsistent component values , Violations of constraints may be detected incorrectly.
以上のような従来装置の不具合を排除するために、発明者らはエラー発生防止の要件について根本に立ち返った検討を重ね、つぎのような対応策を立案した。
(1)あり得ないイベント発生による誤った制約違反の検出を排除するため、イベントの発生条件を指定可能とする。
(2)システム内の構成要素の値の不正による誤った制約違反の検出を排除するため、イベント発生に伴うシステム内の構成要素の値の変化を定義可能とする。
In order to eliminate the problems of the conventional apparatus as described above, the inventors have repeatedly studied fundamentally about the requirement for preventing the occurrence of errors, and have devised the following countermeasures.
(1) In order to eliminate the detection of an erroneous constraint violation due to an impossible event occurrence, the event occurrence condition can be specified.
(2) In order to eliminate detection of an erroneous constraint violation due to an illegal value of a component in the system, it is possible to define a change in the value of the component in the system due to the occurrence of an event.
イベント表11は、この外的作用による不具合を排除するために設けられたものである。 これによって、システムとシステムに作用する外部とを一つの閉じた系として検査することにより、開いた系であるシステムのみを検査対象とした場合に生じた誤った制約違反の検出をなくすことができる。 The event table 11 is provided in order to eliminate defects caused by this external action. In this way, by detecting the system and the outside acting on the system as one closed system, it is possible to eliminate detection of erroneous constraint violations that occur when only the system that is an open system is the target of inspection. .
図31に示すイベント表11では、「割込」がENABLEのときのみ「タイマ割込」イベントが発生可能となるように「発生条件」が定義されている。これによって、状態遷移表2と組み合わせて解釈すると、「スタートボタン押下」イベントが発生し、「タイマ割込許可」アクションを実行した後にのみ「タイマ割込」イベントが発生可能と定義されている。
なお、「タイマ割込」イベント発生に伴うシステム内の構成要素の値の変化は、「作用内容」で定義することができる。
In the event table 11 shown in FIG. 31, “occurrence condition” is defined so that a “timer interrupt” event can be generated only when “interrupt” is ENABLE. Thus, when interpreted in combination with the state transition table 2, it is defined that a “start button press” event occurs and a “timer interrupt” event can be generated only after executing a “timer interrupt permission” action.
The change in the value of the component in the system due to the occurrence of the “timer interrupt” event can be defined in “action content”.
さらにこのイベント表11を使用することによって、「不可」と「無視」の検査機能を充実することが可能となる。
上述のようにこれまでは、全てのイベントが常に発生し得るものとして検査を進めたため、到達することのない「不可」も常に到達可能となっていた。従って、到達することのある「無視」と区別した検査ができなかった。
ところで、イベント表11において、イベントの発生条件を指定可能としたことによって、「不可」と「無視」とを区別し、不可への到達性の検査が可能となる。
Furthermore, by using this event table 11, it is possible to enhance the inspection functions of “impossible” and “ignore”.
As described above, until now, since all the events can always occur, the inspection has proceeded, so “impossible” that cannot be reached has always been reachable. Therefore, it was not possible to perform an inspection distinct from “ignorance” that could be reached.
By the way, in the event table 11, by making it possible to specify an event occurrence condition, it is possible to distinguish between “impossible” and “ignore” and to check the reachability to impossibility.
図32は、イベント表を利用した不可への非到達性検査例を示す図である。
この自動販売機では、硬貨を投入できるのは、自動販売機に保持中の硬貨が無いか1枚だけ保持している場合である。従って、自動販売機に保持中の硬貨が2枚以上ある場合に「百円硬貨投入」イベントが発生することはない。しかしながら、これまでの検査ではこの「不可」も到達可能となっていたため、設計上に問題があるかどうかをその都度確認する必要があった。
これに対し、図32に示すようにイベント表11の「百円硬貨投入」イベントの発生条件に、「保持中の硬貨が2枚未満」と定義することによって、不可への非到達性が実現されているかどうかを検査することが可能となる。
FIG. 32 is a diagram illustrating an example of a non-reachability test using the event table.
In this vending machine, coins can be inserted when there is no coin being held in the vending machine or only one is being held. Therefore, when there are two or more coins held in the vending machine, the “100 yen coin insertion” event does not occur. However, since this “impossible” was also reachable in the inspections so far, it was necessary to check each time whether there was a problem in the design.
On the other hand, as shown in FIG. 32, non-reachability to non-reachability is realized by defining “less than two coins are held” in the occurrence condition of “100-yen coin insertion” event in the event table 11 It is possible to check whether or not
[実施の形態の効果]
本実施の形態のモデル検査支援装置では、以下に示す特徴的な機能を備えている。
[Effect of the embodiment]
The model checking support device according to the present embodiment has the following characteristic functions.
モデル検査プログラムの生成に必要なデータは、設計書の形式で作成されている。例えば、状態遷移表のフォーマットは、組込み系の開発において一般的に使用されている設計書の書き方に対応している。
このように、ドキュメントからモデル検査プログラムを自動生成できるためモデル記述言語の習得が不要となっている。
Data necessary for generating the model checking program is created in the form of a design document. For example, the format of the state transition table corresponds to how to write a design document generally used in embedded system development.
Thus, since a model checking program can be automatically generated from a document, learning of a model description language is unnecessary.
また、設計書からモデル検査プログラムを自動生成することにより、設計書の作成後に、人手によるモデル検査プログラムの作成を経ることなく、直ちにモデル検査を実施することができる。 Further, by automatically generating the model checking program from the design document, it is possible to immediately perform the model checking after the design document is created without manually creating the model checking program.
また、独自のアクション表と制約条件表とを導入し、モデル検査プログラムの生成に必要なデータとして制約条件の記載を可能としている。この結果、検証すべき制約条件をモデル検査プログラムの中に自動で生成することができる。 In addition, a unique action table and a constraint condition table are introduced, and the constraint conditions can be described as data necessary for generating the model checking program. As a result, the constraint condition to be verified can be automatically generated in the model checking program.
制約条件表では、システムに求められる性質が、システムの状態と構成要素の値の組合せによって明確に示される。そのため、制約条件の記載漏れによって、仕様があいまいになることを防ぐことができる。 In the constraint table, the properties required for the system are clearly indicated by a combination of the system state and the component values. Therefore, it is possible to prevent the specification from becoming ambiguous due to omission of the description of the constraint condition.
アクション表では、アクションの内容だけではなく、事前条件と事後条件について記述することにより、動作仕様だけではなく制約条件についても簡潔に漏れなく記述し、モデル検査によって確認することができる。 In the action table, not only the content of the action but also the precondition and the postcondition are described, so that not only the operation specifications but also the constraint conditions can be described concisely and confirmed by model checking.
イベント表では、イベントごとの発生条件を指定可能とすることによってあり得ないイベント発生による誤った制約違反の検出を排除することができ、更に「不可セル」への非到達性の検査を可能とすることができる。また、イベント発生に伴うシステム内の構成要素の値の変化を定義可能とすることによって、システム内の構成要素の値の不正による誤った制約違反の検出を排除することができる。 In the event table, by making it possible to specify the occurrence condition for each event, it is possible to eliminate the detection of false constraint violations due to the occurrence of an event that is not possible, and further it is possible to check for non-reachability to `` unavailable cells '' can do. Further, by making it possible to define a change in the value of a component in the system due to the occurrence of an event, it is possible to eliminate detection of an erroneous constraint violation due to an incorrect value of a component in the system.
本実施の形態に係るモデル支援装置はこのような特徴を有しているが、もちろんモデル記述言語を習得している人も有効に利用することが可能である。例えば、モデル検査プログラムの生成に必要なデータは、モデル記述言語(例えば、Promela言語)で記載しても良い。図33には、アクション表の、「事前条件」、「処理内容」、「事後条件」をモデル記述言語で作成した例を示している。モデル記述言語を使うことで、自然言語よりも単純で厳密な記述をすることができる。 Although the model support apparatus according to the present embodiment has such a feature, it is naturally possible for a person who has mastered the model description language to use it effectively. For example, data necessary for generating the model checking program may be described in a model description language (for example, Promela language). FIG. 33 shows an example in which “pre-condition”, “processing content”, and “post-condition” in the action table are created in the model description language. By using the model description language, it is possible to describe simpler and more rigorous than natural language.
なお、上述の実施の形態で説明した各機能は、ハードウエアを用いて構成しても良く、また、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現しても良い。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。 Each function described in the above embodiment may be configured using hardware, or may be realized by reading a program describing each function into a computer using software. Each function may be configured by appropriately selecting either software or hardware.
更に、各機能は図示しない記録媒体に格納したプログラムをコンピュータに読み込ませることで実現させることもできる。ここで本実施の形態における記録媒体は、プログラムを記録でき、かつコンピュータが読み取り可能な記録媒体であれば、その記録形式は何れの形態であってもよい。 Furthermore, each function can be realized by causing a computer to read a program stored in a recording medium (not shown). Here, as long as the recording medium in the present embodiment can record a program and can be read by a computer, the recording format may be any form.
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Further, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering different embodiment.
1…モデル検査支援装置、1a…仕様入力部、1b…検査項目生成部、1c…モデル記述生成部、1d…状態遷移記憶部、1e…アクション記憶部、1f…制約条件記憶部、1g…条件判定記憶部、1h…モデル記述言語辞書、1k…イベント記憶部、2…状態遷移表、2a…状態遷移表名欄、2b…状態名欄、2c…入退場アクション欄、2d…イベント名欄、2e…アクション欄、3…アクション表、3a…アクション名欄、3b…事前条件欄、3c…処理内容欄、3d…事後条件欄、4…制約条件表、4a…構成要素名欄、4b…状態名欄、4c…制約条件内容欄、5…条件判定表、5a…条件判定名欄、5b…条件内容欄、6…モデル検査プログラム、6a…アクション部、6b…制約条件検査部、6c…状態遷移部、6d…イベント発生部、6e…条件判定部、7…モデル検査器、8…検査結果、11…イベント表、11a…イベント名欄、11b…発生条件欄、11c…作用内容欄。
DESCRIPTION OF
Claims (6)
システムの動作に関する仕様とシステムに求める性質である前記制約条件とを表形式の情報として受け取る仕様入力部と、
この表からシステムの動作に関する仕様と制約条件とを抽出して所定のモデル記述言語によってシステムの動作に関する仕様と制約条件とを記述した前記モデル検査プログラムを生成するモデル生成部とを備え、
前記表は、
システムで発生するイベントとシステムの各状態に対応して、システムが実行するアクション名と次に遷移する状態とを記述する状態遷移表と、
前記状態遷移表で定義された状態毎に、当該システムを構成する要素の値を記述する制約条件表と、
前記アクション名に対応して、当該アクションの実行によるシステムを構成する要素の値の変化と、システムを構成する要素の値で表される当該アクションの実行前後で成立していなければならない条件とを規定するアクション表と、
前記状態遷移表において記述可能になされた、アクションあるいは遷移の実行が可能か否かを判定するための判定条件を、システムを構成する要素の値として記述した条件判定表と、
システム外の外的作用によって発生する前記イベントについて、当該イベントの発生によるシステムを構成する要素の値の変化と、システムを構成する要素の値で定義される前記イベントの発生条件とを規定するイベント表と
を有し、
前記モデル検査プログラムは、
システムの動作に関する仕様を、前記状態遷移表と、前記条件判定表と、前記イベント表と、前記アクション表で規定されたアクションの実行によるシステムを構成する要素の値の変化とに基づいて記述し、
前記制約条件を、前記制約条件表と、前記アクション表で規定されたアクションの実行前後で成立していなければならない条件とに基づいて記述する
ことを特徴とするモデル検査支援装置。 Generates all possible operation sequences based on the system operation specifications from the model checking program that describes the system operation specifications and constraints expressed as state transition systems, and in each generated operation sequence A model checking support device that generates a model checking program to be checked by a model checker that verifies whether a constraint condition is satisfied,
A specification input unit that receives specifications relating to the operation of the system and the constraints that are required for the system as tabular information;
A model generation unit that extracts specifications and constraint conditions related to system operation from this table and generates the model checking program describing specifications and constraint conditions related to system operation using a predetermined model description language, and
The table
A state transition table that describes the name of an action executed by the system and the next transition state corresponding to the event that occurs in the system and each state of the system,
For each state defined in the state transition table, a constraint table describing values of elements constituting the system,
Corresponding to the action name, a change in the value of an element constituting the system by execution of the action and a condition that must be satisfied before and after execution of the action represented by the value of the element constituting the system. A prescription action table;
A condition determination table described as a value of an element constituting the system, a determination condition for determining whether or not an action or a transition can be executed, which can be described in the state transition table;
An event that prescribes a change in the value of an element that constitutes the system due to the occurrence of the event and an occurrence condition of the event that is defined by the value of the element that constitutes the system for the event that occurs due to an external action outside the system With a table,
The model checking program is
A specification relating to the operation of the system is described based on the state transition table, the condition determination table, the event table, and a change in the value of an element constituting the system due to the execution of the action specified in the action table. ,
The model checking support device, wherein the constraint condition is described based on the constraint condition table and a condition that must be satisfied before and after execution of an action defined in the action table.
前記イベントとシステムの状態との組合せが発生しない不可状態と、
前記イベントとシステムの状態との組合せが発生してもアクションを実行しない無視状態とを更に規定することを特徴とする請求項1に記載のモデル検査支援装置。 The state transition table is:
A disabled state in which the combination of the event and the system state does not occur; and
The model checking support apparatus according to claim 1, further defining an ignorance state in which no action is executed even if a combination of the event and the system state occurs.
システムの動作に関する仕様とシステムに求める性質である前記制約条件とを表形式の情報として受け取る仕様入力ステップと、
この表からシステムの動作に関する仕様と制約条件とを抽出して所定のモデル記述言語によってシステムの動作に関する仕様と制約条件とを記述した前記モデル検査プログラムを生成するモデル生成ステップとを備え、
前記表は、
システムで発生するイベントとシステムの各状態に対応して、システムが実行するアクション名と次に遷移する状態とを記述する状態遷移表と、
前記状態遷移表で定義された状態毎に、当該システムを構成する要素の値を記述する制約条件表と、
前記アクション名に対応して、当該アクションの実行によるシステムを構成する要素の値の変化と、システムを構成する要素の値で表される当該アクションの実行前後で成立していなければならない条件とを規定するアクション表と、
前記状態遷移表において記述可能になされた、アクションあるいは遷移の実行が可能か否かを判定するための判定条件を、システムを構成する要素の値として記述した条件判定表と、
システム外の外的作用によって発生する前記イベントについて、当該イベントの発生によるシステムを構成する要素の値の変化と、システムを構成する要素の値で定義される前記イベントの発生条件とを規定するイベント表と
を有し、
前記モデル検査プログラムは、
システムの動作に関する仕様を、前記状態遷移表と、前記条件判定表と、前記イベント表と、前記アクション表で規定されたアクションの実行によるシステムを構成する要素の値の変化とに基づいて記述し、
前記制約条件を、前記制約条件表と、前記アクション表で規定されたアクションの実行前後で成立していなければならない条件とに基づいて記述する
ことを特徴とするプログラム。 Generates all possible operation sequences based on the system operation specifications from the model checking program that describes the system operation specifications and constraints expressed as state transition systems, and in each generated operation sequence A program for causing a computer mounted on a model checking support device to generate a model checking program to be checked by a model checker that verifies whether or not the constraint condition is satisfied,
A specification input step for receiving, as tabular information, specifications relating to system operation and the constraints required for the system;
A model generation step of extracting specifications and constraint conditions related to system operation from this table and generating the model checking program describing specifications and constraint conditions related to system operation using a predetermined model description language; and
The table
A state transition table that describes the name of an action executed by the system and the next transition state corresponding to the event that occurs in the system and each state of the system,
For each state defined in the state transition table, a constraint table describing values of elements constituting the system,
Corresponding to the action name, a change in the value of an element constituting the system by execution of the action and a condition that must be satisfied before and after execution of the action represented by the value of the element constituting the system. A prescription action table;
A condition determination table described as a value of an element constituting the system, a determination condition for determining whether or not an action or a transition can be executed, which can be described in the state transition table;
An event that prescribes a change in the value of an element that constitutes the system due to the occurrence of the event and an occurrence condition of the event that is defined by the value of the element that constitutes the system for the event that occurs due to an external action outside the system With a table,
The model checking program is
A specification relating to the operation of the system is described based on the state transition table, the condition determination table, the event table, and a change in the value of an element constituting the system due to the execution of the action specified in the action table. ,
The program characterized in that the constraint condition is described based on the constraint condition table and a condition that must be satisfied before and after the execution of the action specified in the action table.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008180608A JP4959640B2 (en) | 2008-07-10 | 2008-07-10 | Model checking support device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008180608A JP4959640B2 (en) | 2008-07-10 | 2008-07-10 | Model checking support device and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010020555A JP2010020555A (en) | 2010-01-28 |
JP4959640B2 true JP4959640B2 (en) | 2012-06-27 |
Family
ID=41705380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008180608A Active JP4959640B2 (en) | 2008-07-10 | 2008-07-10 | Model checking support device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4959640B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3144816A1 (en) * | 2015-09-15 | 2017-03-22 | Tata Consultancy Services Limited | Static analysis based efficient elimination of false positives |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2671793B2 (en) * | 1993-12-15 | 1997-10-29 | 日本電気株式会社 | Program generator usage specification simulation method and apparatus |
JP3488161B2 (en) * | 2000-01-31 | 2004-01-19 | Necエレクトロニクス株式会社 | Program development device, program development method, and recording medium recording program development program |
JP2003076543A (en) * | 2001-08-31 | 2003-03-14 | Cats Kk | Device, method for generating program and program for making computer execute the same program |
-
2008
- 2008-07-10 JP JP2008180608A patent/JP4959640B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010020555A (en) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193250B (en) | Evaluation system and evaluation method | |
EP3109763A1 (en) | Method and system for generating functional test cases for software systems | |
CN107193251B (en) | Evaluation system and evaluation method | |
JP2008009721A (en) | Evaluation system and evaluation method thereof | |
CN110032264A (en) | A kind of progress control method of server, equipment and storage medium | |
CN104583969A (en) | Computer provided with a self-monitoring function, and monitoring program | |
CN111858584A (en) | Metadata management method, system and storage medium | |
CN105528264A (en) | Anti-misoperation data recovery method and system | |
CN102890647A (en) | Method and device for storing and updating data | |
JP2001035192A (en) | Integrated circuit incorporating memory and test method for the same | |
JP4959640B2 (en) | Model checking support device and program | |
CN115509904A (en) | Assertion generation method and device of interface test case | |
JP4864867B2 (en) | Model checking support device and program | |
CN107038084B (en) | Program detection method and device | |
Bogdanov | Automated testing of Harel's statecharts | |
Colombo et al. | The systematic integration of human factors into safety analyses: An integrated engineering approach | |
US10962593B2 (en) | System on chip and operating method thereof | |
CN101295274B (en) | Method and equipment for reducing data error of shared memory | |
JP4652317B2 (en) | Logic circuit functional verification apparatus, functional coverage item verification method, and program | |
JP2015043153A (en) | Cash processor, and control method of the same | |
Srisura et al. | False test case selection: Improvement of regression testing approach | |
RU2447488C1 (en) | Method and system for construction of technical object defective functioning model and machine-readable media | |
Castro et al. | dCTL: a branching time temporal logic for fault-tolerant system verification | |
JP2007299247A (en) | System control device, server device provided with system control circuit | |
CN112468296A (en) | Key programming method, system, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120131 |
|
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: 20120221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120321 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150330 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4959640 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |