JP5326633B2 - DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK - Google Patents

DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK Download PDF

Info

Publication number
JP5326633B2
JP5326633B2 JP2009032448A JP2009032448A JP5326633B2 JP 5326633 B2 JP5326633 B2 JP 5326633B2 JP 2009032448 A JP2009032448 A JP 2009032448A JP 2009032448 A JP2009032448 A JP 2009032448A JP 5326633 B2 JP5326633 B2 JP 5326633B2
Authority
JP
Japan
Prior art keywords
factor
expression
variable
equivalence class
recursive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009032448A
Other languages
Japanese (ja)
Other versions
JP2010191507A (en
Inventor
一樹 宗像
憲二 大木
忠弘 上原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009032448A priority Critical patent/JP5326633B2/en
Publication of JP2010191507A publication Critical patent/JP2010191507A/en
Application granted granted Critical
Publication of JP5326633B2 publication Critical patent/JP5326633B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、効率的なモデル検査を行うためのデータ生成技術に関する。   The present invention relates to a data generation technique for performing efficient model checking.

モデル検査とは、テスト対象システムの振舞いを設計書・仕様書から取り出し、モデル検査の専用言語で記述したプログラム(擬似システム)を作成し、当該擬似システムにテストデータを入力することで実施するテストのことである。テストデータは、設計書・仕様書に基づき、状態遷移の各状態が取りうる全ての組み合わせを抽出したものである。   Model checking is a test executed by extracting the behavior of the test target system from the design document / specification, creating a program (pseudo system) described in a model check dedicated language, and inputting test data to the pseudo system. That's it. The test data is obtained by extracting all possible combinations of each state transition state based on the design document / specification document.

図11は従来のモデル検査を実施するときに用いる構成を示す図である。クライアントの代わりにドライバ111から検査対象プログラム112に対してユーザ操作を模倣した入力データ116が入力される。図11では検査対象プログラム112と検査対象プログラム112に接続されているデータベーススタブ113とネットワークスタブ114に対して網羅的な検査が行われる。   FIG. 11 is a diagram showing a configuration used when a conventional model check is performed. Input data 116 imitating a user operation is input from the driver 111 to the inspection target program 112 instead of the client. In FIG. 11, an exhaustive inspection is performed on the inspection target program 112 and the database stub 113 and the network stub 114 connected to the inspection target program 112.

ドライバ111は検査対象プログラム112をさまざまなバリエーションで複数回、連続的に呼び出していく。モデル検査装置115は、その中で機能仕様(プロパティ117に格納されている)が満たされているかチェックする。検査対象プログラム112をさまざまな実行順序で呼び出す際、引数として渡す入力データもさまざまなバリエーションが必要である。   The driver 111 continuously calls the inspection target program 112 a plurality of times with various variations. The model checking device 115 checks whether the functional specification (stored in the property 117) is satisfied. When the inspection target program 112 is called in various execution orders, the input data passed as an argument needs various variations.

また、対象プログラム112のあらゆる動作を想定して検査ができるドライバ111を作成するためには、対象プログラム112の操作イベント、および操作イベントの引数となるデータについて、仕様上可能な組み合わせを再現できるようにする必要がある。   In addition, in order to create the driver 111 that can be inspected assuming all operations of the target program 112, it is possible to reproduce possible combinations in the specifications of the operation event of the target program 112 and the data that is the argument of the operation event. It is necessary to.

そこで、従来は上記のような網羅的なドライバ作成のためのデータ設計について、各データについて機能仕様から同値分割を行い、その各同値クラスから代表値を選ぶ方法(境界値分析)が実施されている。   Therefore, in the past, for data design for comprehensive driver creation as described above, a method (boundary value analysis) has been implemented in which equivalence partitioning is performed from the functional specification for each data and representative values are selected from each equivalence class. Yes.

しかしながら、状態空間を明示的に探索するJava PathFinderに代表されるようなプログラムモデル検査手法において、従来の境界値分析を適用すると次のような問題が生じる。   However, when a conventional boundary value analysis is applied to a program model checking method represented by Java PathFinder that explicitly searches the state space, the following problems occur.

既存の境界値分析をもとに作成された代表値から状態空間を作成すると、検査の観点において同様の局面を表わす部分的なグラフが複数回繰り返して出現する可能性がある。
このように従来の境界値分析では、部分的なグラフの繰り返し構造を防ぐことを加味した同値分割は不可能であり、特にモデル検査では状態爆発につながる問題がある。
If the state space is created from the representative values created based on the existing boundary value analysis, there is a possibility that a partial graph representing the same situation from the viewpoint of inspection repeatedly appears a plurality of times.
As described above, the conventional boundary value analysis cannot perform equivalence division taking into account the prevention of a partial repetitive structure of the graph, and there is a problem that leads to a state explosion particularly in model checking.

なお、特許文献1にはデータ定義文から各種代表値を抽出するという技術や、各種代表値をテストデータとして用いるような技術が提案されている。   Patent Document 1 proposes a technique for extracting various representative values from a data definition sentence and a technique for using various representative values as test data.

特許3105279号公報Japanese Patent No. 3105279

上記のような実情に鑑みてなされたものであり、プログラムモデル検査手法において、擬似システムのプロパティから繰り返しの要因を抽出し、当該要因による繰り返しを停止させる条件を加味した最適な同値クラスを生成することにより、無駄な繰り返しを減少させるデータ生成プログラム、データ生成装置およびデータ生成方法を提供することを目的とする。   In consideration of the above situation, the program model checking method extracts repetition factors from the properties of the pseudo system and generates an optimal equivalence class taking into account the conditions for stopping the repetition due to the factors. Accordingly, an object of the present invention is to provide a data generation program, a data generation device, and a data generation method that reduce unnecessary repetition.

態様のひとつは、繰り返し要因特定処理、繰り返し停止条件抽出処理、最適化同値クラス生成処理を実行する。
繰り返し要因特定処理は、記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成されるプロパティから帰結部を抽出する。そして、前記帰結部を構成する部分式が予め決められた再帰的定義の形式により記述されているか判定し、前記形式で記述されていれば要因式と特定する。さらに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定する。繰り返し停止条件抽出処理は、前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出する。抽出した部分式である条件式を否定した否定条件式を作成し、前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出する。最適化同値クラス生成処理は、前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する。
In one aspect, a repetition factor identification process, a repetition stop condition extraction process, and an optimized equivalence class generation process are executed.
In the repetitive factor specifying process, a result part is extracted from a property constituted by a condition part and a result part used for model checking of the pseudo system recorded in the recording part. Then, the partial expression constituting the consequent portion is determined whether it is described in the form of a predetermined recursive definition, identifying said type factor if it is described by the equation. Further, a recursive variable included in the factor expression is identified and used as a recursive variable, and a factor variable that is a repetition factor included in the factor expression is specified based on the factor expression and the recursive variable. The repeated stop condition extraction processing extracts a sub-expression including the recursive variable from the equivalence class corresponding to the factor property including the factor expression. A negative conditional expression that negates the extracted conditional expression is created, and a repeated stop condition for the factor variable is calculated based on the negative conditional expression and the factor expression. In the optimized equivalence class generation process, an optimized equivalence class is generated based on the conditional expression and the iterative stop condition, and recorded in the recording unit.

擬似システムのプロパティから繰り返しの要因を抽出し、当該要因による繰り返しを停止させる条件を加味した最適な同値クラスを生成することにより、無駄な繰り返しを減少させることができる。   By extracting the factor of repetition from the properties of the pseudo system and generating an optimal equivalence class that takes into account the condition for stopping the repetition due to the factor, useless repetition can be reduced.

実施例1の構成を示す図である。1 is a diagram illustrating a configuration of Example 1. FIG. プロパティと同値クラスの関係を示す図である。It is a figure which shows the relationship between a property and an equivalence class. プロパティP1〜P3に対する同値クラスと最適化同値クラスのモデル検査の比較結果を示す図である。It is a figure which shows the comparison result of the model check of the equivalence class with respect to properties P1-P3, and an optimization equivalence class. データ生成装置1の詳細な構成を示す図である。2 is a diagram illustrating a detailed configuration of a data generation device 1. FIG. プロパティテーブルと同値クラステーブルの構造を示す図である。It is a figure which shows the structure of a property table and an equivalence class table. データ生成装置1の動作を示すフロー図である。FIG. 6 is a flowchart showing the operation of the data generation device 1. 帰結式テーブル、要因テーブルの構造を示す図である。It is a figure which shows the structure of a consequence formula table and a factor table. 停止条件テーブルの構造を示す図である。It is a figure which shows the structure of a stop condition table. 同値クラステーブルの構造を示す図である。It is a figure which shows the structure of an equivalence class table. 本発明を実現させるためのシステム構成を示したブロック図であるIt is the block diagram which showed the system configuration | structure for implement | achieving this invention 従来のモデル検査を実施するときに用いる構成を示す図である。It is a figure which shows the structure used when implementing the conventional model check.

以下図面に基づいて、本発明の実施形態について詳細を説明する。
(実施例1)
図1は、擬似システムである検査対象プログラムのモデル検査を行うシステムの構成を示す図である。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Example 1
FIG. 1 is a diagram illustrating a configuration of a system that performs model checking of a test target program that is a pseudo system.

データ生成装置1は、検査対象プログラムと、検査対象プログラムの実行を制御するドライバと、機能仕様を示すプロパティ8を用いて、プロパティ8に示される機能仕様が満たされているかを判定するモデル検査装置(図1に不図示)に入力する入力データを生成
する。
また、モデル検査に用いる入力データを生成するデータ生成装置1は、繰り返し要因特定部2、繰り返し停止条件抽出部3、最適化同値クラス生成部4を備えている。
The data generation apparatus 1 uses a test target program, a driver that controls execution of the test target program, and a property 8 indicating the functional specification to determine whether the functional specification indicated by the property 8 is satisfied. Input data to be input (not shown in FIG. 1) is generated.
The data generation device 1 that generates input data used for model checking includes a repetition factor specifying unit 2, a repetition stop condition extraction unit 3, and an optimized equivalence class generation unit 4.

(繰り返し要因特定処理)
繰り返し要因特定部2は、記録部に記録されている擬似システムのモデル検査に用いるプロパティ8から帰結部を抽出する。例えば、プロパティ8には、仕様書や設計書に記載された機能仕様が「A(条件部)ならばB(帰結部)」(A−>B)の形で示されている(図2参照)。帰結部はBに当たる部分である。
(Repetition factor identification processing)
The repetition factor specifying unit 2 extracts a result unit from the property 8 used for model checking of the pseudo system recorded in the recording unit. For example, in the property 8, the functional specification described in the specification or design document is indicated in the form of “A (condition part) if B (consecutive part)” (A-> B) (see FIG. 2). ). The consequent part is the part that hits B.

