JP2007011605A - Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program - Google Patents

Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program Download PDF

Info

Publication number
JP2007011605A
JP2007011605A JP2005190293A JP2005190293A JP2007011605A JP 2007011605 A JP2007011605 A JP 2007011605A JP 2005190293 A JP2005190293 A JP 2005190293A JP 2005190293 A JP2005190293 A JP 2005190293A JP 2007011605 A JP2007011605 A JP 2007011605A
Authority
JP
Japan
Prior art keywords
model
program
model checking
logical structure
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005190293A
Other languages
Japanese (ja)
Inventor
Koichi Shinozaki
孝一 篠崎
Hiroshi Watanabe
宏 渡邊
Koji Hayamizu
公二 早水
Daichi Mizuguchi
大知 水口
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.)
Kansai Electric Power Co Inc
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Kansai Electric Power Co Inc
National Institute of Advanced Industrial Science and Technology AIST
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 Kansai Electric Power Co Inc, National Institute of Advanced Industrial Science and Technology AIST filed Critical Kansai Electric Power Co Inc
Priority to JP2005190293A priority Critical patent/JP2007011605A/en
Publication of JP2007011605A publication Critical patent/JP2007011605A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a model inspection support device capable of generating a model inspection program from operation specifications without requiring learning of a model description language, more preferably, also capable of automatically generating software corresponding to the verified operation specifications. <P>SOLUTION: The model inspection support device is provided with a specification input part 3 for inputting the operation specifications of the software as a logic description expressed with a state transition relation of a variable; a model description language dictionary 6 storing a prototype of the model inspection program; and a translation part 4 that extracts a logic structure of the operation specifications from the logic description inputted to the specification input part 3 and prepares the model inspection program by using the extracted logic structure and the prototype of the model description language dictionary 6. The device outputs the model inspection program prepared by the translation part 4 to a model inspection device 10. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、ソフトウェア動作仕様が、自己矛盾、不安定性、想定外動作等の不具合を含まず、正しく記述されていることを数理的に検証する装置に関し、特に、動作仕様を有限状態遷移系に変換してモデル検査法を適用する検証装置に関する。   The present invention relates to an apparatus for mathematically verifying that a software operation specification is correctly described without including defects such as self-contradiction, instability, and unexpected operation, and in particular, the operation specification is a finite state transition system. The present invention relates to a verification apparatus that converts and applies a model checking method.

従来、ソフトウェア開発においては、動作仕様を経験者が査読することにより、不具合の有無を確認している。このため、不具合が完全に検出できないままにソフトウェアの設計・開発が行われることもあり、完成後の検査により不具合を発見して手直しする必要があった。従って、ソフトウェアの信頼度が十分に確保できず、また、手直しが必要なために開発効率が低下する、といった問題があった。   Conventionally, in software development, the presence or absence of a defect is confirmed by an experienced person reviewing operation specifications. For this reason, software design / development may be performed without completely detecting the defect, and it is necessary to find and fix the defect by inspection after completion. Therefore, there is a problem that the reliability of the software cannot be sufficiently secured and the development efficiency is lowered because the software needs to be reworked.

そこで、ソフトウェアの動作仕様を数理的に検証するためのモデル検査法が知られている。モデル検査法は、ソフトウェア動作仕様を状態遷移系として記述したモデル検査プログラムが、検査項目として入力された時相論理式を満足しているかどうかを数理的に検証するものであり(例えば特許文献1参照)、ソフトウェアの動作仕様に潜在する自己矛盾、不安定性、想定外動作等の不具合検出にも適用可能である(非特許文献1参照)。   Therefore, a model checking method for mathematically verifying the operation specifications of software is known. The model checking method mathematically verifies whether a model checking program in which a software operation specification is described as a state transition system satisfies a temporal logic expression input as a check item (for example, Patent Document 1). It is also possible to detect defects such as self-contradiction, instability, and unexpected operation that are latent in the operation specifications of software (see Non-Patent Document 1).

従来、ソフトウェア動作仕様へモデル検査器を適用する際は、動作仕様から人手により図表を作成して論理構造を抽出し、モデル記述言語によりモデル検査プログラムを作成している(例えば非特許文献2参照)。
特開平10−301963号 早水、篠崎、高橋、渡邊、モデル検査器を用いた自動検針システムの仕様検証、産業技術総合研究所算譜科学グループ研究速報、AIST−PS−2003−005 寺田、土屋、菊野、記号モデル検査を用いたステートチャートの検証、電子情報通信学会技術報告、SS98−41(1999−01)
Conventionally, when a model checker is applied to a software operation specification, a diagram is manually created from the operation specification to extract a logical structure, and a model check program is generated using a model description language (see, for example, Non-Patent Document 2). ).
Japanese Patent Laid-Open No. 10-301963 Hayami, Shinozaki, Takahashi, Watanabe, Specification verification of automatic meter reading system using model checker, AIST-PS-2003-005, AIST-PS-2003-005 Terada, Tsuchiya, Kikuno, Statechart verification using symbolic model checking, IEICE technical report, SS98-41 (1999-01)

しかしながら、上記従来のモデル検査は、ソフトウェア開発言語と異質のモデル記述言語の習得が必要であることから、研究目的では実施されているが、実際のソフトウェア開発には採用されていない。   However, the conventional model checking described above is performed for research purposes because it requires acquisition of a model description language that is different from the software development language, but has not been adopted for actual software development.

さらに、モデル検査の結果、検査項目を満足する動作仕様が得られても、その動作仕様からソフトウェアを作成する際には、開発者が動作仕様から論理構造を抽出し、ソフトウェア開発言語によりプログラミングを行うことが必要であった。   Furthermore, even if an operation specification that satisfies the inspection items is obtained as a result of model checking, when creating software from the operation specification, the developer extracts the logical structure from the operation specification and performs programming using the software development language. It was necessary to do.

本発明は、上記の問題に鑑み、モデル記述言語の習得を必要とせずに、動作仕様からモデル検査プログラムを生成でき、より好ましくは、検証済みの動作仕様に応じたソフトウェアを自動的に生成することも可能なモデル検査支援装置を提供することを目的とする。   In view of the above problems, the present invention can generate a model checking program from an operation specification without requiring learning of a model description language, and more preferably automatically generates software according to a verified operation specification. An object of the present invention is to provide a model checking support device that can also be used.

上記の目的を達成するために、本発明にかかるソフトウェア動作仕様のモデル検査支援装置は、ソフトウェアの動作仕様を、変数の状態遷移関係で表した論理記述として入力する仕様入力部と、モデル検査プログラムの雛型を格納したモデル記述言語辞書記憶部と、前記仕様入力部へ入力された論理記述から前記動作仕様の論理構造を抽出し、抽出された論理構造と前記モデル記述言語辞書記憶部の前記雛型とを用いて、モデル検査プログラムを作成する翻訳部とを備えたことを特徴とする。   In order to achieve the above object, a model checking support apparatus for software operation specifications according to the present invention includes a specification input unit for inputting software operation specifications as a logical description represented by variable state transition relationships, and a model checking program. A model description language dictionary storage unit storing a model of the model, a logical structure of the operation specification is extracted from a logical description input to the specification input unit, and the extracted logical structure and the model description language dictionary storage unit A translation unit that creates a model checking program using a template is provided.

また、本発明にかかるモデル検査システムは、本発明にかかるモデル検査支援装置と、前記モデル検査支援装置により生成されたモデル検査プログラムのモデル検査を行うモデル検査器とを備えたことを特徴とする。   The model checking system according to the present invention includes the model checking support device according to the present invention and a model checker that performs model checking of the model checking program generated by the model checking support device. .

また、本発明にかかるモデル検査支援プログラムは、コンピュータにソフトウェア動作仕様のモデル検査支援処理を実行させるモデル検査支援プログラムであって、ソフトウェアの動作仕様を、変数の状態遷移関係で表した論理記述として入力する仕様入力処理と、前記仕様入力処理で入力された論理記述から前記動作仕様の論理構造を抽出し、抽出された論理構造と、モデル記述言語辞書記憶部から取得したモデル検査プログラムの雛型とを用いて、モデル検査プログラムを作成する翻訳処理とを、コンピュータに実行させることを特徴とする。   A model checking support program according to the present invention is a model checking support program that causes a computer to execute a model checking support process for software operation specifications, and that the software operation specifications are expressed as a logical description represented by variable state transition relationships. The specification input process to be input, the logical structure of the operation specification is extracted from the logical description input in the specification input process, and the extracted logical structure and the model checking program template acquired from the model description language dictionary storage unit And a computer is caused to execute a translation process for creating a model checking program.

本発明によれば、モデル記述言語の習得を必要とせずに、動作仕様からモデル検査プログラムを自動的に生成できる。その結果として、モデル検査をソフトウェア開発実務へ適用することが可能となる。   According to the present invention, it is possible to automatically generate a model checking program from an operation specification without requiring learning of a model description language. As a result, model checking can be applied to software development practices.

本発明にかかるソフトウェア動作仕様のモデル検査支援装置は、ソフトウェアの動作仕様を、変数の状態遷移関係で表した論理記述として入力する仕様入力部と、モデル検査プログラムの雛型を格納したモデル記述言語辞書記憶部と、前記仕様入力部へ入力された論理記述から前記動作仕様の論理構造を抽出し、抽出された論理構造と前記モデル記述言語辞書記憶部の前記雛型とを用いて、モデル検査プログラムを作成する翻訳部とを備えた構成である。   A model operation support apparatus for software operation specifications according to the present invention includes a specification input unit for inputting software operation specifications as a logical description represented by a state transition relationship of variables, and a model description language storing a model of a model inspection program Extracting the logical structure of the operation specification from the dictionary storage unit and the logical description input to the specification input unit, and using the extracted logical structure and the model of the model description language dictionary storage unit, model checking And a translation unit for creating a program.

上記の構成では、翻訳部が、変数の状態遷移関係で表された論理記述から動作仕様の論理構造を抽出し、抽出した論理構造に、モデル記述言語辞書記憶部の雛型を適用することにより、モデル検査プログラムを作成することができる。これにより、従来のように動作仕様から手作業により論理構造を抽出する必要がなくなり、開発効率を大幅に向上させることができる。   In the above configuration, the translation unit extracts the logical structure of the operation specification from the logical description expressed by the variable state transition relationship, and applies the model description language dictionary storage unit template to the extracted logical structure. A model checking program can be created. As a result, there is no need to manually extract a logical structure from an operation specification as in the prior art, and development efficiency can be greatly improved.

上記のモデル検査支援装置において、前記仕様入力部が、前記変数の状態遷移関係を図形表現として入力し、前記翻訳部は、前記仕様入力部に入力された図形表現から動作仕様の論理構造を抽出することが好ましい。図形表現としては、例えばフローチャート、PAD、あるいは状態遷移図などを用いることができる。   In the model checking support device, the specification input unit inputs a state transition relationship of the variables as a graphic representation, and the translation unit extracts a logical structure of an operation specification from the graphic representation input to the specification input unit. It is preferable to do. As the graphic representation, for example, a flowchart, a PAD, or a state transition diagram can be used.

上記のモデル検査支援装置において、前記翻訳部により抽出された動作仕様の論理構造を記憶する論理構造記憶部と、開発言語プログラムの雛型を格納した開発言語辞書記憶部と、前記論理構造記憶部に記憶された論理構造と、前記開発言語辞書記憶部の前記雛型とを用いて、開発言語によるプログラムを作成するプログラム作成部とをさらに備えた構成とすることが好ましい。これにより、プログラムの開発効率をさらに向上させることが可能となる。   In the model checking support apparatus, a logical structure storage unit that stores a logical structure of an operation specification extracted by the translation unit, a development language dictionary storage unit that stores a template of a development language program, and the logical structure storage unit It is preferable to further include a program creation unit that creates a program in a development language using the logical structure stored in the development language dictionary and the template in the development language dictionary storage unit. As a result, the program development efficiency can be further improved.

また、本発明にかかるモデル検査システムは、上記したいずれかの構成にかかるモデル検査支援装置と、前記モデル検査支援装置により生成されたモデル検査プログラムのモデル検査を行うモデル検査器とを備えた構成である。   A model checking system according to the present invention includes a model checking support device according to any one of the above-described configurations, and a model checker that performs model checking of a model checking program generated by the model checking support device. It is.

さらに、本発明にかかるモデル検査プログラムは、コンピュータにソフトウェア動作仕様のモデル検査支援処理を実行させるモデル検査支援プログラムであって、ソフトウェアの動作仕様を、変数の状態遷移関係で表した論理記述として入力する仕様入力処理と、前記仕様入力処理で入力された論理記述から前記動作仕様の論理構造を抽出し、抽出された論理構造と、モデル記述言語辞書記憶部から取得したモデル検査プログラムの雛型とを用いて、モデル検査プログラムを作成する翻訳処理とを、コンピュータに実行させるプログラムである。   Furthermore, the model checking program according to the present invention is a model checking support program that causes a computer to execute model checking support processing of software operation specifications, and inputs the operation specifications of the software as a logical description expressed by variable state transition relationships. A specification input process, a logical structure of the operation specification is extracted from the logical description input in the specification input process, and the extracted logical structure and a model of the model checking program acquired from the model description language dictionary storage unit Is a program that causes a computer to execute translation processing for creating a model checking program.

上記のモデル検査プログラムは、前記仕様入力処理において、前記変数の状態遷移関係を図形表現として入力し、前記翻訳処理において、前記仕様入力処理で入力された図形表現から動作仕様の論理構造を抽出することが好ましい。   In the specification input process, the model checking program inputs the state transition relationship of the variables as a graphic expression, and in the translation process, extracts a logical structure of the operation specification from the graphic expression input in the specification input process. It is preferable.

また、上記のモデル検査プログラムは、前記翻訳処理により抽出された動作仕様の論理構造を記憶した論理構造記憶部と、開発言語プログラムの雛型を格納した開発言語辞書記憶部とを参照し、前記論理構造記憶部から取得した論理構造と、前記開発言語辞書記憶部から取得した前記雛型とを用いて、開発言語によるプログラムを作成するプログラム作成処理をコンピュータに実行させることが好ましい。   The model checking program refers to a logical structure storage unit that stores a logical structure of an operation specification extracted by the translation process, and a development language dictionary storage unit that stores a model of a development language program, It is preferable to cause a computer to execute a program creation process for creating a program in a development language using the logical structure acquired from the logical structure storage unit and the template acquired from the development language dictionary storage unit.

以下、本発明にかかるモデル検査システムの具体的な実施形態について、図面を参照しながら説明する。なお、以下の実施形態では、ソフトウェア動作仕様をフローチャートにより図形入力し、モデル検査プログラムを作成する例を説明するが、ソフトウェア動作仕様の入力方法はこの例のみに限定されず、例えばPAD(Problem Analysis Diagram)や状態遷移図等を用いることも可能である。
(第1の実施形態)
最初に、図1を参照し、本発明の第1の実施形態にかかるモデル検査システムの概略構成について説明する。図1は、本実施形態のモデル検査システムのブロック構成図である。
Hereinafter, specific embodiments of a model checking system according to the present invention will be described with reference to the drawings. In the following embodiment, an example in which a software operation specification is graphically input by a flowchart and a model checking program is created will be described. However, a method for inputting a software operation specification is not limited to this example. For example, PAD (Problem Analysis) is used. Diagram) and state transition diagrams can also be used.
(First embodiment)
First, the schematic configuration of the model checking system according to the first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram of the model checking system according to the present embodiment.

図1に示すように、本実施形態のモデル検査システムは、ソフトウェアの動作仕様1からモデル検査プログラムを生成するモデル検査支援装置2と、モデル検査支援装置2で生成されたモデル検査プログラムを、検査項目9に従って検査し、検査結果11を出力するモデル検査器10とを備えている。   As shown in FIG. 1, the model checking system according to the present embodiment checks a model checking support device 2 that generates a model checking program from an operation specification 1 of software, and a model checking program generated by the model checking support device 2. A model checker 10 for checking according to item 9 and outputting a check result 11 is provided.