図2のP1の場合であれば、条件部が、(10≦在庫数−数量)and(顧客コード!=null)であり、帰結部が(メッセージ=null)and(在庫数(after)=在庫数−数量)である。また、帰結部の特定は「→」を検出して、「→」の後段にある文字列を帰結部に特定する方法が考えられる。   In the case of P1 in FIG. 2, the condition part is (10 ≦ stock quantity−quantity) and (customer code! = Null), and the result part is (message = null) and (stock quantity (after) = stock). Number-quantity). Also, the consequent part may be identified by detecting “→” and identifying the character string following “→” as the consequent part.

次に、帰結部を構成する部分式が予め決められた形式で記述されているか判定し、予め決められた形式で記述されていれば要因式と再帰変数を特定する。
帰結部を構成する部分式とは、図2のP1の場合であれば、帰結部が(メッセージ=null)and(在庫数(after)=在庫数−数量)であり、部分式は(メッセージ=null)と(在庫数(after)=在庫数−数量)のことである。部分式の特定は「and」(論理積)を検出して、「and」の前後の文字列を分割して特定する方法が考えられる。
Next, it is determined whether or not the sub-expression constituting the consequent part is described in a predetermined format. If the sub-expression is described in a predetermined format, a factor expression and a recursive variable are specified.
In the case of P1 in FIG. 2, the subexpression constituting the consequent section is (message = null) and (stock quantity (after) = stock quantity-quantity), and the subexpression is (message = null) and (stock quantity (after) = stock quantity-quantity). As a method for specifying a sub-expression, a method of detecting “and” (logical product) and dividing and specifying a character string before and after “and” can be considered.

要因式と再帰変数の特定は、予め決められた形式var(after)=op(var,var’)のような再帰的な式(予め決められた再帰的定義により記載された式)されている部分式であるかを判定する。ここで、opは2項演算子(例えば+、−)であり、varは再帰変数を示している。   The factor expression and the recursive variable are identified by a recursive expression (an expression described by a predetermined recursive definition) in a predetermined format var (after) = op (var, var ′). Determine if it is a subexpression. Here, op is a binary operator (for example, +, −), and var indicates a recursive variable.

図2のP1の場合であれば、部分式(在庫数(after)=在庫数−数量)が再帰的な式で表されていることがわかる。つまり、在庫数が再帰変数(var)であり、在庫数を含む部分式を要因式(再帰的な式)として特定する。また、要因式を含むプロパティを特に要因プロパティと呼ぶ。   In the case of P1 in FIG. 2, it can be seen that the sub-expression (stock quantity (after) = stock quantity-quantity) is represented by a recursive formula. That is, the inventory quantity is a recursive variable (var), and a partial expression including the inventory quantity is specified as a factor expression (recursive expression). A property including a factor expression is particularly called a factor property.

次に、要因式と再帰変数に基づいて、要因式に含まれる繰り返しの要因となる要因変数を特定する。要因変数の特定は、上記var(after)=op(var,var’)のvar’に相当する変数である。図2のP1のプロパティの場合であれば、要因変数は、要因式(在庫数(after)=在庫数−数量)の数量に相当する。
その後、特定した要因式、再帰変数、要因変数は記録部に記録される。
Next, based on the factor expression and the recursive variable, a factor variable that becomes a repetition factor included in the factor expression is specified. The identification of the factor variable is a variable corresponding to var ′ of the above var (after) = op (var, var ′). In the case of the property of P1 in FIG. 2, the factor variable corresponds to the quantity of the factor expression (stock quantity (after) = stock quantity-quantity).
Thereafter, the specified factor expression, recursive variable, and factor variable are recorded in the recording unit.

(繰り返し停止条件抽出処理)
繰り返し停止条件抽出部3は、記録部に記録されている要因式を含む要因プロパティに対応する同値クラスから再帰変数を含む部分式を抽出する。
(Repeated stop condition extraction process)
The repeated stop condition extraction unit 3 extracts a sub-expression including a recursive variable from the equivalence class corresponding to the factor property including the factor expression recorded in the recording unit.

ここで、同値クラスは、境界値分析装置7によりプロパティに基づいて生成される。同値クラスの生成について詳しい説明はしないが、図2のP1の例であれば、境界値分析装置7は、条件部(10≦在庫数−数量)and(顧客コード!=null)を特定する。そして、予め決められた変数を含む部分式を特定する。本例では、部分式(10≦在庫数−数量)が特定される。次に、同値分割を行い、例えば、在庫数=100、数量>0の条件で、部分式(10≦在庫数−数量)に対する同値クラスを求める。その結果、図2の同値クラスのC1に示すような0<数量≦90が求められる。さらに、代表値選択を行い、
代表値を求める。本例では図2の代表値のC1に示すような数量=1が求められる。このように求められた同値クラスは、各プロパティと関連付けて記録部に記録される。
Here, the equivalence class is generated by the boundary value analyzer 7 based on the property. The generation of the equivalence class will not be described in detail, but in the example of P1 in FIG. 2, the boundary value analysis device 7 specifies the condition part (10 ≦ the number of stocks−quantity) and (customer code! = Null). Then, a partial expression including a predetermined variable is specified. In this example, a sub-expression (10 ≦ number of inventory−quantity) is specified. Next, equivalence division is performed, and for example, an equivalence class for a sub-expression (10 ≦ stock quantity−quantity) is obtained under the condition of inventory quantity = 100 and quantity> 0. As a result, 0 <quantity ≦ 90 as shown in C1 of the equivalence class in FIG. 2 is obtained. Furthermore, representative value selection is performed,
Obtain a representative value. In this example, the quantity = 1 as shown by the representative value C1 in FIG. 2 is obtained. The equivalence class obtained in this way is recorded in the recording unit in association with each property.