モデル検査支援装置2は、ソフトウェアのプログラム仕様書である動作仕様1からモデル検査に必要な情報を入力する仕様入力部3と、動作仕様1から論理構造を読み取り、モデル検査専用言語によりモデル検査プログラムを作成する翻訳部4とを備えている。モデル検査支援装置2は、さらに、論理構造記憶部5とモデル記述言語辞書6とを備え、これらは翻訳部4に接続されている。論理構造記憶部5は、動作仕様1から抽出した論理構造を記憶する。モデル記述言語辞書6は、状態遷移と状態遷移条件との組み合わせについて、定型的な雛型を記憶している。   The model checking support device 2 reads a logical structure from the operation specification 1 and a specification input unit 3 for inputting information necessary for model checking from the operation specification 1 which is a program specification of the software. And a translation unit 4 for creating The model checking support device 2 further includes a logical structure storage unit 5 and a model description language dictionary 6, which are connected to the translation unit 4. The logical structure storage unit 5 stores the logical structure extracted from the operation specification 1. The model description language dictionary 6 stores typical templates for combinations of state transitions and state transition conditions.

モデル検査支援装置2およびモデル検査器10は、例えばパーソナルコンピュータ等のコンピュータを用いて実現することが可能である。その場合、仕様入力部3および翻訳部4の機能は、当該コンピュータに所定のプログラムを実行させることによって実現される。論理構造記憶部5およびモデル記述言語辞書6は、コンピュータのハードディスクやその他の記憶媒体によって実現される。なお、モデル検査支援装置2およびモデル検査器10は、1台のコンピュータによって実施することも可能であるが、複数台のコンピュータで実施することも可能である。   The model checking support device 2 and the model checking device 10 can be realized using a computer such as a personal computer. In this case, the functions of the specification input unit 3 and the translation unit 4 are realized by causing the computer to execute a predetermined program. The logical structure storage unit 5 and the model description language dictionary 6 are realized by a computer hard disk or other storage medium. The model checking support device 2 and the model checking device 10 can be implemented by a single computer, but can also be implemented by a plurality of computers.

次に、図2を参照しながら、本実施形態のモデル検査システムの動作について説明する。   Next, the operation of the model checking system of this embodiment will be described with reference to FIG.

本実施形態のモデル検査システムにおいてモデル検査を行う場合、まず、作業者が、モデル検査に必要な項目の名前と各項目が取り得る状態とを動作仕様1から抽出し、抽出結果を仕様入力部3により入力する(ステップS10)。仕様入力部3は、キーボード等の入力デバイスやディスプレイ等の出力デバイス(いずれも図示せず)を含んでおり、作業者はこれらの入出力デバイスを用いて、項目名と状態をモデル検査システムへ入力する。   When performing model checking in the model checking system of the present embodiment, first, an operator extracts the names of items necessary for model checking and the states that each item can take from the operation specification 1, and the extraction result is a specification input unit. 3 (step S10). The specification input unit 3 includes an input device such as a keyboard and an output device such as a display (both not shown), and the operator uses these input / output devices to input item names and states to the model checking system. input.

次に、作業者は、ステップS10で入力された項目名に対して割り当てる変数名を、仕様入力部3より入力する(ステップS11)。この変数名は、モデル検査プログラムで用いられる変数名となる。この時、作業者が、予め定められたルールに従って変数名の割り当てを行えば、モデル検査プログラムのメンテナンス性が向上する。また、作業者は、ステップS10で項目毎に入力された状態に対して割り当てる変数値を、仕様入力部3より入力する(ステップS12)。この変数値も、モデル検査プログラムで用いられる。   Next, the operator inputs a variable name to be assigned to the item name input in step S10 from the specification input unit 3 (step S11). This variable name is a variable name used in the model checking program. At this time, if the operator assigns variable names according to a predetermined rule, the maintainability of the model checking program is improved. Further, the worker inputs a variable value to be assigned to the state input for each item in step S10 from the specification input unit 3 (step S12). This variable value is also used in the model checking program.

なお、上記のステップS10〜S12で入力された項目および状態と、それらの各々に割り当てられた変数名および変数値とを、一覧表としてディスプレイ等に画面表示すれば、あるいは、例えば表計算ソフト等のデータとして出力すれば、次のステップS13における作業者の図表作成が容易になるという利点がある。   The items and states input in the above steps S10 to S12 and the variable names and variable values assigned to them can be displayed as a list on a display or the like, or, for example, spreadsheet software or the like If the data is output as the above data, there is an advantage that it becomes easy for the operator to create a chart in the next step S13.

次に、作業者は、ステップS10〜S12で作成された一覧表を参照し、動作仕様1の内容を表すフローチャートを作成して、仕様入力部3より入力する(ステップS13)。フローチャートは、作業者が、ディスプレイの画面上で図表として作成し、入力する。この時、仕様入力部3は、予め用意された、図形記号の描画・配置機能と、図形記号間の結線機能と、図形記号への数式入力機能等を用いて、フローチャートのブロックの配置、ブロック間の結線、およびブロック内の動作内容の、作業者による入力作業を支援する。動作仕様1の内容をフローチャート化して入力・表示することで、作業者が入力結果を容易に確認することができる。   Next, the worker creates a flowchart representing the contents of the operation specification 1 by referring to the list created in steps S10 to S12, and inputs it from the specification input unit 3 (step S13). The operator creates and inputs a flowchart as a chart on the display screen. At this time, the specification input unit 3 uses a graphic symbol drawing / arrangement function, a connection function between graphic symbols, a mathematical expression input function to the graphic symbol, and the like, which are prepared in advance. Supports the operator to input the connection between the terminals and the operation contents in the block. By inputting and displaying the contents of the operation specification 1 as a flowchart, the operator can easily confirm the input result.

翻訳部4は、フローチャートの各接続線に、プログラムカウンタの値を重複しないように割り当てる(ステップS14)。プログラムカウンタは、入力された項目と同様に変数として扱われる。   The translation unit 4 assigns the values of the program counter so as not to overlap each connection line in the flowchart (step S14). The program counter is treated as a variable in the same way as the input item.

次に、翻訳部4は、フローチャートを変数毎に最初からトレースして、各変数の初期値と、次の値と、次の値へ変化するための条件式、すなわち状態遷移関係を抽出する(ステップS15)。この時、変数の値が変化するための条件式にプログラムカウンタの変数を含めることにより、フローチャートの時系列を状態遷移系に表現する。   Next, the translation unit 4 traces the flowchart for each variable from the beginning, and extracts an initial value, a next value, and a conditional expression for changing to the next value, that is, a state transition relationship ( Step S15). At this time, by including the variable of the program counter in the conditional expression for changing the value of the variable, the time series of the flowchart is expressed in the state transition system.

得られた全ての変数の状態遷移関係は、動作仕様1の論理構造として、論理構造記憶部5に記憶保存される(ステップS16)。   The obtained state transition relationships of all variables are stored and saved in the logical structure storage unit 5 as the logical structure of the operation specification 1 (step S16).

次に、翻訳部4は、変数毎の状態遷移関係を、モデル記述言語辞書6に記憶されている雛型にあてはめ、モデル記述言語のプログラムコードに変換する(ステップS17)。さらに、翻訳部4は、ステップS17で得られたモデル記述言語のプログラムコードを所定の順序で並べ替えて、モデル検査プログラムを作成する(ステップS18)。   Next, the translation unit 4 applies the state transition relationship for each variable to the template stored in the model description language dictionary 6 and converts it into a program code of the model description language (step S17). Furthermore, the translation unit 4 creates a model checking program by rearranging the program codes in the model description language obtained in step S17 in a predetermined order (step S18).

以上の手順でモデル検査支援装置2により得られたモデル検査プログラムは、モデル検査器10に入力される。モデル検査器10は、上記のモデル検査プログラムが、別途入力された検査項目9を満足しているかどうかを、数理的に検査する(ステップS19)。モデル検査器10による検査結果は、検査結果11として出力される。   The model checking program obtained by the model checking support device 2 in the above procedure is input to the model checker 10. The model checker 10 mathematically checks whether or not the above-described model check program satisfies the separately input check item 9 (step S19). The inspection result by the model checker 10 is output as the inspection result 11.