次に、各プロパティに対応して求められた同値クラスから、要因プロパティに対応する同値クラスを特定し、特定した同値クラス内の再帰変数を含む部分式(条件式)を抽出する。例えば、(在庫数(after)=在庫数−数量)に対応する再帰変数(在庫数)を含む条件式は(数量<=在庫数−10)になる。   Next, the equivalence class corresponding to the factor property is identified from the equivalence class obtained corresponding to each property, and the subexpression (conditional expression) including the recursive variable in the identified equivalence class is extracted. For example, a conditional expression including a recursive variable (stock quantity) corresponding to (stock quantity (after) = stock quantity−quantity) becomes (quantity <= stock quantity−10).

次に、条件式を否定した否定条件式を作成する。例えば、条件式(数量<=在庫数−10)の否定条件式は(在庫数−10<数量)になる。
その後、否定条件式と要因式に基づいて要因変数に関する繰り返し停止条件を算出する。算出した否定条件式に対して、再帰的変数部分に要因式を代入することで、要因変数に関する繰り返し停止条件を求める。例えば、あるプロパティに対して再帰的処理(繰り返し同じ処理)が実行されるような場合に、繰り返し同じ処理が続かないように、該プロパティが満たされない条件を求める。
Next, a negative conditional expression that negates the conditional expression is created. For example, the negative conditional expression of the conditional expression (quantity <= stock quantity−10) becomes (stock quantity−10 <quantity).
Thereafter, the repeated stop condition for the factor variable is calculated based on the negative condition formula and the factor formula. By substituting the factor expression into the recursive variable part for the calculated negative condition expression, the repeated stop condition for the factor variable is obtained. For example, when a recursive process (repeatedly the same process) is performed on a certain property, a condition that the property is not satisfied is obtained so that the same process is not continued repeatedly.

例えば、否定条件式が(在庫数−10<数量)の場合、“在庫数”に要因式の“在庫数(after)”を代入し、(在庫数−数量)−10<数量を生成する。さらに、この(在庫数−数量)−10<数量を、数量に関して変形して繰り返し停止条件となる数量>(在庫数-10/2)を生成する。その後、繰り返し停止条件を記録部に記録する。   For example, if the negative conditional expression is (stock quantity−10 <quantity), the “stock quantity (after)” of the factor expression is substituted into “stock quantity” to generate (stock quantity−quantity) −10 <quantity. Further, this (number of stocks-quantity) -10 <quantity is transformed with respect to the quantity to repeatedly generate a quantity that becomes a stop condition> (stock quantity-10 / 2). Thereafter, the repeated stop condition is recorded in the recording unit.

(最適化同値クラス生成処理)
最適化同値クラス生成部4は、条件式と繰り返し停止条件との論理積を作成して要因変数に関する条件式を再構築し、再構築した該条件式に前記要因変数以外の変数に関する条件式を加えた最適化同値クラスを生成する。
(Optimized equivalence class generation process)
The optimized equivalence class generation unit 4 creates a logical product of the conditional expression and the repeated stop condition, reconstructs the conditional expression regarding the factor variable, and adds the conditional expression regarding the variable other than the factor variable to the reconstructed conditional expression. Generate the added optimized equivalence class.

最適化同値クラスは、要因変数に対する元の同値クラスを狭め、要因プロパティが1度満された後、2度目の同じ要因プロパティを満たされないようにするものである。
例えば、条件式(数量<=在庫数−10)と繰り返し停止条件と数量>(在庫数-10/2)に基づいて(在庫数-10/2)<数量<=在庫数−10を生成する。図2のP1のプロパティの場合であれば、次のような最適化同値クラス10が生成される。
((在庫数-10/2)<数量<=在庫数−10)and(顧客コード!=null)
The optimized equivalence class narrows the original equivalence class for the factor variable so that after the factor property is filled once, the same factor property is not satisfied the second time.
For example, based on the conditional expression (quantity <= stock quantity−10) and repeated stop condition and quantity> (stock quantity−10 / 2), (stock quantity−10 / 2) <quantity <= stock quantity−10 is generated. . In the case of the property of P1 in FIG. 2, the following optimized equivalence class 10 is generated.
((Stock quantity -10/2) <quantity <= stock quantity-10) and (customer code! = Null)

図3に、図2に示したプロパティP1〜P3に対する同値クラスと最適化同値クラスのモデル検査の比較結果を示す。
プロパティP1の場合には、同値クラスのC1は0<数量≦90、C2は90<数量≦100、C3は100<数量である。代表値のC1が数量=1、C2が数量=100、C3が数量=101である。よって、同値クラスの場合、89回の購入処理が繰り返される。つまり、既存の境界値分析をもとに作成された代表値から状態空間を作成すると、代表値の取り方に依存して、イベントが起こっても同様の局面を表わすサブグラフが複数繰り返して出現する(充足するプロパティの集合が変化しない状態が続く)。
FIG. 3 shows a comparison result of model checking between the equivalence class and the optimized equivalence class for the properties P1 to P3 shown in FIG.
In the case of the property P1, C1 of the equivalence class is 0 <quantity ≦ 90, C2 is 90 <quantity ≦ 100, and C3 is 100 <quantity. The representative value C1 is quantity = 1, C2 is quantity = 100, and C3 is quantity = 101. Therefore, in the case of the equivalence class, 89 purchase processes are repeated. In other words, when a state space is created from representative values created based on the existing boundary value analysis, depending on how the representative values are taken, multiple subgraphs representing the same situation appear repeatedly even if an event occurs. (The set of satisfying properties does not change).

しかし、最適化同値クラスを用いると、((在庫数-10/2)<数量<=在庫数−10)and(顧客コード!=null)により、45<数量<=90の代表値が数量=46となるので1回の処理で状態が収束することがわかる。   However, when the optimized equivalence class is used, a representative value of 45 <quantity <= 90 is represented by quantity = ((stock quantity−10 / 2) <quantity <= stock quantity−10) and (customer code! = Null). Since it becomes 46, it turns out that a state converges by one process.

つまり、擬似システムのプロパティから繰り返しの要因となる再帰変数を抽出し、当該再帰変数による繰り返し(サブグラフ)を停止させる条件を加味した最適化した同値クラスを生成することにより、本来検査すべき場合分けを保ちつつ、無駄な繰り返しを減少させることができる。   In other words, by extracting the recursive variable that causes the repetition from the properties of the pseudo system and generating an optimized equivalence class that takes into account the condition for stopping the repetition (subgraph) by the recursive variable, the classification of cases that should be inspected originally It is possible to reduce wasteful repetition while maintaining the above.

(実施例2)
図4は、データ生成装置1の詳細な構成を示す図である。
データ生成装置1の繰り返し要因特定部2は、要因式抽出部41、要因変数抽出部42を備えている。
データ生成装置1の繰り返し停止条件抽出部3は、要因変数条件式抽出部43、停止条件抽出部44を備えている。
(Example 2)
FIG. 4 is a diagram illustrating a detailed configuration of the data generation device 1.
The repetition factor specifying unit 2 of the data generation device 1 includes a factor expression extracting unit 41 and a factor variable extracting unit 42.
The repeated stop condition extraction unit 3 of the data generation device 1 includes a factor variable conditional expression extraction unit 43 and a stop condition extraction unit 44.

また、データ生成装置1は、記録部として帰結式格納部45(帰結式テーブル)、要因格納部46(要因テーブル)、停止条件格納部47(停止条件テーブル)、プロパティ格納部48(プロパティテーブル)、同値クラス格納部49(同値クラステーブル)を備えている。   In addition, the data generation device 1 has a consequence storage unit 45 (consequence table), a factor storage unit 46 (factor table), a stop condition storage unit 47 (stop condition table), and a property storage unit 48 (property table) as recording units. The equivalence class storage unit 49 (equivalence class table) is provided.

要因式抽出部41は要因式を抽出する。プロパティ格納部48(プロパティテーブル)に記録されている擬似システムのモデル検査に用いるプロパティから帰結部を抽出し、帰結部を構成する部分式が予め決められた再帰的定義により記述されているかを判定する。そして、予め決められた式で記述されていれば要因式を抽出し、要因格納部46(要因テーブル)に記録する。さらに、該要因式に含まれる再帰的な変数を特定し再帰変数を要因格納部46(要因テーブル)に記録する。   The factor expression extraction unit 41 extracts a factor expression. Extracts the consequent part from the properties used for model checking of the pseudo system recorded in the property storage part 48 (property table), and determines whether the subexpression constituting the consequent part is described by a predetermined recursive definition To do. If it is described in a predetermined formula, the factor formula is extracted and recorded in the factor storage unit 46 (factor table). Further, a recursive variable included in the factor expression is specified, and the recursive variable is recorded in the factor storage unit 46 (factor table).

要因変数抽出部42は、要因式と再帰変数に基づいて、要因式に含まれる繰り返しの要因となる要因変数を抽出し、要因変数を要因格納部46(要因テーブル)に記録する。
要因変数条件式抽出部43は、同値クラス格納部49(同値クラステーブル)要因式を含む要因プロパティに対応する同値クラスから再帰変数を含む部分式(制約式)を抽出する。
The factor variable extracting unit 42 extracts a factor variable that becomes a repetition factor included in the factor formula based on the factor expression and the recursive variable, and records the factor variable in the factor storage unit 46 (factor table).
The factor variable conditional expression extraction unit 43 extracts a partial expression (constraint expression) including a recursive variable from the equivalence class corresponding to the factor property including the equivalence class storage unit 49 (equivalence class table) factor expression.

停止条件抽出部44は、抽出した部分式(制約式)である条件式を否定した否定条件式を作成し、否定条件式と要因式に基づいて要因変数に関する繰り返し停止条件を算出し、繰り返し停止条件を停止条件格納部47(停止条件テーブル)に記録する。   The stop condition extraction unit 44 creates a negative conditional expression that negates the conditional expression that is the extracted partial expression (constraint expression), calculates a repeated stop condition related to the factor variable based on the negative conditional expression and the factor expression, and repeatedly stops. The condition is recorded in the stop condition storage unit 47 (stop condition table).

帰結式格納部45は、後述する帰結式テーブルを有している(図7)。要因格納部46は、後述する要因テーブルを有している(図7)。停止条件格納部47は、後述する停止条件テーブルを有している(図8)。プロパティ格納部48は、図5に示すプロパティテーブルを有している。同値クラス格納部49は、図5に示す同値クラステーブルを有している。   The consequence formula storage unit 45 has a consequence formula table described later (FIG. 7). The factor storage unit 46 has a factor table described later (FIG. 7). The stop condition storage unit 47 has a stop condition table to be described later (FIG. 8). The property storage unit 48 has a property table shown in FIG. The equivalence class storage unit 49 has an equivalence class table shown in FIG.

図5は、プロパティテーブルと同値クラステーブルの構造を示す図である。
プロパティテーブルは、「プロパティID」「プロパティ式」を有している。「プロパティID」にはプロパティを識別するために付される識別番号が記録されている。図5の例ではP1〜P3が記録されている。「プロパティ式」には、識別番号に関連付けられたプロパティ(条件部→帰結部:プロパティ式)が記録されている。図5の例では、P1に(10<=在庫数−数量)and(顧客コード!=null)→(メッセージ==null)and(在庫数(after)==在庫数−数量)が連付けられている。同様に、P2、P3にもプロパティが関連付けられている。
FIG. 5 is a diagram showing the structure of the property table and the equivalence class table.
The property table has “property ID” and “property expression”. In “Property ID”, an identification number assigned to identify a property is recorded. In the example of FIG. 5, P1 to P3 are recorded. In the “property expression”, a property (condition part → result part: property expression) associated with the identification number is recorded. In the example of FIG. 5, (10 <= stock quantity-quantity) and (customer code! = Null) → (message == null) and (stock quantity (after) == stock quantity-quantity) are linked to P1. ing. Similarly, properties are associated with P2 and P3.

同値クラステーブルは、「同値クラスID」「プロパティID」「制約式」を有している。「同値クラスID」には、プロパティIDに対応する同値クラスの識別番号が記録されている。図5の例ではC1〜C3が記録されている。「制約式」には、同値クラスIDに関連付けられた制約式が記録されている。図5の例では、C1に(0<数量<=在庫数−10)AND(顧客コード!=null)が連付けられている。同様に、C2、C3に
も制約式が関連付けられている。
The equivalence class table has “equivalence class ID”, “property ID”, and “constraint expression”. In “equivalent class ID”, the identification number of the equivalent class corresponding to the property ID is recorded. In the example of FIG. 5, C1 to C3 are recorded. In the “constraint formula”, a constraint formula associated with the equivalence class ID is recorded. In the example of FIG. 5, (0 <quantity <= stock quantity−10) AND (customer code! = Null) is linked to C1. Similarly, constraint expressions are associated with C2 and C3.

図6は、データ生成装置1の動作を示すフロー図である。
ステップS1では、プロパティテーブル内に処理すべきプロパティが残っているかを判定する。繰り返し要因特定部2が備える制御機能により、プロパティテーブルに記録されている全てのプロパティ式について、ステップS2の処理をしたかを判定して、全ての処理が完了していればステップS3に移行し、まだ処理すべきプロパティが残っていればステップS2に移行する。図5の例では、P1〜P3間での処理がされたか否かを判定する。
FIG. 6 is a flowchart showing the operation of the data generation device 1.
In step S1, it is determined whether there are properties to be processed remaining in the property table. The control function of the repetition factor specifying unit 2 determines whether or not the processing in step S2 has been performed for all the property expressions recorded in the property table. If all the processing has been completed, the process proceeds to step S3. If there are still properties to be processed, the process proceeds to step S2. In the example of FIG. 5, it is determined whether or not processing between P1 and P3 has been performed.

ステップS2では、要因式抽出部41が該当プロパティの帰結部分を帰結式テーブルに設定する。
帰結式テーブルは、図7に示すように「帰結ID」「プロパティID」「帰結式」を有している。「帰結ID」には、上記説明したプロパティIDに関連付けられた各プロパティの帰結部の識別番号が記録される。「帰結ID」には図7ではP1’〜 P3’が記録されている。「帰結式」は、上記説明した帰結IDに関連付けられた各プロパティの帰結部が記録されている。図7ではP1’に関連付けられた帰結式(メッセージ=null)and(在庫数(after)=在庫数−数量)が記録される。同様に、P2’P3’にも帰結式が関連付けられている。
In step S <b> 2, the factor expression extraction unit 41 sets the result part of the property in the result table.
As shown in FIG. 7, the result formula table has “result ID”, “property ID”, and “result formula”. In the “result ID”, the identification number of the result portion of each property associated with the property ID described above is recorded. In FIG. 7, P1 ′ to P3 ′ are recorded in the “consequence ID”. In the “result formula”, a result portion of each property associated with the result ID described above is recorded. In FIG. 7, the consequent expression (message = null) and (stock quantity (after) = stock quantity-quantity) associated with P1 ′ is recorded. Similarly, P2′P3 ′ is also associated with a consequence equation.

ステップS3では、帰結式テーブル内に処理すべき式が残っているかを判定する。繰り返し要因特定部2が備える制御機能により、プロパティテーブルに記録されている全てのプロパティ式について、後述するステップS4〜S5の処理をしたかを判定して、全ての処理が完了していればステップS6に移行し、まだ処理すべきプロパティが残っていればステップS4に移行する。   In step S3, it is determined whether or not an expression to be processed remains in the result expression table. It is determined whether or not the processing of steps S4 to S5 described later has been performed for all the property expressions recorded in the property table by the control function provided in the repetition factor specifying unit 2, and if all the processing is completed, the step is performed. The process proceeds to S6, and if there are still properties to be processed, the process proceeds to Step S4.