作業者は、検査結果11を見て、動作仕様1が検査項目9を満足しているかを判定し(ステップS20)、満足していない場合は、動作仕様もしくは論理構造の修正を行い、再度、モデル検査を繰り返す(ステップS21)。動作仕様1が検査項目9を満足している場合には、検証作業を終了する(ステップS22)。   The operator looks at the inspection result 11 and determines whether the operation specification 1 satisfies the inspection item 9 (step S20). If not satisfied, the operation specification or the logical structure is corrected, and again, The model check is repeated (step S21). If the operation specification 1 satisfies the inspection item 9, the verification work is finished (step S22).

ここで、図2のステップS10〜S22の処理の具体例について、図3〜図10を参照しながらより詳細に説明する。   Here, a specific example of the processing of steps S10 to S22 in FIG. 2 will be described in more detail with reference to FIGS.

例えば、プログラムの動作仕様1の内容が、「数字の値が1であれば、出力を『奇数』とする。数字の値が2であれば、出力を『偶数』とする。数字の初期値は1とし、その後の値は、出力後に非決定的に書き換えられて最初に戻り、書き換えられた数字に応じて『奇数』または『偶数』を出力する処理を繰り返し実行する。」というものであったとする。   For example, the contents of the operation specification 1 of the program are “if the numeric value is 1, the output is“ odd ”. If the numeric value is 2, the output is“ even ”. Is set to 1, and the subsequent value is nondeterministically rewritten after output and returns to the beginning, and the process of outputting “odd number” or “even number” is repeatedly executed according to the rewritten number. ” To do.

この場合、上記ステップS10〜S12により、モデル検査に必要な項目と状態について、図3の一覧表に示すような変数名および変数値が割り当てられる。すなわち、項目名として抽出されるのは「数字」と「出力」であり、「数字」が取り得る状態は「1」と「2」、「出力」が取り得る状態は「奇数」と「偶数」である。   In this case, variable names and variable values as shown in the list of FIG. 3 are assigned to the items and states necessary for model checking through the above steps S10 to S12. That is, “number” and “output” are extracted as item names, the states that “number” can take are “1” and “2”, and the states that “output” can take are “odd” and “even”. It is.

図3に例示した一覧表には、項目名およびその状態の他に、初期値の欄と状態の非決定性を示す欄とが設けられている。「数字」という項目については、上記プログラムの動作仕様1の記述内容に従い、初期値が「1」であることと、この項目の非決定性が「あり」であることが記述される。「非決定性」は、例えば、当該項目がランダムに選ばれる場合や、当該項目の状態が外部から入力される場合、あるいは、当該項目の状態が他の項目の処理結果などとして与えられる場合で、当該項目の状態が決定的でない場合に「あり」とされる。上記の具体例では、「数字」は、動作仕様1により非決定的に書き換えられることが明示されていることから、非決定性は「あり」と記述される。   The list illustrated in FIG. 3 includes an initial value column and a column indicating non-deterministic state in addition to the item name and its state. For the item “number”, it is described that the initial value is “1” and the nondeterminism of this item is “Yes” in accordance with the description contents of the operation specification 1 of the program. “Non-determinism” is, for example, when the item is selected at random, when the state of the item is input from the outside, or when the state of the item is given as the processing result of another item, etc. “Yes” if the status of the item is not definitive. In the above specific example, it is clearly stated that the “number” can be rewritten nondeterministically by the operation specification 1, and therefore “nondeterministic” is described as “present”.

図3に例示した一覧表において、項目「数字」には「num」、項目「出力」には「out」が、変数名としてそれぞれ割り当てられている。また、項目「数字」の状態である「1」と「2」には、変数値として“1”と“2”がそれぞれ割り当てられている。項目「出力」の状態である「奇数」と「偶数」には、変数値として“ODD”と“EVEN”がそれぞれ割り当てられている。さらに、項目「出力」の初期値の欄には、「数字」の初期値が「1」であることから、“ODD”が記述されている。また、項目「出力」の値は、「数字」の値によって一意に決定されるため、非決定性の欄には「なし」が記述される。   In the list illustrated in FIG. 3, “num” is assigned to the item “number” and “out” is assigned to the item “output” as variable names. In addition, “1” and “2”, which are the state of the item “number”, are assigned variable values “1” and “2”, respectively. “ODD” and “EVEN” are respectively assigned as variable values to “odd” and “even” which are the states of the item “output”. Furthermore, since the initial value of “number” is “1”, “ODD” is described in the initial value column of the item “output”. In addition, since the value of the item “output” is uniquely determined by the value of “number”, “none” is described in the non-deterministic column.

図4は、図3に例示した一覧表に基づいて作成され、作業者によって仕様入力部3より入力されるフローチャートである。このフローチャートでは、スタート(ステップS1)の後、numの値が“1”であるか否かを判断する(ステップS2)。ステップS2の結果がYESであれば変数outに“ODD”を代入し(ステップS3)、ステップS2の結果がNOであれば変数outに“EVEN”を代入する(ステップS4)。変数outへの代入後、変数numに“1”または“2”が代入され(ステップS5)、以上の処理が繰り返し実行される。   FIG. 4 is a flowchart created based on the list illustrated in FIG. 3 and input from the specification input unit 3 by the operator. In this flowchart, after the start (step S1), it is determined whether or not the value of num is “1” (step S2). If the result of step S2 is YES, "ODD" is substituted for variable out (step S3), and if the result of step S2 is NO, "EVEN" is substituted for variable out (step S4). After assignment to the variable out, “1” or “2” is assigned to the variable num (step S5), and the above processing is repeatedly executed.

図5〜図7は、図4のフローチャートが仕様入力部3から入力された場合に、翻訳部4による図2のステップS14〜S16の処理により、フローチャートの変数毎の状態遷移関係が抽出される様子を示す。   5 to 7, when the flowchart of FIG. 4 is input from the specification input unit 3, the state transition relationship for each variable of the flowchart is extracted by the processing of steps S <b> 14 to S <b> 16 of FIG. 2 by the translation unit 4. Show the state.

翻訳部4は、まず、図5に示すように、フローチャートに含まれる全てのブロックと接続線について、各ブロックの処理または接続線の種類を判別すると共に、それぞれにID番号(1,2,・・・)を付与する。ID番号は、まず、ブロックに対して順に付与され、全てのブロックへのID番号付与が終わった後に、接続線に対してID番号の付与が行われる。   As shown in FIG. 5, the translation unit 4 first determines the processing of each block or the type of connection line for all the blocks and connection lines included in the flowchart, and assigns an ID number (1, 2,.・ ・) Is given. ID numbers are assigned to blocks in order, and after all ID blocks have been assigned ID numbers, ID numbers are assigned to connection lines.

具体的には、ステップS1は、開始処理を行うブロックであり、最初のブロックであるため、「開始処理/1」とされる。ステップS2は、「一般条件処理/2」とされる。ステップS3は「一般処理/3」、ステップS4は「一般処理/4」とされる。ステップS5は「非決定処理/5」とされる。   Specifically, step S1 is a block for performing the start process, and is the first block, and is therefore “start process / 1”. Step S2 is “general condition processing / 2”. Step S3 is “general processing / 3”, and step S4 is “general processing / 4”. Step S5 is “non-decision process / 5”.

さらに、ステップS1とステップS2との接続線は、「接続線/6」とされる。ステップS2とステップS3との接続線は、「Yes接続線/7」、ステップS2とステップS4との接続線は、「No接続線/8」とされる。ステップS3とステップS5との接続線は「接続線/9」、ステップS4とステップS5との接続線は「接続線/10」、ステップS5とステップS1との接続線は「接続線/11」とされる。   Furthermore, the connection line between step S1 and step S2 is “connection line / 6”. The connection line between step S2 and step S3 is “Yes connection line / 7”, and the connection line between step S2 and step S4 is “No connection line / 8”. The connection line between step S3 and step S5 is “connection line / 9”, the connection line between step S4 and step S5 is “connection line / 10”, and the connection line between step S5 and step S1 is “connection line / 11”. It is said.