ステップS4では、要因式抽出部41が帰結式テーブルの該当帰結部に再帰的定義が含まれるかを判定する。再帰的定義が含まれていればステップS5に移行し、含まれていなければステップS6に移行する。例えば、要因式抽出部41は、帰結式テーブルの該当帰結部に予め決められた形式var(after)=op(var,var’)のような再帰的な式で記載されている部分式があるかを判定する。ここで、opは2項演算子(例えば+,−)であり、varは再帰変数を示している。var(after)はop(var,var’)の演算後の値であることを示している。   In step S4, the factor expression extraction unit 41 determines whether or not a recursive definition is included in the corresponding result part of the result formula table. If the recursive definition is included, the process proceeds to step S5, and if not included, the process proceeds to step S6. For example, the factor expression extraction unit 41 has a sub-expression described in a recursive expression such as a predetermined format var (after) = op (var, var ′) in a corresponding consequent part of the consequent expression table. Determine whether. Here, op is a binary operator (for example, +, −), and var indicates a recursive variable. var (after) indicates a value after the operation of op (var, var ').

図7の帰結式テーブルのP1’に関連付けられた帰結式の場合であれば、部分式(在庫数(after)=在庫数−数量)が再帰的な式で表されていることがわかる。つまり、在庫数が再帰変数(var)であり、在庫数を含む部分式を要因式(再帰的な式)として特定する。また、要因式を含むプロパティを特に要因プロパティと呼ぶ。   In the case of the consequent expression associated with P1 'in the consequent expression table of FIG. 7, it can be seen that the sub-expression (stock quantity (after) = stock quantity-quantity) is represented by a recursive expression. That is, the inventory quantity is a recursive variable (var), and a partial expression including the inventory quantity is specified as a factor expression (recursive expression). A property including a factor expression is particularly called a factor property.

次に、要因変数抽出部42が要因テーブルの要因式と再帰変数に基づいて、要因式に含まれる繰り返しの要因となる要因変数を特定する。要因変数の特定は、上記var(after)=op(var,var’)のvar’に相当する変数である。図7のP1のプロパティの場合であれば、要因変数は、要因式(在庫数(after)=在庫数−数量)の数量に相当する。   Next, the factor variable extracting unit 42 identifies a factor variable that becomes a repetition factor included in the factor formula based on the factor expression and the recursive variable in the factor table. The identification of the factor variable is a variable corresponding to var 'of the above var (after) = op (var, var'). In the case of the property of P1 in FIG. 7, the factor variable corresponds to the quantity of the factor expression (stock quantity (after) = stock quantity-quantity).

ステップS5では、要因式抽出部41と要因変数抽出部42が特定した要因式、再帰変数、要因変数を、要因式抽出部41と要因変数抽出部42が要因テーブルに記録する。
要因テーブルは、「要因ID」「要因プロパティ」「要因式」「要因変数」「再帰変数」を有している。「要因ID」は要因式に関連付けられた識別番号であり、要因式を含むプロパティにも関連付けられている。図7の要因テーブルの場合であればF1が記録されている。「要因プロパティ」には要因式を含むプロパティの識別番号が記録される。図7の要因テーブルの場合であればP1が記録される。「要因式」には、要因式が記録されている。図7の要因テーブルの場合であれば、F1とP1に要因式(在庫数(after)=在庫数−数量)が関連付けられて記録される。また、「要因変数」と「再帰変数」には、該当する要因式に関連する要因変数と再帰変数が記録される。図7の要因テーブルの場合であれば数量と在庫数がF1とP1に関連付けられて記録される。
In step S5, the factor expression extracting unit 41 and the factor variable extracting unit 42 record the factor expression, recursive variable, and factor variable specified by the factor expression extracting unit 41 and the factor variable extracting unit 42 in the factor table.
The factor table includes “factor ID”, “factor property”, “factor expression”, “factor variable”, and “recursive variable”. “Factor ID” is an identification number associated with a factor expression, and is also associated with a property including the factor expression. In the case of the factor table of FIG. 7, F1 is recorded. In “Factor property”, the identification number of the property including the factor expression is recorded. In the case of the factor table of FIG. 7, P1 is recorded. In “Factor formula”, a factor formula is recorded. In the case of the factor table shown in FIG. 7, a factor expression (stock quantity (after) = stock quantity-quantity) is associated with F1 and P1 and recorded. In addition, a factor variable and a recursive variable related to the corresponding factor expression are recorded in “factor variable” and “recursive variable”. In the case of the factor table of FIG. 7, the quantity and the inventory quantity are recorded in association with F1 and P1.

ステップS6では、要因テーブル内に処理すべき要因式が残っているかを判定する。繰り返し停止条件抽出部3が備える制御機能により、要因テーブルに記録されている全ての要因式について、後述するステップS7の処理をしたかを判定して、全ての処理が完了していればステップS8に移行し、まだ処理すべき要因式が残っていればステップS6に移行する。   In step S6, it is determined whether or not a factor expression to be processed remains in the factor table. It is determined by the control function provided in the repeated stop condition extraction unit 3 whether or not all the factor expressions recorded in the factor table have been processed in step S7, which will be described later. If all the processes have been completed, step S8 is performed. If there is still a factor expression to be processed, the process proceeds to step S6.

ステップS7では、要因変数条件式抽出部43が、該当要因式の要因プロパティに対応する同値クラス内の要因変数に対応する条件式(制約式)を抽出し、停止条件テーブルに記録する。   In step S7, the factor variable conditional expression extraction unit 43 extracts a conditional expression (constraint expression) corresponding to the factor variable in the equivalence class corresponding to the factor property of the corresponding factor expression and records it in the stop condition table.

停止条件テーブルは、「停止条件ID」「元同値クラス」「元制約式」「停止条件」を有している。「停止条件ID」には、要因プロパティに対応する同値クラスの識別番号C1に関連付けられた識別番号が記録される。図8の場合であればS1が記録される。「元同値クラス」には、要因プロパティに対応する同値クラスの識別番号が記録されている。図8の場合であればC1が記録される。「元制約式」には、同値クラステーブルに記録された制約式の要因変数と再帰変数に関連する部分式が記録される。   The stop condition table has “stop condition ID”, “original equivalence class”, “original constraint equation”, and “stop condition”. In the “stop condition ID”, an identification number associated with the identification number C1 of the equivalence class corresponding to the factor property is recorded. In the case of FIG. 8, S1 is recorded. In the “original equivalence class”, the identification number of the equivalence class corresponding to the factor property is recorded. In the case of FIG. 8, C1 is recorded. In the “original constraint formula”, the sub-expression related to the factor variable and the recursive variable of the constraint formula recorded in the equivalence class table is recorded.

図8のS1の例であれば、図5の制約式(0<数量<=在庫数−10)AND(顧客コード!=null)を特定し、要因変数と再帰変数を含む部分式を特定する。本例では、部分式(0<数量<=在庫数−10)が特定され、(0<数量<=在庫数−10)は同値クラステーブルの制約式としてS1に関連付けて記録される。   In the example of S1 in FIG. 8, the constraint expression (0 <quantity <= stock quantity−10) AND (customer code! = Null) in FIG. 5 is specified, and the subexpression including the factor variable and the recursive variable is specified. . In this example, a partial expression (0 <quantity <= stock quantity−10) is specified, and (0 <quantity <= stock quantity−10) is recorded in association with S1 as a constraint expression of the equivalence class table.

ステップS8では、停止条件テーブル内に処理すべき停止条件が残っているかを判定する。繰り返し停止条件抽出部3が備える制御機能により、停止条件テーブルに記録されている全ての停止条件について、後述するステップS9〜S10の処理をしたかを判定して、全ての処理が完了していればステップS11に移行し、まだ処理すべきプロパティが残っていればステップS9に移行する。   In step S8, it is determined whether a stop condition to be processed remains in the stop condition table. With the control function provided in the repeated stop condition extraction unit 3, it is determined whether all the stop conditions recorded in the stop condition table have been processed in steps S9 to S10 described later, and all the processes have been completed. If the property to be processed still remains, the process proceeds to step S9.