また、翻訳部4は、フローチャートの各接続線に、プログラムカウンタ(以下、PCと表記する)を割り当てる(図2のステップS14)。図5の例では、接続線/6にPC=1、Yes接続線/7にPC=2、No接続線/8にPC=3、接続線/9にPC=4を、それぞれ割り当てる。接続線/10および接続線/11は、接続先が他の接続線であるため、PCを割り当てない。   The translation unit 4 assigns a program counter (hereinafter referred to as PC) to each connection line in the flowchart (step S14 in FIG. 2). In the example of FIG. 5, PC = 1 is assigned to the connection line / 6, PC = 2 is assigned to the Yes connection line / 7, PC = 3 is assigned to the No connection line / 8, and PC = 4 is assigned to the connection line / 9. Since the connection destination is another connection line, the connection line / 10 and the connection line / 11 are not assigned a PC.

次に、翻訳部4は、図3の一覧表と図5の割り当て結果に従って、フローチャートの要素の定義リストを作成する。その一例を図6に示す。図6の定義リストは、変数宣言部61と、フローチャートの各要素の定義部62を有する。変数宣言部61の内容は、図3の一覧表から得られる。定義部62の内容は、図5の割り当て結果から得られる。   Next, the translation unit 4 creates a definition list of elements of the flowchart according to the list of FIG. 3 and the assignment result of FIG. An example is shown in FIG. The definition list in FIG. 6 includes a variable declaration unit 61 and a definition unit 62 for each element of the flowchart. The contents of the variable declaration unit 61 are obtained from the list of FIG. The contents of the definition unit 62 are obtained from the assignment result of FIG.

すなわち、変数宣言部61は、先頭行に、変数宣言部であることを表すコメントである「#Variables」が記述され、次の行に、図3に示した変数「num」について、当該変数の変数型(整数)、変数名(num)、初期値(1)、下限値(1)、上限値(2)が定義されている。その次の行には、図3に示した変数「out」について、当該変数の変数型(シンボルセット型)、変数名(out)、初期値(ODD)、全シンボル(ODD,EVEN)が定義されている。   That is, in the variable declaration part 61, “#Variables” which is a comment indicating that it is a variable declaration part is described in the first line, and the variable “num” shown in FIG. Variable type (integer), variable name (num), initial value (1), lower limit value (1), and upper limit value (2) are defined. The next line defines the variable type (symbol set type), variable name (out), initial value (ODD), and all symbols (ODD, EVEN) for the variable “out” shown in FIG. Has been.

定義部62は、先頭行に、フローチャートの要素の定義部であることを示すコメントである「#Flow-Chart」が記述されている。2行目以降には、開始処理/1からID番号順に、各要素の定義が記述される。例えば、一般条件処理/2は分岐処理であるため、分岐条件となる変数名(num)と、比較値(1)と、比較演算子(=)が記述される。一般処理/3は代入処理であるため、変数名(out)、代入値(ODD)が記述される。一般処理/4もこれと同様である。非決定処理/5は、ランダムな代入処理であるため、変数名(num)と、代入値候補(1/2:このスラッシュ記号は候補値の区切りを表す)が記述される。接続線/6は、前後の処理を結ぶ接続線であるため、前の処理(開始処理/1)と、後の処理(一般条件処理/2)と、この接続線のPC値(1)が記述される。Yes接続線/7、No接続線/8、接続線/9についても、同様に、前の処理と、後の処理と、当該接続線のPC値が記述される。接続線/10および接続線/11は、PC値を持たないので、前の処理と後の処理のみが記述される。   In the definition part 62, “# Flow-Chart” which is a comment indicating that it is a definition part of an element of a flowchart is described in the first line. In the second and subsequent lines, the definition of each element is described in the order of ID number from start processing / 1. For example, since the general condition process / 2 is a branch process, a variable name (num), a comparison value (1), and a comparison operator (=) that are branch conditions are described. Since the general process / 3 is an assignment process, a variable name (out) and an assigned value (ODD) are described. The general process / 4 is the same as this. Since the non-decision process / 5 is a random substitution process, a variable name (num) and a substitution value candidate (1/2: this slash symbol represents a break between candidate values) are described. Since the connection line / 6 is a connection line connecting the preceding and following processes, the previous process (start process / 1), the subsequent process (general condition process / 2), and the PC value (1) of this connection line are Described. Similarly, for the Yes connection line / 7, No connection line / 8, and connection line / 9, the previous process, the subsequent process, and the PC value of the connection line are described. Since the connection line / 10 and the connection line / 11 do not have a PC value, only the previous process and the subsequent process are described.

翻訳部4は、次に、図6の定義リストから、変数毎に、変数名と、初期値と、値域と、状態遷移を抽出する(図2のステップS15)。その抽出結果を図7に示す。変数名、初期値、および値域は、定義リストの変数宣言部61から取得される。状態遷移は、定義リストの定義部62から取得され、状態遷移条件と代入値とをカンマで区切って列挙した態様で記述される。例えば変数numは、PC値が4のときに変数値として1または2が代入されるので、状態遷移は、図7中に示すように、「PC=4,1/2」のように記述される。また、変数outは、PC値が2のときに変数値ODDが代入され、PC値が3のときに変数値EVENが代入されるので、状態遷移は、図7中に示すように、「PC=2,ODD」、「PC=3,EVEN」のように記述される。以上のように抽出された状態遷移関係は、動作仕様1から得られた論理構造として、論理構造記憶部5へ記憶される。   Next, the translation unit 4 extracts the variable name, initial value, value range, and state transition for each variable from the definition list in FIG. 6 (step S15 in FIG. 2). The extraction result is shown in FIG. The variable name, initial value, and value range are acquired from the variable declaration unit 61 of the definition list. The state transition is acquired from the definition unit 62 of the definition list, and is described in a state in which the state transition condition and the substitution value are separated by a comma. For example, since the variable num is assigned 1 or 2 as the variable value when the PC value is 4, the state transition is described as “PC = 4, 1/2” as shown in FIG. The The variable out is assigned the variable value ODD when the PC value is 2, and the variable value EVEN is assigned when the PC value is 3. Therefore, as shown in FIG. = 2, ODD "," PC = 3, EVEN ". The state transition relationship extracted as described above is stored in the logical structure storage unit 5 as a logical structure obtained from the operation specification 1.

翻訳部4は、次に、図2のステップS17〜S18において、図7の抽出結果に基づき、モデル記述言語辞書6を参照し、モデル検査器10への入力言語列(モデル検査プログラム)を生成する。ここで、図8に、モデル記述言語辞書6に格納されている雛型の一例を示す。図8の例は、SMV(Symbolic Model Verifier)言語の雛型であるが、本発明においてモデル記述言語として用いることができる言語は、これのみに限定されない。   Next, the translation unit 4 generates an input language string (model check program) to the model checker 10 by referring to the model description language dictionary 6 based on the extraction result of FIG. 7 in steps S17 to S18 of FIG. To do. Here, FIG. 8 shows an example of a template stored in the model description language dictionary 6. The example of FIG. 8 is a model of SMV (Symbolic Model Verifier) language, but the language that can be used as the model description language in the present invention is not limited to this.

図8に示した雛型において、斜体文字で示したシンボルは定型部分である。「VAR」は、変数の宣言部分であり、値域を定義する。「ASSIGN」は、状態遷移を定義する。「init(xx)」は変数xxの初期値を定義する。「next(xx)」は、case文(case〜esac)の中で、状態遷移条件と変数xxへの代入値を定義する。case文では、コロン“:”の左側に状態遷移条件、右側に変数xxへの代入値が、それぞれ記述される。なお、図8におけるcase文の1行目は、コロンの左側の状態遷移条件が満たされれば、1行目に記述されている代入値を変数xxに代入することを意味し、2行目は、1:xxと記述されていることから(1はtrueを表す)、1行目の状態遷移条件以外の全ての場合において、変数xxへ変数xxの値を代入する、すなわち、変数xxの値を保持することを意味する。翻訳部4は、個々のシステムに応じて、上記の雛型のxxの部分に変数を割り当てると共に、値域、初期値、代入値を適切に割り当てることにより、モデル検査器10へのモデル検査プログラムを生成する。   In the template shown in FIG. 8, the symbols shown in italic characters are fixed portions. “VAR” is a variable declaration part and defines a value range. “ASSIGN” defines a state transition. “Init (xx)” defines an initial value of the variable xx. “Next (xx)” defines a state transition condition and an assignment value to a variable xx in a case statement (case to esac). In the case statement, the state transition condition is described on the left side of the colon “:”, and the assignment value to the variable xx is described on the right side. The first line of the case statement in FIG. 8 means that if the state transition condition on the left side of the colon is satisfied, the substitution value described in the first line is substituted into the variable xx. 1: xx (1 represents true), in all cases except for the state transition condition in the first row, the value of variable xx is substituted for variable xx, that is, the value of variable xx Means holding. The translation unit 4 assigns a variable to the part xx of the above template according to each system, and assigns a value range, an initial value, and an assigned value appropriately, so that the model checking program for the model checker 10 is assigned. Generate.

図7の抽出結果から、図8の雛型を用いて翻訳部4により生成されるモデル検査プログラムの一例を図9に示す。モデル検査プログラムの冒頭の「MODULE main」という記述は、メインモジュールであることを表す。また、図9において、「&」は積条件の演算子、「!」は否定条件の演算子である。   FIG. 9 shows an example of a model checking program generated by the translation unit 4 using the template shown in FIG. 8 from the extraction result shown in FIG. The description “MODULE main” at the beginning of the model checking program indicates a main module. In FIG. 9, “&” is an operator for product conditions, and “!” Is an operator for negative conditions.

このように生成されたモデル検査プログラムは、翻訳部4からモデル検査器10へ渡される。作業者は、モデル検査器10へ、検査項目9として、例えば図10に示すような時相論理式(EF)を入力する。モデル検査器10は、入力された検査項目9をモデル検査プログラムの最後に「SPEC」というシンボルで追記して、モデル検査を実行する。時相論理式は、例えば、EF(P)というフォーマットを持ち、「あるパスにおいて(Exist)、将来のある時点において(Future)、Pが成立する」ことの真偽を返す。すなわち、図10に示す時相論理式は、被検査プログラムが最終ステップに到達すること、つまり、PCの値が4に到達すること、を表現している。検査項目は、この他に、例えば、EF(num=2)のような記述の仕方も可能である。この時相論理式は、変数numの値が2となることがあるかどうかを検査するための式である。また、AF(P)というフォーマットの時相論理式を用いることも可能である。これは、「全てのパスにおいて(All)、将来のある時点において(Future)、Pが成立する」ことの真偽を返す式である。   The model check program generated in this way is transferred from the translation unit 4 to the model checker 10. The operator inputs a time phase logical expression (EF) as shown in FIG. The model checker 10 adds the input check item 9 with the symbol “SPEC” at the end of the model check program, and executes model check. The temporal logic formula has a format of EF (P), for example, and returns true / false that “P is established at a certain path (Exist) and at a future time (Future)”. That is, the time phase logical expression shown in FIG. 10 expresses that the program to be inspected reaches the final step, that is, the PC value reaches 4. In addition to this, the inspection item can be described in a manner such as EF (num = 2), for example. This temporal logic expression is an expression for checking whether or not the value of the variable num may be 2. It is also possible to use a temporal logic formula in the format of AF (P). This is an expression that returns the truth of “P is established at all points (All) and at a future time (Future)”.

モデル検査器10は、図2のステップS19において、上述のように生成されたモデル検査プログラムを用い、時相論理式として与えられた検査項目の真偽を、検査結果11として返す。そして、その検査結果11を作業者が確認し、検査結果が良であれば検証作業を終了し、不良であれば、ステップS21で動作仕様や論理構造の見直しを行い、再度検証作業を行う。   In step S19 of FIG. 2, the model checker 10 uses the model check program generated as described above, and returns the true / false of the check item given as a temporal logic formula as the check result 11. Then, the operator confirms the inspection result 11, and if the inspection result is good, the verification operation is terminated. If the inspection result is defective, the operation specification and the logical structure are reviewed in step S21, and the verification operation is performed again.

以上のように、本実施形態によれば、作業者が、動作仕様1の項目および状態に変数を割り当て、動作仕様1の内容を表すフローチャートを仕様入力部3から入力すれば、翻訳部4により、そのフローチャートから変数毎の状態遷移関係が抽出され、動作仕様1に応じたモデル検査プログラムが自動的に生成される。これにより、従来のように動作仕様から手作業により論理構造を抽出する必要がなくなり、開発効率を大幅に向上させることができる。
(第2の実施形態)
次に、図11を参照し、本発明の第2の実施形態にかかるモデル検査システムの概略構成について説明する。図11は、本実施形態のモデル検査システムのブロック構成図である。
As described above, according to the present embodiment, if the operator assigns variables to the items and states of the operation specification 1 and inputs a flowchart representing the contents of the operation specification 1 from the specification input unit 3, the translation unit 4 The state transition relationship for each variable is extracted from the flowchart, and a model checking program corresponding to the operation specification 1 is automatically generated. As a result, there is no need to manually extract a logical structure from an operation specification as in the prior art, and development efficiency can be greatly improved.
(Second Embodiment)
Next, a schematic configuration of a model checking system according to the second embodiment of the present invention will be described with reference to FIG. FIG. 11 is a block configuration diagram of the model checking system of this embodiment.

図11に示すように、本実施形態のモデル検査システムは、モデル検査支援装置2が、開発言語辞書8と、開発言語プログラムを作成するプログラム作成部7とを備えている点において、第1の実施形態にかかるモデル検査システムと異なっている。   As shown in FIG. 11, the model checking system according to the present embodiment is the first in that the model checking support device 2 includes a development language dictionary 8 and a program creation unit 7 that creates a development language program. This is different from the model checking system according to the embodiment.

プログラム作成部7は、モデル検査器10による検査結果11が良であった場合、論理構造記憶部5に記憶されている論理構造から、開発言語プログラム12を作成する。すなわち、動作仕様1が検査項目9を満足している場合は、その動作仕様1から抽出されて論理構造記憶部5に記憶されている論理構造は当然に検査項目9を満足している。従って、その論理構造に基づいてプログラム作成部7がプログラムを生成すれば、検査項目9を満足する開発言語プログラム12が得られる。   The program creation unit 7 creates a development language program 12 from the logical structure stored in the logical structure storage unit 5 when the inspection result 11 by the model checker 10 is good. That is, when the operation specification 1 satisfies the inspection item 9, the logical structure extracted from the operation specification 1 and stored in the logical structure storage unit 5 naturally satisfies the inspection item 9. Therefore, if the program creation unit 7 generates a program based on the logical structure, a development language program 12 that satisfies the inspection item 9 is obtained.

次に、図12のフローチャートを参照して、プログラム作成部7により行われる開発言語プログラム12の作成について説明する。なお、翻訳部4によるモデル検査プログラムの生成およびそのモデル検査プログラムを用いたモデル検査器10による検査の手順については、第1の実施形態で図2を参照しながら説明したとおりであるため、重複した説明は省略する。   Next, creation of the development language program 12 performed by the program creation unit 7 will be described with reference to the flowchart of FIG. Note that the generation of the model checking program by the translation unit 4 and the checking procedure by the model checker 10 using the model checking program are the same as those described in the first embodiment with reference to FIG. The explanations made are omitted.

モデル検査器10による検査結果11が良であった場合(図2のステップS20の結果が良の場合)、ステップS22に移行して検証作業は終了する。本実施形態では、その後、プログラム作成部7が、図12に示すように、論理構造記憶部5から、各変数の状態遷移関数を呼び出す(ステップS31)。次に、プログラム作成部7は、変数毎の状態遷移関係を、開発言語辞書8に記憶されている開発言語の雛型にあてはめることにより、開発言語のプログラムソースコードに変換する(ステップS32)。さらに、プログラム作成部7は、開発言語のプログラムソースコードを所定の順序で並べ替え、開発言語プログラムを完成させる(ステップS33)。   When the inspection result 11 by the model checker 10 is good (when the result of step S20 in FIG. 2 is good), the process proceeds to step S22 and the verification operation is completed. In the present embodiment, thereafter, the program creation unit 7 calls the state transition function of each variable from the logical structure storage unit 5 as shown in FIG. 12 (step S31). Next, the program creation unit 7 converts the state transition relation for each variable into a development language template stored in the development language dictionary 8 to convert it into a development language program source code (step S32). Further, the program creation unit 7 rearranges the development language program source codes in a predetermined order to complete the development language program (step S33).