ステップS9では、停止条件抽出部44が、該当停止条件の元制約式の否定を作成する。条件式を否定した否定条件式を作成する。例えば、条件式(制約式)(数量<=在庫数−10)の否定条件式は(在庫数−10<数量)になる。   In step S9, the stop condition extraction unit 44 creates negation of the original constraint expression of the corresponding stop condition. Create a negative conditional expression that negates the conditional expression. For example, the negative conditional expression of the conditional expression (constraint expression) (quantity <= stock quantity−10) becomes (stock quantity−10 <quantity).

ステップS10では、停止条件抽出部44が、作成した否定式内の再帰的変数部分に該当要因式を代入した式を、停止条件テーブルに記録する。算出した否定条件式に対して、再帰的変数部分に要因式を代入することで、要因変数に関する繰り返し停止条件を求める。   In step S10, the stop condition extraction unit 44 records an expression in which the corresponding factor expression is substituted into the recursive variable portion in the created negative expression in the stop condition table. By substituting the factor expression into the recursive variable part for the calculated negative condition expression, the repeated stop condition for the factor variable is obtained.

例えば、否定条件式が(在庫数−10<数量)の場合、“在庫数”に要因式の“在庫数(after)”を代入し、(在庫数−数量)−10<数量を生成する。さらに、この(在庫数−数量)−10<数量を、数量に関して変形して繰り返し停止条件となる数量>(在庫数-10/2)を生成する。その後、繰り返し停止条件を停止条件テーブルに記録する。   For example, if the negative conditional expression is (stock quantity−10 <quantity), the “stock quantity (after)” of the factor expression is substituted into “stock quantity” to generate (stock quantity−quantity) −10 <quantity. Further, this (number of stocks-quantity) -10 <quantity is transformed with respect to the quantity to repeatedly generate a quantity that becomes a stop condition> (stock quantity-10 / 2). Thereafter, the repeated stop condition is recorded in the stop condition table.

ステップS11では、停止条件テーブル内に処理すべき停止条件が残っているかを判定する。最適化同値クラス生成部4が備える制御機能により、停止条件テーブルに記録されている全てのプロパティ式について、後述するステップS12〜S13の処理をしたかを判定して、全ての処理が完了していればENDに移行し、まだ処理すべき停止条件が残っていればステップS12に移行する。   In step S11, it is determined whether a stop condition to be processed remains in the stop condition table. With the control function provided in the optimized equivalence class generation unit 4, it is determined whether or not the processing of steps S12 to S13 described later has been performed for all the property expressions recorded in the stop condition table, and all the processing has been completed. If the stop condition to be processed still remains, the process proceeds to step S12.

ステップS12では、最適化同値クラス生成部4は、停止条件テーブルの元制約式と停止条件の論理積を作成する。例えば、停止条件テーブルの元制約式(数量<=在庫数−10)と停止条件と数量>(在庫数-10/2)に基づいて(在庫数-10/2)<数量<=在庫数−10を生成する。図2のP1のプロパティの場合であれば、次のような最適化同値クラスが生成される。
((在庫数-10/2)<数量<=在庫数−10)and(顧客コード!=null)
In step S12, the optimized equivalence class generation unit 4 creates a logical product of the original constraint expression and the stop condition in the stop condition table. For example, based on the original constraint formula (quantity <= stock quantity−10) and stop condition and quantity> (stock quantity−10 / 2) in the stop condition table, (stock quantity−10 / 2) <quantity <= stock quantity− 10 is generated. In the case of the property P1 in FIG. 2, the following optimized equivalence class is generated.
((Stock quantity -10/2) <quantity <= stock quantity-10) and (customer code! = Null)

ステップS13では、作成した論理積を図9に示すように同値クラステーブル内の対応する制約式に記録する。このとき現在の同値クラスに該論理積を上書きしてもよい。   In step S13, the created logical product is recorded in the corresponding constraint expression in the equivalence class table as shown in FIG. At this time, the logical product may be overwritten on the current equivalence class.

上記のように境界値分析後に上記実施例を適用することで、検査の観点(プロパティ群がきちんと検査されるという観点)において、必要かつ十分な状態空間(漏れ・無駄のない空間)を生成するドライバが生成される。モデル検査では一般的に容易に状態爆発を起こすため、特に無駄(繰り返し構造)を排除した状態空間は、探索時間の削減に大きく貢献するものであり、モデル検査技術の適用可能性を拡大する効果がある。   By applying the above-described embodiment after boundary value analysis as described above, a necessary and sufficient state space (a space free from leakage and waste) is generated from the viewpoint of inspection (the viewpoint that property groups are properly inspected). A driver is generated. Since model checking generally causes a state explosion easily, a state space that eliminates waste (repetitive structure) contributes greatly to reducing search time, and has the effect of expanding the applicability of model checking technology. There is.

(本発明の実施形態がコンピュータプログラムとして実現される場合の構成)
図10は、上記本発明の実施形態の装置を実現できるコンピュータのハードウェア構成の一例を示す図である。
(Configuration when the embodiment of the present invention is implemented as a computer program)
FIG. 10 is a diagram illustrating an example of a hardware configuration of a computer that can implement the apparatus according to the embodiment of the present invention.

コンピュータのハードウェア100は、CPU101、記録部102(ROM、RAM、ハードディスクドライブなど)、記録媒体読取装置103、入出力インタフェース104(入出力I/F)、通信インタフェース105(通信I/F)などを備えている。また、上記各構成部はバス106によってそれぞれ接続されている。   The computer hardware 100 includes a CPU 101, a recording unit 102 (ROM, RAM, hard disk drive, etc.), a recording medium reader 103, an input / output interface 104 (input / output I / F), a communication interface 105 (communication I / F), and the like. It has. Further, each of the above components is connected by a bus 106.

CPU101は、記録部102に格納されている上記説明した繰り返し要因特定処理、繰り返し停止条件抽出処理、最適化同値クラス生成処理を入力データに応じて実行する。
記録部102は、CPU101が実行するプログラムやデータが記録されている。また、帰結式格納部45、要因格納部46、停止条件格納部47、プロパティ格納部48、同値クラス格納部49を有している。また、ワークエリアなどとして使用される。
The CPU 101 executes the above-described repetition factor identification process, repetition stop condition extraction process, and optimized equivalence class generation process stored in the recording unit 102 according to input data.
The recording unit 102 records programs and data executed by the CPU 101. In addition, a consequent expression storage unit 45, a factor storage unit 46, a stop condition storage unit 47, a property storage unit 48, and an equivalence class storage unit 49 are provided. It is also used as a work area.

記録媒体読取装置103は、CPU101の制御にしたがって記録媒体103aに対するデータのリード/ライトを制御する。そして、記録媒体103a、記録媒体読取装置103の制御で書き込まれたデータを記憶したり、記録媒体103aに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体103aは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。   The recording medium reader 103 controls reading / writing of data with respect to the recording medium 103 a according to the control of the CPU 101. And the data written by control of the recording medium 103a and the recording medium reader 103 are memorize | stored, or the data memorize | stored in the recording medium 103a are read. The detachable recording medium 103a includes a computer readable recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. The magnetic recording device includes a hard disk device (HDD). Examples of the optical disc include a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only Memory), and a CD-R (Recordable) / RW (ReWritable). Magneto-optical recording media include MO (Magneto-Optical disk).

入出力インタフェース104には、入出力装置104a(マウス、キーボード、ディスプレイなど)が接続され、ユーザが入力した情報を受信し、バス106を介してCPU101に送信する。また、CPU101からの命令に従ってディスプレイの画面上に操作情報などを表示する。   An input / output device 104 a (mouse, keyboard, display, etc.) is connected to the input / output interface 104, receives information input by the user, and transmits it to the CPU 101 via the bus 106. Further, operation information and the like are displayed on the display screen in accordance with a command from the CPU 101.

通信インタフェース105は、必要に応じ、他のコンピュータとの間のLAN接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。   The communication interface 105 is an interface for LAN connection, Internet connection, or wireless connection with another computer as necessary. It is also connected to other devices and controls data input / output from external devices.