ここで、図12のステップS31〜S33の処理の具体例について、図13〜図14を参照しながらより詳細に説明する。   Here, a specific example of the processing in steps S31 to S33 in FIG. 12 will be described in more detail with reference to FIGS.

図13は、開発言語辞書8に記憶されている開発言語の雛型の一例として、JavaScript(登録商標)言語用の雛型を示す。ただし、本発明で用いられる開発言語は、これに限定されるものではない。図13において、斜体文字で表した部分は定型部分である。プログラム作成部7は、個々のシステムに応じて、xxに変数、yyyにクラス名/メソッド名、変数型、初期値、状態遷移条件、代入値などを適切に割り当てる。図13の雛型では、冒頭で、変数の変数型および初期値を記述する。そして、3行目以降で、状態遷移条件と、状態遷移時の代入値を記述する。   FIG. 13 shows a JavaScript (registered trademark) language template as an example of a development language template stored in the development language dictionary 8. However, the development language used in the present invention is not limited to this. In FIG. 13, the part represented by italic characters is a fixed part. The program creation unit 7 appropriately assigns a variable to xx, a class name / method name, a variable type, an initial value, a state transition condition, an assignment value, and the like according to each system. In the template of FIG. 13, the variable type and initial value of the variable are described at the beginning. In the third and subsequent lines, state transition conditions and substitution values at the time of state transition are described.

例えば、図7に示した論理構造に、図13の雛型を適用することにより、図14に示すようなプログラムソースコードが得られる。ここで、クラス名とメソッド名は、ユニークであることを条件として、プログラム作成部7が任意に付与して良い。なお、図14の例では、JavaScript(登録商標)言語では用いないPC値を省略して、図7のPC値の順に処理をたどることで、PC値が示す動作順序をJavaScript(登録商標)言語の実行順序に置き換えている。さらに、プログラム作成部7は、非決定処理をRandomクラスで実装している。   For example, by applying the template shown in FIG. 13 to the logical structure shown in FIG. 7, a program source code as shown in FIG. 14 is obtained. Here, the program creation unit 7 may arbitrarily assign the class name and the method name on condition that they are unique. In the example of FIG. 14, the PC values that are not used in JavaScript (registered trademark) language are omitted, and the processing order indicated by the PC values is changed to JavaScript (registered trademark) language by processing in the order of the PC values of FIG. The execution order has been replaced. Furthermore, the program creation unit 7 implements non-determination processing with a Random class.

以上のように、第2の実施形態によれば、モデル検査支援装置2は、動作仕様1に対するモデル検査プログラムを自動作成するだけでなく、検証結果11が良であった場合、その動作仕様1の論理構造と開発言語辞書8とに基づいて、開発言語プログラム12を自動的に生成する。これにより、プログラムの開発効率をさらに向上させることが可能となる。   As described above, according to the second embodiment, the model checking support device 2 not only automatically creates a model checking program for the operation specification 1, but also when the verification result 11 is good, the operation specification 1 The development language program 12 is automatically generated based on the logical structure and the development language dictionary 8. As a result, the program development efficiency can be further improved.

本発明の第1の実施形態にかかるモデル検査システムの概略構成を示すブロック図である。It is a block diagram showing a schematic structure of a model check system concerning a 1st embodiment of the present invention. 第1の実施形態にかかるモデル検査システムの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the model check system concerning 1st Embodiment. 第1の実施形態にかかるモデル検査システムおいて、動作仕様の項目および状態に割り当てられる変数の一例を示す説明図である。It is explanatory drawing which shows an example of the variable allocated to the item and state of an operation | movement specification in the model check system concerning 1st Embodiment. 動作仕様を表すフローチャートの一例である。It is an example of the flowchart showing operation | movement specification. 図4に示すフローチャートの各要素にID番号およびプログラムカウンタを割り当てた様子を示す説明図である。It is explanatory drawing which shows a mode that the ID number and the program counter were allocated to each element of the flowchart shown in FIG. 動作仕様を表すフローチャートから得られた各要素の定義リストの一例を表す説明図である。It is explanatory drawing showing an example of the definition list | wrist of each element obtained from the flowchart showing operation | movement specification. 変数毎の遷移状態関係を表すリストの一例を示す説明図である。It is explanatory drawing which shows an example of the list showing the transition state relationship for every variable. モデル記述言語の雛型の一例を示す説明図である。It is explanatory drawing which shows an example of the model of a model description language. 生成されたモデル検査プログラムの一例を示す説明図である。It is explanatory drawing which shows an example of the produced | generated model check program. 検査項目の時相論理式の記述例である。It is a description example of a temporal logic formula of an inspection item. 本発明の第2の実施形態にかかるモデル検査システムの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the model check system concerning the 2nd Embodiment of this invention. 第2の実施形態にかかるモデル検査システムの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the model check system concerning 2nd Embodiment. プログラムの開発言語の雛型の一例を示す説明図である。It is explanatory drawing which shows an example of the template of the development language of a program. 生成された開発言語プログラムのソースコードの一例を示す説明図である。It is explanatory drawing which shows an example of the source code of the produced | generated development language program.

符号の説明Explanation of symbols

1 動作仕様
2 モデル検査支援装置
3 仕様入力部
4 翻訳部
5 論理構造記憶部
6 モデル記述言語辞書
7 プログラム作成部
8 開発言語辞書
9 検査項目
10 検査結果
11 検査結果
DESCRIPTION OF SYMBOLS 1 Operation | movement specification 2 Model test | inspection assistance apparatus 3 Specification input part 4 Translation part 5 Logical structure memory | storage part 6 Model description language dictionary 7 Program creation part 8 Development language dictionary 9 Test item 10 Test result 11 Test result

Claims (7)