このようなハードウェア構成を有するコンピュータを1台または2台以上用いることによって、上記説明した各種処理機能(実施例で説明した処理(フローチャートなど))が実現される。その場合システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体103aに記録しておくことができる。   By using one or more computers having such a hardware configuration, the various processing functions described above (the processing described in the embodiments (such as flowcharts)) are realized. In that case, a program describing the processing contents of the functions that the system should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded in a computer-readable recording medium 103a.

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。   When distributing the program, for example, a portable recording medium such as a DVD or a CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。   The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.

また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。   The present invention is not limited to the above-described embodiment, and various improvements and modifications can be made without departing from the gist of the present invention.

以上実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成されるプロパティから帰結部を抽出し、前記帰結部を構成する部分式が予め決められた再帰的定義により記述されているか判定し、前記形式で記述されていれば要因式と特定するとともに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定する繰り返し要因特定処理と、
前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出し、抽出した部分式である条件式を否定した否定条件式を作成し、前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出する繰り返し停止条件抽出処理と、
前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する最適化同値クラス生成処理と、
を実行させることを特徴とするデータ生成プログラム。
(付記2)
最適化同値クラス生成処理は、
前記条件式と前記繰り返し停止条件との論理積を作成して要因変数に関する条件式を再構築し、再構築した該条件式に前記要因変数以外の変数に関する条件式を加えた最適化同値クラスを生成することを特徴とする付記1に記載のデータ生成プログラム。
(付記3)
記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成
されるプロパティから帰結部を抽出し、前記帰結部を構成する部分式が予め決められた再帰的定義により記述されているか判定し、前記形式で記述されていれば要因式と特定するとともに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定する繰り返し要因特定部と、
前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出し、抽出した部分式である条件式を否定した否定条件式を作成し、前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出する繰り返し停止条件抽出部と、
前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する最適化同値クラス生成部と、
を備えることを特徴とするデータ生成装置、
(付記4)
記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成されるプロパティから帰結部を抽出し、前記帰結部を構成する部分式が予め決められた再帰的定義により記述されているか判定し、
前記予め決められた形式で記述されていれば要因式と特定するとともに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、
前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定し、
前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出し、
前記抽出した部分式である条件式を否定した否定条件式を作成し、
前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出し、
前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する、
ことを特徴とするデータ生成方法。
(付記5)
最適化同値クラス生成部は、
前記条件式と前記繰り返し停止条件との論理積を作成して要因変数に関する条件式を再構築し、再構築した該条件式に前記要因変数以外の変数に関する条件式を加えた最適化同値クラスを生成することを特徴とする付記3に記載のデータ生成装置。
(付記6)
前記条件式と前記繰り返し停止条件との論理積を作成して要因変数に関する条件式を再構築し、再構築した該条件式に前記要因変数以外の変数に関する条件式を加えた最適化同値クラスを生成することを特徴とする付記4に記載のデータ生成方法。
Regarding the embodiment including the above-described examples, the following additional notes are further disclosed.
(Appendix 1)
On the computer,
The consequent part is extracted from the property composed of the condition part and the consequent part used for the model checking of the pseudo system recorded in the recording part, and the subexpressions constituting the consequent part are described by a predetermined recursive definition. If it is described in the format, it is specified as a factor expression, and a recursive variable included in the factor expression is specified as a recursive variable. Based on the factor expression and the recursive variable, the factor A repetition factor identification process that identifies a factor variable that is a repetition factor included in the expression;
Extracting the sub-expression including the recursive variable from the equivalence class corresponding to the factor property including the factor expression, creating a negative condition expression negating the conditional expression that is the extracted sub-expression, the negative condition expression and the factor expression A repeated stop condition extraction process for calculating a repeated stop condition for the factor variable based on
An optimized equivalence class generating process for generating an optimized equivalence class based on the conditional expression and the iterative stop condition and recording it in the recording unit;
A data generation program characterized in that
(Appendix 2)
The optimized equivalence class generation process
An optimized equivalence class is created by creating a logical product of the conditional expression and the repeated stop condition, reconstructing the conditional expression related to the factor variable, and adding the conditional expression related to the variable other than the factor variable to the reconstructed conditional expression The data generation program according to attachment 1, wherein the data generation program is generated.
(Appendix 3)
The consequent part is extracted from the property composed of the condition part and the consequent part used for the model checking of the pseudo system recorded in the recording part, and the subexpressions constituting the consequent part are described by a predetermined recursive definition. If it is described in the format, it is specified as a factor expression, and a recursive variable included in the factor expression is specified as a recursive variable. Based on the factor expression and the recursive variable, the factor A repetition factor identification part that identifies a factor variable that becomes a repetition factor included in the formula;
Extracting the sub-expression including the recursive variable from the equivalence class corresponding to the factor property including the factor expression, creating a negative condition expression negating the conditional expression that is the extracted sub-expression, the negative condition expression and the factor expression A repetitive stop condition extracting unit that calculates a repetitive stop condition related to the factor variable based on
An optimized equivalence class generating unit that generates an optimized equivalence class based on the conditional expression and the iterative stop condition and records it in the recording unit;
A data generation device comprising:
(Appendix 4)
The consequent part is extracted from the property composed of the condition part and the consequent part used for the model checking of the pseudo system recorded in the recording part, and the subexpressions constituting the consequent part are described by a predetermined recursive definition. Determine whether
If it is described in the predetermined format, it is specified as a factor expression, and a recursive variable included in the factor expression is specified as a recursive variable.
Based on the factor expression and the recursive variable, a factor variable that becomes a repetition factor included in the factor expression is specified,
Extract a sub-expression including the recursive variable from an equivalence class corresponding to a factor property including the factor expression,
Create a negative conditional expression that negates the conditional expression that is the extracted sub-expression,
Based on the negative conditional expression and the factor expression, a repeated stop condition for the factor variable is calculated,
Generate an optimized equivalence class based on the conditional expression and the repeated stop condition and record it in the recording unit,
A data generation method characterized by the above.
(Appendix 5)
The optimized equivalence class generator
An optimized equivalence class is created by creating a logical product of the conditional expression and the repeated stop condition, reconstructing the conditional expression related to the factor variable, and adding the conditional expression related to the variable other than the factor variable to the reconstructed conditional expression The data generation device according to attachment 3, wherein the data generation device generates the data.
(Appendix 6)
An optimized equivalence class is created by creating a logical product of the conditional expression and the repeated stop condition, reconstructing the conditional expression related to the factor variable, and adding the conditional expression related to the variable other than the factor variable to the reconstructed conditional expression The data generation method according to appendix 4, wherein the data is generated.

1 データ生成装置、
2 繰り返し要因特定部、
3 繰り返し停止条件抽出部、
4 最適化同値クラス生成部、
5 要因式・要因変数、
6 繰り返し停止条件、
7 境界値分析装置、
8 プロパティ、
9 プロパティ・同値クラス、
10 最適化同値クラス、
41 要因式抽出部、
42 要因変数抽出部、
43 要因変数条件式抽出部、
44 停止条件抽出部、
45 帰結式格納部、
46 要因格納部、
47 停止条件格納部、
48 プロパティ格納部、
49 同値クラス格納部、
1 data generator,
2 Repeat factor identification part,
3 Repeating stop condition extraction unit,
4 Optimization equivalence class generator,
5 factor expressions and factor variables,
6 Repeat stop condition,
7 Boundary value analyzer,
8 properties
9 properties and equivalence classes,
10 optimized equivalence classes,
41 factor expression extraction unit,
42 factor variable extractor,
43 factor variable conditional expression extraction unit,
44 Stop condition extraction unit,
45 Consecutive expression storage,
46 factor storage,
47 Stop condition storage unit,
48 property storage,
49 equivalence class storage,

Claims (4)