ソフトウェアの動作仕様を、変数の状態遷移関係で表した論理記述として入力する仕様入力部と、
モデル検査プログラムの雛型を格納したモデル記述言語辞書記憶部と、
前記仕様入力部へ入力された論理記述から前記動作仕様の論理構造を抽出し、抽出された論理構造と前記モデル記述言語辞書記憶部の前記雛型とを用いて、モデル検査プログラムを作成する翻訳部とを備えたことを特徴とする、ソフトウェア動作仕様のモデル検査支援装置。
A specification input unit for inputting software operation specifications as a logical description represented by state transition relations of variables;
A model description language dictionary storage unit storing model checking program templates;
Translation that extracts a logical structure of the operation specification from the logical description input to the specification input unit, and creates a model checking program using the extracted logical structure and the template of the model description language dictionary storage unit A model checking support device for software operation specifications, characterized by comprising:
前記仕様入力部が、前記変数の状態遷移関係を図形表現として入力し、
前記翻訳部は、前記仕様入力部に入力された図形表現から動作仕様の論理構造を抽出する、請求項1に記載のモデル検査支援装置。
The specification input unit inputs the state transition relationship of the variable as a graphic expression,
The model checking support device according to claim 1, wherein the translation unit extracts a logical structure of an operation specification from a graphic expression input to the specification input unit.
前記翻訳部により抽出された動作仕様の論理構造を記憶する論理構造記憶部と、
開発言語プログラムの雛型を格納した開発言語辞書記憶部と、
前記論理構造記憶部に記憶された論理構造と、前記開発言語辞書記憶部の前記雛型とを用いて、開発言語によるプログラムを作成するプログラム作成部とを備えた、請求項1に記載のモデル検査支援装置。
A logical structure storage unit for storing a logical structure of the operation specification extracted by the translation unit;
A development language dictionary storage unit storing development language program templates;
The model according to claim 1, further comprising: a program creation unit that creates a program in a development language using the logical structure stored in the logical structure storage unit and the template in the development language dictionary storage unit. Inspection support device.
請求項1〜3のいずれか一項に記載のモデル検査支援装置と、
前記モデル検査支援装置により生成されたモデル検査プログラムのモデル検査を行うモデル検査器とを備えたことを特徴とするモデル検査システム。
The model checking support device according to any one of claims 1 to 3,
A model checking system comprising: a model checker that performs model checking of a model checking program generated by the model checking support device.
コンピュータにソフトウェア動作仕様のモデル検査支援処理を実行させるモデル検査支援プログラムであって、
ソフトウェアの動作仕様を、変数の状態遷移関係で表した論理記述として入力する仕様入力処理と、
前記仕様入力処理で入力された論理記述から前記動作仕様の論理構造を抽出し、抽出された論理構造と、モデル記述言語辞書記憶部から取得したモデル検査プログラムの雛型とを用いて、モデル検査プログラムを作成する翻訳処理とを、コンピュータに実行させることを特徴とするモデル検査支援プログラム。
A model checking support program for causing a computer to execute model checking support processing of software operation specifications,
Specification input processing for inputting software operation specifications as a logical description represented by variable state transition relationships;
Extracting the logical structure of the operation specification from the logical description input in the specification input process, and using the extracted logical structure and the model of the model checking program acquired from the model description language dictionary storage unit, model checking A model checking support program that causes a computer to execute a translation process for creating a program.
前記仕様入力処理において、前記変数の状態遷移関係を図形表現として入力し、
前記翻訳処理において、前記仕様入力処理で入力された図形表現から動作仕様の論理構造を抽出する、請求項5に記載のモデル検査支援プログラム。
In the specification input process, the state transition relationship of the variable is input as a graphic expression,
6. The model checking support program according to claim 5, wherein in the translation process, a logical structure of an operation specification is extracted from a graphic expression input in the specification input process.
前記翻訳処理により抽出された動作仕様の論理構造を記憶した論理構造記憶部と、
開発言語プログラムの雛型を格納した開発言語辞書記憶部とを参照し、
前記論理構造記憶部から取得した論理構造と、前記開発言語辞書記憶部から取得した前記雛型とを用いて、開発言語によるプログラムを作成するプログラム作成処理をコンピュータに実行させる、請求項5または6に記載のモデル検査支援プログラム。
A logical structure storage unit storing a logical structure of the operation specification extracted by the translation process;
With reference to the development language dictionary storage section that stores the development language program template,
7. The computer is caused to execute a program creation process for creating a program in a development language using the logical structure acquired from the logical structure storage unit and the template acquired from the development language dictionary storage unit. Model checking support program described in 1.
JP2005190293A 2005-06-29 2005-06-29 Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program Pending JP2007011605A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005190293A JP2007011605A (en) 2005-06-29 2005-06-29 Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005190293A JP2007011605A (en) 2005-06-29 2005-06-29 Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program

Publications (1)

Publication Number Publication Date
JP2007011605A true JP2007011605A (en) 2007-01-18

Family

ID=37750034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005190293A Pending JP2007011605A (en) 2005-06-29 2005-06-29 Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program

Country Status (1)

Country Link
JP (1) JP2007011605A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242737A (en) * 2007-03-27 2008-10-09 Toshiba Corp Apparatus, method and program for creating program verification specification
JP2009157661A (en) * 2007-12-26 2009-07-16 Fuji Soft Inc Model inspection support device
WO2011024314A1 (en) * 2009-08-31 2011-03-03 株式会社 東芝 State-transition verifying device, and method therefor
WO2012049816A1 (en) * 2010-10-14 2012-04-19 日本電気株式会社 Model checking device, method, and program
CN102521136A (en) * 2011-12-31 2012-06-27 山东中创软件商用中间件股份有限公司 Application program monitoring 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
JP2013205306A (en) * 2012-03-29 2013-10-07 Ono Sokki Co Ltd Test procedure generation apparatus and program
CN113076622A (en) * 2021-02-22 2021-07-06 南京远思智能科技有限公司 System and method for normative analysis and verification of FMU (functional modeling Unit) simulation model

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168709A (en) * 1993-12-15 1995-07-04 Nec Corp Method and device for simulating program generator utilization specification
JPH103405A (en) * 1996-06-14 1998-01-06 Mitsubishi Electric Corp Test support device
JPH1091409A (en) * 1996-09-17 1998-04-10 Toshiba Corp Program execution device/method for developing software
JPH1139378A (en) * 1997-02-18 1999-02-12 Lucent Technol Inc Device for specifying system design specification
JP2000242477A (en) * 1998-12-24 2000-09-08 Fuji Electric Co Ltd Preparation supporting tool and specification verifying tool for software
JP2003108220A (en) * 2001-09-28 2003-04-11 Omron Corp System and method for assisting development of control program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168709A (en) * 1993-12-15 1995-07-04 Nec Corp Method and device for simulating program generator utilization specification
JPH103405A (en) * 1996-06-14 1998-01-06 Mitsubishi Electric Corp Test support device
JPH1091409A (en) * 1996-09-17 1998-04-10 Toshiba Corp Program execution device/method for developing software
JPH1139378A (en) * 1997-02-18 1999-02-12 Lucent Technol Inc Device for specifying system design specification
JP2000242477A (en) * 1998-12-24 2000-09-08 Fuji Electric Co Ltd Preparation supporting tool and specification verifying tool for software
JP2003108220A (en) * 2001-09-28 2003-04-11 Omron Corp System and method for assisting development of control program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242737A (en) * 2007-03-27 2008-10-09 Toshiba Corp Apparatus, method and program for creating program verification specification
JP4607918B2 (en) * 2007-03-27 2011-01-05 株式会社東芝 Program verification specification generation apparatus, method and program
JP2009157661A (en) * 2007-12-26 2009-07-16 Fuji Soft Inc Model inspection support device
WO2011024314A1 (en) * 2009-08-31 2011-03-03 株式会社 東芝 State-transition verifying device, and method therefor
WO2012049816A1 (en) * 2010-10-14 2012-04-19 日本電気株式会社 Model checking device, method, and program
CN102521136A (en) * 2011-12-31 2012-06-27 山东中创软件商用中间件股份有限公司 Application program monitoring 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
JP2013205306A (en) * 2012-03-29 2013-10-07 Ono Sokki Co Ltd Test procedure generation apparatus and program
CN113076622A (en) * 2021-02-22 2021-07-06 南京远思智能科技有限公司 System and method for normative analysis and verification of FMU (functional modeling Unit) simulation model
CN113076622B (en) * 2021-02-22 2023-12-12 南京远思智能科技有限公司 FMU simulation model normalization analysis and verification system and method

Similar Documents

Publication Publication Date Title
JP6621204B2 (en) Systems and methods for model-based techniques and processes for safety-oriented software development
Baudry et al. Barriers to systematic model transformation testing
JP2007011605A (en) Model inspection support device for software operation specification, model inspection system provided with the same, and model inspection support program
EP3695310A1 (en) Blackbox matching engine
JP5005510B2 (en) Software design support method, design support apparatus, and design support program
CN113632018B (en) Method, computer program and apparatus for analyzing programmable logic controller program
US20140214396A1 (en) Specification properties creation for a visual model of a system
Aichernig et al. Integration of requirements engineering and test-case generation via OSLC
CN107622017A (en) A kind of analytic method of general automation software test
JP7557431B2 (en) Apparatus and method for supporting source code modification
JP4835859B2 (en) State transition diagram creation device and state transition diagram creation method
JP2008305079A (en) Requirement specification automatic verification method
JP6451417B2 (en) Debug support device, debug support system, debug support method, and debug support program
Muram et al. Counterexample analysis for supporting containment checking of business process models
Akhtar et al. A Systematic Literature Review on Software-refactoring Techniques, Challenges, and Practices
WO2012049816A1 (en) Model checking device, method, and program
CN114385155A (en) vue project visualization tool generation method, device, equipment and storage medium
Erazo et al. Maritaca: from textual use case descriptions to behavior models
JP2016126700A (en) Program verification device, program verification method, and program verification program
JP4387324B2 (en) Property conversion device
Kaufmann et al. Intra-and interdiagram consistency checking of behavioral multiview models
JP5736588B2 (en) Source code conversion method and source code conversion program
Cammaerts et al. Assessing the value of incomplete deadlock verification in Model-Driven Engineering
JP6084706B2 (en) Source code generation device, source code verification device, source code generation method, and source code generation program
JP6062735B2 (en) Software development support device, software development support method, software development support program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110301