コンピュータに、
記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成されるプロパティから帰結部を抽出し、前記帰結部を構成する部分式が予め決められた再帰的定義の形式により記述されているか判定し、前記形式で記述されていれば要因式と特定するとともに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定する繰り返し要因特定処理と、
前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出し、抽出した部分式である条件式を否定した否定条件式を作成し、前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出する繰り返し停止条件抽出処理と、
前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する最適化同値クラス生成処理と、
を実行させることを特徴とするデータ生成プログラム。
On the computer,
Extracting the consequent part from the property composed of the condition part and the consequent part used for the model checking of the pseudo system recorded in the recording part, and the subexpression constituting the consequent part is in the form of a recursive definition determined in advance. It is determined whether it is described, and if it is described in the format, it is specified as a factor expression, a recursive variable included in the factor expression is specified as a recursive variable, and based on the factor expression and the recursive variable, Repetitive factor specifying processing for specifying a factor variable that becomes a repetitive factor included in the factor expression;
Extracting the sub-expression including the recursive variable from the equivalence class corresponding to the factor property including the factor expression, creating a negative condition expression negating the conditional expression that is the extracted sub-expression, the negative condition expression and the factor expression A repeated stop condition extraction process for calculating a repeated stop condition for the factor variable based on
An optimized equivalence class generating process for generating an optimized equivalence class based on the conditional expression and the iterative stop condition and recording it in the recording unit;
A data generation program characterized in that
最適化同値クラス生成処理は、
前記条件式と前記繰り返し停止条件との論理積を作成して要因変数に関する条件式を再構築し、再構築した該条件式に前記要因変数以外の変数に関する条件式を加えた最適化同値クラスを生成することを特徴とする請求項1に記載のデータ生成プログラム。
The optimized equivalence class generation process
An optimized equivalence class is created by creating a logical product of the conditional expression and the repeated stop condition, reconstructing the conditional expression related to the factor variable, and adding the conditional expression related to the variable other than the factor variable to the reconstructed conditional expression The data generation program according to claim 1, wherein the data generation program is generated.
記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成されるプロパティから帰結部を抽出し、前記帰結部を構成する部分式が予め決められた再帰的定義の形式により記述されているか判定し、前記形式で記述されていれば要因式と特定するとともに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定する繰り返し要因特定部と、
前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出し、抽出した部分式である条件式を否定した否定条件式を作成し、前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出する繰り返し停止条件抽出部と、
前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する最適化同値クラス生成部と、
を備えることを特徴とするデータ生成装置、
Extracting the consequent part from the property composed of the condition part and the consequent part used for the model checking of the pseudo system recorded in the recording part, and the subexpression constituting the consequent part is in the form of a recursive definition determined in advance. It is determined whether it is described, and if it is described in the format, it is specified as a factor expression, a recursive variable included in the factor expression is specified as a recursive variable, and based on the factor expression and the recursive variable, A repetition factor identifying unit that identifies a factor variable that is a factor of repetition included in the factor expression;
Extracting the sub-expression including the recursive variable from the equivalence class corresponding to the factor property including the factor expression, creating a negative condition expression negating the conditional expression that is the extracted sub-expression, the negative condition expression and the factor expression A repetitive stop condition extracting unit that calculates a repetitive stop condition related to the factor variable based on
An optimized equivalence class generating unit that generates an optimized equivalence class based on the conditional expression and the iterative stop condition and records it in the recording unit;
A data generation device comprising:
繰り返し要因特定部、繰り返し停止条件抽出部および最適化同値クラス生成部を備えたデータ生成装置が実行するデータ生成方法であって、
前記繰り返し要因特定部は、
記録部に記録されている擬似システムのモデル検査に用いる条件部と帰結部により構成されるプロパティから帰結部を抽出し、前記帰結部を構成する部分式が予め決められた再帰的定義の形式により記述されているか判定し、前記式で記述されていれば要因式と特定するとともに、該要因式に含まれる再帰的な変数を特定し再帰変数とし、前記要因式と前記再帰変数に基づいて、前記要因式に含まれる繰り返しの要因となる要因変数を特定し、
前記繰り返し停止条件抽出部は、
前記要因式を含む要因プロパティに対応する同値クラスから前記再帰変数を含む部分式を抽出し、前記抽出した部分式である条件式を否定した否定条件式を作成し、前記否定条件式と前記要因式に基づいて前記要因変数に関する繰り返し停止条件を算出し、
前記最適化同値クラス生成部は、
前記条件式および前記繰り返し停止条件に基づいて最適化同値クラスを生成して前記記録部に記録する、
ことを特徴とするデータ生成方法。
A data generation method executed by a data generation apparatus including a repetition factor identification unit, a repetition stop condition extraction unit, and an optimized equivalence class generation unit,
The repetition factor specifying unit is
Extracting the consequent part from the property composed of the condition part and the consequent part used for the model checking of the pseudo system recorded in the recording part, and the subexpression constituting the consequent part is in the form of a recursive definition determined in advance. determining whether the written, along with specifying a factor expression if it is described in the format, to identify recursive variables included in the factor equation and recursive variable, based on the recursion variable and the factors formula , Identify a factor variable that becomes a repetition factor included in the factor expression,
The repeated stop condition extraction unit
The subexpression including the recursive variable is extracted from the equivalence class corresponding to the factor property including the factor expression, a negative conditional expression in which the conditional expression that is the extracted subexpression is negated is created, and the negative condition expression and the factor Calculate the repeated stop condition for the factor variable based on the formula,
The optimized equivalence class generation unit includes:
Generate an optimized equivalence class based on the conditional expression and the repeated stop condition and record it in the recording unit,
A data generation method characterized by the above.
JP2009032448A 2009-02-16 2009-02-16 DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK Expired - Fee Related JP5326633B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009032448A JP5326633B2 (en) 2009-02-16 2009-02-16 DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009032448A JP5326633B2 (en) 2009-02-16 2009-02-16 DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK

Publications (2)

Publication Number Publication Date
JP2010191507A JP2010191507A (en) 2010-09-02
JP5326633B2 true JP5326633B2 (en) 2013-10-30

Family

ID=42817522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009032448A Expired - Fee Related JP5326633B2 (en) 2009-02-16 2009-02-16 DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK

Country Status (1)

Country Link
JP (1) JP5326633B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105279B2 (en) * 1991-03-04 2000-10-30 日本電信電話株式会社 Program unit test data generation method
US7693690B2 (en) * 2005-08-09 2010-04-06 Nec Laboratories America, Inc. Disjunctive image computation for sequential systems

Also Published As

Publication number Publication date
JP2010191507A (en) 2010-09-02

Similar Documents

Publication Publication Date Title
US10437574B2 (en) System and method for providing code completion features for code modules
Taentzer et al. Change-preserving model repair
JP5779077B2 (en) Apparatus and method for supporting program generation
US20100175055A1 (en) Method and system to identify gui objects for non-markup-language-presented applications
JP5900193B2 (en) Update determination program and update determination apparatus
JP2019079312A (en) Source code analysis device, source code analysis method, and source code analysis program
JP2022082524A (en) Method and apparatus for providing information using learning model through machine learning
JP5460629B2 (en) Tabular software specification creation support method and apparatus
CN116501415B (en) Command execution method and device, electronic equipment and computer readable storage medium
JP6044960B2 (en) Method, apparatus and computer program for specializing serializer
US10296496B2 (en) Data editing device and data editing method
JP5405684B1 (en) Source program programming language converter
JP5672165B2 (en) Test data generation program, test data generation method, test data generation device
CN115904480B (en) Code reconstruction method, device, electronic equipment and storage medium
CN116860583A (en) Database performance optimization method and device, storage medium and electronic equipment
JP5326633B2 (en) DATA GENERATION PROGRAM, DATA GENERATION DEVICE, AND DATA GENERATION METHOD IN PROGRAM MODEL CHECK
CN116360763A (en) Method and device for rapidly generating RPA application
CN110889574A (en) Uncertainty factor detection device, method and medium for intelligent contract
KR100907709B1 (en) Information extraction apparatus and method using block grouping
JP2007079906A (en) Source code generator
JP5808264B2 (en) Code generation apparatus, code generation method, and program
JP5338359B2 (en) DATA GENERATION PROGRAM, DATA GENERATION METHOD, AND DATA GENERATION DEVICE IN PROGRAM MODEL CHECK
JP6081144B2 (en) Source code analyzer
JP2006031326A (en) Information processor, information processing method and program
KR20240064451A (en) Method and apparatus for derived feature pipeline for improvement of machine learning training data quality

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130708

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees