JP4924188B2 - クロス検証装置 - Google Patents

クロス検証装置 Download PDF

Info

Publication number
JP4924188B2
JP4924188B2 JP2007119935A JP2007119935A JP4924188B2 JP 4924188 B2 JP4924188 B2 JP 4924188B2 JP 2007119935 A JP2007119935 A JP 2007119935A JP 2007119935 A JP2007119935 A JP 2007119935A JP 4924188 B2 JP4924188 B2 JP 4924188B2
Authority
JP
Japan
Prior art keywords
cross
assertion
verification
language
models
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
JP2007119935A
Other languages
English (en)
Other versions
JP2008276556A (ja
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2007119935A priority Critical patent/JP4924188B2/ja
Publication of JP2008276556A publication Critical patent/JP2008276556A/ja
Application granted granted Critical
Publication of JP4924188B2 publication Critical patent/JP4924188B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、クロス検証装置、クロス検証方法およびクロス検証プログラムに関するものである。
近年、UML(Unified Modeling Language)などのモデリング言語によるソフトウェアの設計や検査、テストケースの生成の手法が様々な形で紹介されており、例えばEsterel Technologies社のSCADEやカーネギーメロン大学(Carnegie Mellon University)のCBMCがその代表である。また、このような手法は、ソフトウェアの設計初期段階から導入しなければならない。
しかし、自動車メーカーなどにおいてエンジンの制御ソフトウェアを開発する場合、仕様記述言語を使わず、信頼性が保証されている既存のCコード(いわゆるレガシコード)を使用して、例えばMathwork社のMATLAB(登録商標)のようなGUIベースのツールで、新たなモジュールを開発して既存のモジュールに加えることが多い。また、C言語で記述されたロジックとGUIベースで設計されたロジックとで、同じモジュールが混在する場合が多い。そのため、既存のCコードと新たに開発されたGUIベースのロジックとの間に自然言語の検証項目を埋め込んで検証を行うことが望まれていた。つまり、自然言語で記述した仕様書、作成したC言語プログラムおよび作成したGUIベースの制御ロジックの間でクロス検証(クロス検査)を行うことが望まれていた。
そこで、ソフトウェアの検証に関する技術として、特許文献1や特許文献2、特許文献3が開示されている。特許文献1には、コミュニケーションプロトコルソフトウェアの開発において、標準仕様記述言語を使って仕様を記述してテストケースを自動生成したり、当該テストケース生成のために標準仕様記述言語を第2の仕様記述言語へ変換したりするシステム等に関する技術が開示されている。特許文献2には、モデル検査プログラムの使用のために、モデル記述言語を翻訳するモデル検査支援装置等に関する技術が開示されている。特許文献3には、多くのモデルを並列動作させるための検証機能を持つ機能検証装置等に関する技術が開示されている。
特開2006−134284号公報 特開2007−11605号公報 特開2006−18429号公報
しかしながら、従来技術では、自然言語の仕様とC言語プログラムとの検証や自然言語の仕様と制御ロジックとの検証が個別に支援されているのみなので(従来技術の一例を示す図38を参照)、エンジンの制御ソフトウェアの開発において依然として上述したクロス検証を実現できないという問題点があった。
本発明は、上記問題点に鑑みてなされたものであって、エンジンの制御ソフトウェアの開発において自然言語の仕様とC言語のプログラムとGUIベースの制御ロジックとのクロス検証を行うことができ、結果的に当該開発の効率を高めることができるクロス検証装置、クロス検証方法およびクロス検証プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるクロス検証装置は、所定の言語で仕様を作成する仕様作成手段と、互いに異なる所定の言語でモデルを作成する複数のモデル作成手段と、前記仕様作成手段で作成した前記仕様および複数の前記モデル作成手段で作成した複数の前記モデルを所定の言語に変換する言語変換手段と、前記言語変換手段で言語が変換された後の前記仕様に基づいて、言語が変換された後の各々の前記モデルを、他の前記モデルと対比しながら検証するクロス検証手段と、前記クロス検証手段での検証結果を出力したり、前記クロス検証手段で反例を生成した場合にはさらに前記反例をテストデータとして出力したりする結果出力手段と、を備えたことを特徴とする。
本発明にかかるクロス検証装置は、前記に記載のクロス検証装置において、前記仕様作成手段で作成した前記仕様および複数の前記モデル作成手段で作成した複数の前記モデルに基づいてアサーションを生成するアサーション生成手段と、前記アサーション生成手段で生成した前記アサーションを、複数の前記モデル作成手段で作成した複数の前記モデルに挿入するアサーション挿入手段とをさらに備え、前記言語変換手段は、前記仕様作成手段で作成した前記仕様、前記アサーション挿入手段で前記アサーションが挿入された後の複数の前記モデルおよび前記アサーション生成手段で生成した前記アサーションを前記所定の言語に変換することを特徴とする。
また、本発明にかかるクロス検証装置は、前記に記載のクロス検証装置において、前記言語変換手段は、前記仕様および複数の前記モデルに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の前記仕様および複数の前記モデルを所定の手法でCNF(Conjnctive Normal Form)へ変換することを特徴とする。
また、本発明はクロス検証方法に関するものであり、本発明にかかるクロス検証方法は、所定の言語で仕様を作成する仕様作成ステップと、互いに異なる所定の言語でモデルを作成する複数のモデル作成ステップと、前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルを所定の言語に変換する言語変換ステップと、前記言語変換ステップで言語が変換された後の前記仕様に基づいて、言語が変換された後の各々の前記モデルを、他の前記モデルと対比しながら検証するクロス検証ステップと、前記クロス検証ステップでの検証結果を出力したり、前記クロス検証ステップで反例を生成した場合にはさらに前記反例をテストデータとして出力したりする結果出力ステップと、を含むことを特徴とする。
また、本発明にかかるクロス検証方法は、前記に記載のクロス検証方法において、前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルに基づいてアサーションを生成するアサーション生成ステップと、前記アサーション生成ステップで生成した前記アサーションを、複数の前記モデル作成ステップで作成した複数の前記モデルに挿入するアサーション挿入ステップとをさらに含み、前記言語変換ステップは、前記仕様作成ステップで作成した前記仕様、前記アサーション挿入ステップで前記アサーションが挿入された後の複数の前記モデルおよび前記アサーション生成ステップで生成した前記アサーションを前記所定の言語に変換することを特徴とする。
また、本発明にかかるクロス検証方法は、前記に記載のクロス検証方法において、前記言語変換ステップは、前記仕様および複数の前記モデルに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の前記仕様および複数の前記モデルを所定の手法でCNF(Conjnctive Normal Form)へ変換することを特徴とする。
また、本発明はクロス検証プログラムに関するものであり、本発明にかかるクロス検証プログラムは、所定の言語で仕様を作成する仕様作成ステップと、互いに異なる所定の言語でモデルを作成する複数のモデル作成ステップと、前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルを所定の言語に変換する言語変換ステップと、前記言語変換ステップで言語が変換された後の前記仕様に基づいて、言語が変換された後の各々の前記モデルを、他の前記モデルと対比しながら検証するクロス検証ステップと、前記クロス検証ステップでの検証結果を出力したり、前記クロス検証ステップで反例を生成した場合にはさらに前記反例をテストデータとして出力したりする結果出力ステップと、を含むクロス検証方法をコンピュータに実行させることを特徴とする。
また、本発明にかかるクロス検証プログラムは、前記に記載のクロス検証プログラムにおいて、前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルに基づいてアサーションを生成するアサーション生成ステップと、前記アサーション生成ステップで生成した前記アサーションを、複数の前記モデル作成ステップで作成した複数の前記モデルに挿入するアサーション挿入ステップとをさらに含み、前記言語変換ステップは、前記仕様作成ステップで作成した前記仕様、前記アサーション挿入ステップで前記アサーションが挿入された後の複数の前記モデルおよび前記アサーション生成ステップで生成した前記アサーションを前記所定の言語に変換することを特徴とする。
また、本発明にかかるクロス検証プログラムは、前記のいずれか1つに記載のクロス検証プログラムにおいて、前記言語変換ステップは、前記仕様および複数の前記モデルに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の前記仕様および複数の前記モデルを所定の手法でCNF(Conjnctive Normal Form)へ変換することを特徴とする。
また、本発明は記録媒体に関するものであり、本発明にかかるコンピュータ読み取り可能な記録媒体は、前記のいずれか1つに記載のクロス検証プログラムを記録したことを特徴とする。
本発明にかかるクロス検証装置、クロス検証方法およびクロス検証プログラムによれば、所定の言語で仕様を作成し、互いに異なる所定の言語でモデルを作成し、作成した仕様および作成した複数のモデルを所定の言語に変換し、言語が変換された後の仕様に基づいて、言語が変換された後の各々のモデルを、他のモデルと対比しながら検証し、その検証結果を出力したり、その検証で反例を生成した場合にはさらに反例をテストデータとして出力したりするので、エンジンの制御ソフトウェアの開発において自然言語の仕様とC言語のプログラムとGUIベースの制御ロジックとのクロス検証を行うことができ、結果的に当該開発の効率を高めることができるという効果を奏する。換言すると、その過程で異なる言語が使われるエンジン(車両)開発のような環境下でクロス検証を行うことができ、結果的に当該開発の効率を高めることができるという効果を奏する。
また、本発明にかかるクロス検証装置、クロス検証方法およびクロス検証プログラムによれば、作成した仕様および複数のモデルに基づいてアサーションを生成し、生成したアサーションを複数のモデルに挿入し、作成した仕様、アサーションが挿入された後の複数のモデルおよび生成したアサーションを所定の言語に変換するので、エンジンの制御ソフトウェアの開発において仕様の検証を効果的に行うことができるという効果を奏する。
また、本発明にかかるクロス検証装置、クロス検証方法およびクロス検証プログラムによれば、仕様および複数のモデルに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の仕様および複数のモデルを所定の手法でCNF(Conjnctive Normal Form)へ変換するので、エンジンの制御ソフトウェアの開発において、当該ソフトウェアのCNFへの変換(具体的には、マップ変数のCNFへの変換(後述する「実施の形態」を参照))を、計算量を減らして効率よく行うことができるという効果を奏する。
また、本発明にかかる記録媒体によれば、コンピュータ読み取り可能なものであり、本発明にかかるクロス検証プログラムを記録するので、当該記録媒体に記録されたクロス検証プログラムをコンピュータに読み取らせて実行させることによって本発明にかかるクロス検証プログラムを、コンピュータを利用して実現することができ、本発明にかかるクロス検証プログラムと同様の効果を得ることができる。
以下に、本発明にかかるクロス検証装置、クロス検証方法、クロス検証プログラムおよび記録媒体の実施の形態を、図面に基づいて詳細に説明する。なお、本実施の形態により本発明が限定されるものではない。
[1.本実施の形態の概要]
まず、本実施の形態の概要について、図1から図4を参照して詳細に説明する。図1から図4は、本実施の形態の概要を示す図である。
本実施の形態は、図1に示すように、例えば日本語で記述した検証仕様に基づいて、例えばMathwork社のMATLAB(登録商標)で設計したエンジン制御ロジック(MATLABロジック)と例えばC言語で記述したエンジン制御ロジック(C言語ロジック)との検証を行う。
具体的には、本実施の形態は、互いに同じモジュールが混在するMATLABロジックとC言語ロジックとを、CNFに変換した検証仕様(クロス検査項目)に基づいて、同じモジュールに関しては図2に示すようにクロスさせながら同時に検証する。より具体的には、本実施の形態は、仕様マネージャーを用いて、Cコードマネージャーで記述したCコードに対応する検証項目1、MATLABロジックマネージャーで設計したMATLABロジックに対応する検証項目2を記述するだけでなく、さらに、当該Cコードと当該MATLABロジックとの両方に対応する検証項目3を記述することで、CコードとMATLABロジックとのクロス検証を実現する。
また、具体的には、本実施の形態は、図4に示すように、動作仕様および互いに異なるロジックに関する複数のプログラム(例えばCコードで記述されたものとMathwork社のSimulink(登録商標)で設計されたもの)をクロス検証のためにCNFに変換し、変換した後のものに基づいて動作仕様ベースのブラックボックステスト(カバレージ分析やテストケース生成を含む)とプログラムベースのホワイトボックステストとを同時に並行して行なう。
これにより、エンジンの制御ソフトウェアの開発において自然言語の仕様とC言語のプログラムとGUIベースの制御ロジックとのクロス検証を行うことができ、結果的に当該開発の効率を高めることができる。換言すると、その過程で異なる言語が使われるエンジン(車両)開発のような環境下でクロス検証を行うことができ、結果的に当該開発の効率を高めることができる。
[2.本実施の形態の構成]
つぎに、本実施の形態にかかるクロス検証装置10の構成について、図5から図18を参照して説明する。図5は、クロス検証装置10の構成の一例を示すブロック図であり、該構成のうち本発明に関係する部分のみを概念的に示している。
クロス検証装置10は、仕様マネージャー12aと、Cコードマネージャー12bと、GUIロジックマネージャー12cと、仕様CNF変換機14aと、CコードCNF変換機14bと、GUIロジックCNF変換機14cと、SATソルバー16と、ユーザインターフェース18と、で構成されており、これら各部は任意の通信路を介して通信可能に接続されている。
仕様マネージャー12aは、本発明における仕様作成手段に相当するものであり、システムの動作や安全性を記述した仕様の管理や編集を行う。仕様マネージャー12aは、仕様を、CコードおよびGUIロジックで使われている変数の名前を使用して、自然言語で作成する。ここで、仕様マネージャー12aの構成の一例について、図7を参照して説明する。図7は、仕様マネージャー12aの構成の一例を示すブロック図である。仕様マネージャー12aは、編集機能12a1と、呼び出し機能12a2と、保存機能12a3と、文法検査機能12a4と、で構成されている。編集機能12a1は、仕様の作成や編集を行う。呼び出し機能12a2は、仕様の作成や編集を行う際に使用する変数の名称に関するファイルを呼び出す。保存機能12a3は、仕様を保存する。文法検査機能12a4は、仕様の文法を検査する。
図5に戻り、Cコードマネージャー12bは、本発明におけるモデル作成手段に相当するものであり、エンジン制御用Cコードの作成や編集、Cコード単体のシミュレーションを行う。ここで、Cコードマネージャー12bの構成の一例について、図8を参照して説明する。図8は、Cコードマネージャー12bの構成の一例を示すブロック図である。Cコードマネージャー12bは、編集機能12b1と、呼び出し機能12b2と、保存機能12b3と、文法検査機能12b4と、コンパイル機能12b5と、で構成されている。編集機能12b1は、Cコードの作成や編集を行う。呼び出し機能12b2は、Cコードの作成や編集を行う際に使用する変数の名称に関するファイルを呼び出す。保存機能12b3は、Cコードを保存する。文法検査機能12b4は、Cコードの文法を検査する。コンパイル機能12b5は、Cコードをコンパイルする。
図5に戻り、GUIロジックマネージャー12cは、本発明におけるモデル作成手段に相当するものであり、GUIベースでのエンジン制御用ロジック(GUIロジック)の作成や編集、GUIロジック単体のシミュレーションを行う。ここで、GUIロジックマネージャー12cの構成の一例について、図9を参照して説明する。図9は、GUIロジックマネージャー12cの構成の一例を示すブロック図である。GUIロジックマネージャー12cは、編集機能12c1と、呼び出し機能12c2と、保存機能12c3と、文法検査機能12c4と、で構成されている。編集機能12a1は、GUIロジックの作成や編集を行う。呼び出し機能12a2は、GUIロジックの作成や編集を行う際に使用する変数の名称に関するファイルを呼び出す。保存機能12a3は、GUIロジックを保存する。文法検査機能12a4は、GUIロジックの文法を検査する。
図5に戻り、仕様CNF変換機14aは、本発明における言語変換手段に相当するものであり、仕様マネージャー12aで作成した自然言語の仕様をCNFに変換する。CコードCNF変換機14bは、本発明における言語変換手段に相当するものであり、Cコードマネージャー12bで作成したCコードをCNFに変換する。GUIロジックCNF変換機14cは、本発明における言語変換手段に相当するものであり、GUIロジックマネージャー12cで作成したGUIベースのロジックをCNFに変換する。ここで、仕様CNF変換機14a、CコードCNF変換機14bおよびGUIロジックCNF変換機14cで行う処理の具体例について、図10を参照して説明する。図10は、仕様CNF変換機14a、CコードCNF変換機14bおよびGUIロジックCNF変換機14cで行う処理の具体例を示す図である。図10に示すように、仕様CNF変換機14aは、仕様(Cコード、GUIロジック)に書かれた各単位モジュール毎に、当該モジュールがCNFライブラリとして存在する場合にはそのCNFライブラリで置き換え、CNFライブラリとして存在しない場合にはTseitin手法によりラン−タイムでCNF変換を行う。CNFライブラリには、各単位モジュールの最適化されたCNFライブラリを用意している。
図5に戻り、SATソルバー16は、本発明におけるクロス検証手段に相当するものであり、仕様CNF変換機14aでCNFに変換した後の仕様、CコードCNF変換機14bでCNFに変換した後のCコードおよびGUIロジックCNF変換機14cでCNFに変換した後のGUIロジックについて、互いを対比させながら同時に且つ並列的に検証を行う、つまり図2に示すようなクロス検証を行う。SATソルバー16は、性質が成り立つ場合には検証成功のメッセージをユーザインターフェース18に渡し、性質が成り立たない場合には検証失敗のメッセージをユーザインターフェース18に渡す。SATソルバー16は、CNFが1になる2進変数の組み合わせを探し、組み合わせが無い場合には未満足(UNSAT)のメッセージを出力し、組み合わせが有る場合には満足(SAT)のメッセージおよびその組み合わせを出力する。
ユーザインターフェース18は、本発明における結果出力手段に相当するものであり、仕様マネージャー12a、Cコードマネージャー12b、GUIロジックマネージャー12cおよびSATソルバー16への統合インターフェース環境を提供し、SATソルバー16での検証結果やテストデータを表示する。
ここで、ユーザインターフェース18の構成の一例について、図11を参照して説明する。図11は、ユーザインターフェース18の構成の一例を示す図である。ユーザインターフェース18は、仕様編集画面の選択領域18aと、Cコード編集画面の選択領域18bと、GUIロジック編集画面の選択領域18cと、SATソルバーオプション設定画面の選択領域18dと、クロス検証結果・テストデータ表示画面の選択領域18eと、で構成されている。
仕様編集画面の選択領域18aは、図13に示すような仕様編集画面MAを表示させるためのものである。ここで、仕様編集画面MAの一例について、図13を参照して説明する。図13は、仕様編集画面MAの一例を示す図である。仕様編集画面MAは、メニュー表示領域MA1と、仕様表示・編集領域MA2と、で構成されている。メニュー表示領域MA1には、仕様の編集項目に関するメニュー(編集メニュー)が選択可能に表示される。仕様表示・編集領域MA2には、仕様が編集可能に表示される。
図11に戻り、Cコード編集画面の選択領域18bは、図14に示すようなCコード編集画面MBを表示させるためのものである。ここで、Cコード編集画面MBの一例について、図14を参照して説明する。図14は、Cコード編集画面MBの一例を示す図である。Cコード編集画面MBは、メニュー表示領域MB1と、Cコード表示・編集領域MB2と、で構成されている。メニュー表示領域MB1には、Cコードの編集項目に関するメニュー(編集メニュー)およびCコード単体でのシミュレーションに関するメニューが選択可能に表示される。Cコード表示・編集領域MB2には、Cコードが編集可能に表示される。
図11に戻り、GUIロジック編集画面の選択領域18cは、図15に示すようなGUIロジック編集画面MCを表示させるためのものである。ここで、GUIロジック編集画面MCの一例について、図15を参照して説明する。図15は、GUIロジック編集画面MCの一例を示す図である。GUIロジック編集画面MCは、メニュー表示領域MC1と、GUIロジック表示・編集領域MC2と、で構成されている。メニュー表示領域MC1には、GUIロジックの編集項目に関するメニュー(編集メニュー)およびGUIロジック単体でのシミュレーションに関するメニューが選択可能に表示される。GUIロジック表示・編集領域MC2には、GUIロジックが編集可能に表示される。
図11に戻り、SATソルバーオプション設定画面の選択領域18dは、図16に示すようなSATソルバーオプション設定画面MDを表示させるためのものである。ここで、SATソルバーオプション設定画面MDの一例について、図16を参照して説明する。図16は、SATソルバーオプション設定画面MDの一例を示す図である。SATソルバーオプション設定画面MDは、SATソルバーの種類を選択したり、ループの最大iteration(繰り返し)数を指定したりするための選択・指定領域MD1で構成されている。
図11に戻り、クロス検証結果・テストデータ表示画面の選択領域18eは、図17に示すようなクロス検証結果・テストデータ表示画面MEを表示させるためのものである。ここで、クロス検証結果・テストデータ表示画面MEの一例について、図17を参照して説明する。図17は、クロス検証結果・テストデータ表示画面MEの一例を示す図である。クロス検証結果・テストデータ表示画面MEは、性質の成立可否や、性質が成り立たない場合に生成されたテストデータを表示したり、性質に引っ掛かるCコードおよびGUIロジックへのトレース(回答部の色反転)を行ったりする表示・トレース領域ME1で構成されている。
ここで、ユーザインターフェース18の構成は、図12に示すようなものでもよい。図12は、ユーザインターフェース18の構成の他の一例を示す図である。図12に示すユーザインターフェース18は、図11に示すユーザインターフェース18に、統合シミュレーション画面の選択領域18fをさらに加えたものである。統合シミュレーション画面の選択領域18fは、図18に示すような統合シミュレーション画面MFを表示させるためのものである。ここで、統合シミュレーション画面MFの一例について、図18を参照して説明する。図18は、統合シミュレーション画面MFの一例を示す図である。統合シミュレーション画面MFは、メニュー表示領域MF1と、統合シミュレーション結果表示領域MF2と、で構成されている。メニュー表示領域MF1には、統合シミュレーションの実行やそれに必要なデータの読み込みに関するメニュー(統合シミュレーションメニュー)が選択可能に表示される。統合シミュレーション結果表示領域MF2には、統合シミュレーションの結果が図として表示される。
また、クロス検証装置10の構成は、図6に示すようなものでもよい。図6は、クロス検証装置10の構成の他の一例を示すブロック図である。図6に示すクロス検証装置10は、図5に示すクロス検証装置10に、アサーション生成・挿入部20を図示の如くさらに加えたものである。図6に示すクロス検証装置10は、図5に示す仕様CNF変換機14aとCコードCNF変換機14bとGUIロジックCNF変換機14cとを一体化したCNF変換機14を図示の如く備えている。
アサーション生成・挿入部20は、仕様、CコードおよびGUIロジックの検証用のアサーション(assertion)を生成し、生成したアサーションをCコードおよびGUIロジックに挿入する。具体的には、アサーション生成・挿入部20は、仕様を検証するためにアサーションを生成し、生成したアサーションがCコード(またはGUIロジック)のみの性質の場合には当該アサーションをCコード(またはGUIロジック)に直接挿入し、当該アサーションが挿入された後のCコード(またはGUIロジック)をCNF変換機14へ伝達すると共に、生成したアサーションがCコードとGUIロジックの両方に引っ掛かる場合には当該アサーションをCNF変換機14へ伝達する。
CNF変換機14は、アサーション生成・挿入部20で生成したアサーション(CコードとGUIロジックの両方に引っ掛かるもの)、アサーションが挿入された後のCコードおよびアサーションが挿入された後のGUIロジックをCNFに変換する。具体的には、CNF変換機14は、まず、アサーションが挿入された後のCコードおよび当該アサーションが挿入された後のGUIロジックをCNFに変換し、つぎに、この変換の際に発生する2進変数のCNFエンコーディング情報からアサーションをCNFに変換し、そして、CNFに変換した後のCコード、GUIロジックおよびアサーションをSATソルバー16に伝達する。また、CNF変換機14は、SATソルバー16から反例(2進変数)が返された場合、その2進変数をCNFエンコーディング情報に基づいて一般のデータタイプに変換し、変換した後の反例をテストデータとしてユーザインターフェース18に渡す。SATソルバー16は、性質が成り立たない場合には検証失敗のメッセージをユーザインターフェース18に渡すと共に、検証の際に生成した反例(2進変数)をCNF変換機14に伝達する。
[3.本実施の形態の処理]
つぎに、クロス検証装置10で実行するクロス検証処理の一例を、図19を参照して説明する。図19は、クロス検証装置10で実行するクロス検証処理の一例を示すフローチャートである。なお、ここでは、本処理を、図6に示すクロス検証装置10で行う場合について説明する。
まず、クロス検証装置10は、仕様マネージャー12aで、ユーザインターフェース18を介して、CコードやGUIロジックで使われている変数の名前を使って動作仕様を作成(記述)する(ステップSA−1)。また、クロス検証装置10は、Cコードマネージャー12bで、ユーザインターフェース18を介して、エンジン制御用のCコードを作成する(ステップSA−2)。また、クロス検証装置10は、GUIロジックマネージャー12cで、ユーザインターフェース18を介して、エンジン制御用のGUIロジックを作成する(ステップSA−3)。
つぎに、クロス検証装置10は、アサーション生成・挿入部20で、ステップSA−1で作成した動作仕様、ステップSA−2で作成したCコードおよびステップSA−3で作成したGUIロジックに基づいて、当該動作仕様を検証するためにアサーションを生成し、生成したアサーションを当該Cコードや当該GUIロジックに挿入する(ステップSA−4:アサーション生成・挿入処理)。
ここで、アサーション生成・挿入部20で実行するアサーション生成・挿入処理の一例を、図20から図26を参照して説明する。図20は、アサーション生成・挿入部20で実行するアサーション生成・挿入処理の一例を示す図である。
まず、クロス検証装置10は、アサーション生成・挿入部20で、ステップSA−1で作成した動作仕様からアサーションを生成する(ステップSB−1)。また、クロス検証装置10は、アサーション生成・挿入部20で、ステップSA−2で作成したCコードについて当該Cコードに含まれる分岐(具体的には、if−then−else、Switch、など)を分析(検出)し(ステップSB−2)、分析した分岐ごとに当該分岐に対応するアサーションを生成する(ステップSB−3)。また、クロス検証装置10は、アサーション生成・挿入部20で、ステップSA−3で作成したGUIロジックについて当該GUIロジックに含まれる分岐(具体的には、if−then−else、Switch、など)を分析(検出)し(ステップSB−4)、分析した分岐ごとに当該分岐に対応するアサーションを生成する(ステップSB−5)。
つぎに、クロス検証装置10は、アサーション生成・挿入部20で、ステップSB−1で生成したアサーションやステップSB−3で生成した分岐ごとのアサーションを、CコードやGUIロジックで使われる変数名をその使用場所(ファイル名や行番号)と関連付けて格納した変数ディクショナリーを参照して、ステップSA−2で作成したCコードに挿入する(ステップSB−6)。また、クロス検証装置10は、アサーション生成・挿入部20で、ステップSB−1で生成したアサーションやステップSB−5で生成した分岐ごとのアサーションを、変数ディクショナリーを参照して、ステップSA−3で作成したGUIロジックに挿入する(ステップSB−7)。
ここで、動作仕様からのアサーションの生成および生成したアサーションのCコードへの挿入(図20におけるステップSB−1およびステップSB−6に対応)は、具体的には図21に示すように行う。図21は、動作仕様からのアサーションの生成および生成したアサーションのCコードへの挿入の具体例を示す図である。具体的には、クロス検証装置10は、アサーション生成・挿入部20で、動作仕様に含まれるVVT(可変バルブタイミング機構)異常無しコード(VVTの異常が発生しないことを表すCコード(「s4t_case != 0」:s4t_caseは、VVTの異常が発生したか否かを表す変数。))からアサーション(「assert(s4t_case);」)を生成し、生成したアサーションを、変数ディクショナリーを参照して、図示の如く、Cコードに含まれるVVT異常検出コード(VVTの異常を検出するためのCコード)の直後に挿入する。
また、CコードおよびGUIコードに含まれる分岐の分析(図20におけるステップSB−2およびステップSB−4に対応)は、具体的には図22に示すように行う。図22は、CコードおよびGUIコードに含まれる分岐の分析の具体例を示す図である。具体的には、クロス検証装置10は、アサーション生成・挿入部20で、図22に示すCコードから、分岐条件1および分岐条件2を検出する。
分岐条件1:(u2t_emthwgd) > (u2s_ekmw_THWH)
分岐条件2:(u2t_emthwgd) < (u2s_ekmw_THWL)
なお、図22に示すCコードにおいて、分岐条件2は、分岐条件1と「else if」で繋がっているため、「{(u2t_emthwgd) > (u2s_ekmw_THWH)}&&{(u2t_emthwgd) < (u2s_ekmw_THWL)}」である。
また、分岐条件に合わせたアサーションの生成およびその挿入(図20におけるステップSB−3およびステップSB−6ならびにステップSB−5およびステップSB−7に対応)は、具体的には図23に示すように行う。図23は、分岐条件に合わせたアサーションの生成およびその挿入の具体例を示す図である。具体的には、クロス検証装置10は、アサーション生成・挿入部20で、図22に示す分岐条件1に合わせたアサーション1および図22に示す分岐条件2に合わせたアサーション2を生成し、生成したアサーション1およびアサーション2を、図23に示すように、図22に示すCコードの前に挿入する。
アサーション1:assert(!!((u2t_emthwgd) > (u2s_e
kmw_THWH)));
assert(!((u2t_emthwgd) > (u2s_ek
mw_THWH)));
アサーション2:assert(((u2t_emthwgd) > (u2s_ekm
w_THWH)) || !!((u2t_emthwgd) < (
u2s_ekmw_THWL)));
assert(((u2t_emthwgd) > (u2s_ekm
w_THWH)) || !((u2t_emthwgd) < (u
2s_ekmw_THWL)));
また、分岐条件に合わせたアサーションの生成(図20におけるステップSB−3およびステップSB−5に対応)は、具体的には図24に示すように行う。図24は、分岐条件に合わせたアサーションの生成の具体例を示す図である。具体的には、クロス検証装置10は、アサーション生成・挿入部20で、検出した分岐条件から、カバレージとして設定したMC/DCが100%となるテストパターン(図24の場合には3つのテストパターン)を求め、求めたテストパターンごとにアサーション(図24の場合には、「!(C1&&C2)」、「!(C1&&!C2)」および「!(!C1&&C2)」)を生成する。なお、MC/DCとは、米国連邦航空局のソフト検証基準(DO−178B)であり、全ての分岐および論理組み合わせについて確認できる最少のテストパターン数のカバー率を表す。
なお、アサーションの挿入(図20におけるステップSB−6およびステップSB−7に対応)は、具体的には図25や図26のように行ってもよい。図25および図26は、アサーションの挿入の他の具体例を示す図である。
これにて、アサーション生成・挿入処理の一例の説明を終了する。
図19に戻り、クロス検証装置10は、CNF変換機14で、ステップSA−4で生成したアサーション(具体的にはCコードおよびGUIロジックの両方に引っ掛かるアサーション)、当該アサーションが挿入された後のCコードおよび当該アサーションが挿入された後のGUIロジックを、CNFに変換する。(ステップSA−5:CNF変換処理)。
ここで、CNF変換機14で実行するCNF変換処理の一例を、図27から図37を参照して説明する。図27は、CNF変換機14で実行するCNF変換処理の一例を示す図である。
まず、クロス検証装置10は、CNF変換機14で、当該CNF変換機が備えた2進変数割り当て機により、アサーションが挿入された後のCコードに含まれる変数およびアサーションが挿入された後のGUIロジックに含まれる変数を2進変数へ変換する(ステップSC−1)。また、クロス検証装置10は、CNF変換機14で、当該CNF変換機が備えた2進変数割り当て機により、CコードとGUIロジックの両方に引っ掛かるアサーションに含まれる変数を2進変数へ変換する(ステップSC−2)。
つぎに、クロス検証装置10は、CNF変換機14で、ステップSC−1で2進変数へ変換した後のCコードおよびGUIロジックならびにステップSC−2で2進変数へ変換した後のアサーションを、それぞれCNFに変換する(ステップSC−3)。
ここで、図27に示すステップSC−1からステップSC−3までの処理は、具体的には図28に示すように行う。図28は、CNF変換機14で実行するCNF変換処理の具体例を示す図である。具体的には、クロス検証装置10は、CNF変換機14で、変数をN次元マップにおけるN個の軸(第1軸〜第N軸)と個々に比較し、その比較結果から軸ごとに近接代表点を抽出し、この比較に関するロジックおよびこの抽出に関するロジックをそれぞれCNFへ変換する(ステップSD−1)。より具体的には、クロス検証装置10は、CNF変換機14で、まず、図29に示すような論理ゲートを用いて、図30に示すような2次元マップにおける2つの軸(X軸およびY軸)の代表点((1x,2x,・・・,Nx)および(1y,2y,・・・,My))と変数(xおよびy)との大小を比較し、つぎに、その比較結果と2次元マップの軸の代表点とを図31に示すような論理ゲートで演算する(具体的には、比較結果と代表点との論理ANDをとり、その結果全ての論理ORをとる)ことで軸ごとに近接代表点((Lx,Hx)および(Ly,Hy))を抽出し、つぎに、この比較に関するロジック(図29に示すロジック)およびこの抽出に関するロジック(図31に示すロジック)をTseitin手法でCNFへ変換する。なお、図29は、変数(x)と2次元マップのX軸の代表点(1x,2x,・・・,Nx)との比較を行う論理ゲートの具体例を示す図である。図30は、2次元マップの具体例を示す図である。図31は、近接代表点の抽出を行う論理ゲートの具体例を示す図である。図31において、Nx[b]は、x軸のN番目(Nは1以上の整数)の代表点におけるb番目のビットを表す配列である。
図28に戻り、クロス検証装置10は、CNF変換機14で、ステップSD−1での軸の比較結果を用いて補間に必要なマップデータを抽出し、この抽出に関するロジックをCNFへ変換する(ステップSD−2)。より具体的には、クロス検証装置10は、CNF変換機14で、まず、補間に必要なマップデータを図32に示すような論理ゲートで演算する(具体的には、軸の比較結果に基づいて用意した図33に示すような2次元マスクと当該2次元マスクを型としてコピーした図34に示すような各2次元マップ(11zのマップ、12zのマップ、21zのマップおよび22zのマップ;そのサイズはマスクと同じ)とについてセルごとに論理ANDをとり、その結果全ての論理ORをとり、この論理ANDおよび論理ORの演算を変数のワードの長さに相当する回数(ワード長さ−1)繰り返す)ことで抽出し、つぎに、この抽出に関するロジック(図32に示すロジック)をTseitin手法でCNFへ変換する。なお、図32は、マップデータの抽出を行う論理ゲートならびにそれで用いる2次元マスクおよび2次元マップの具体例を示す図である。図33は、2次元マスクの具体例を示す図である。図34は、2次元マスクを型としてコピーした4つの2次元マップの具体例を示す図である。
図28に戻り、クロス検証装置10は、CNF変換機14で、ステップSD−1で抽出した近接代表点およびステップSD−2cで抽出したマップデータに基づいてマップ変数の値を計算することでマップ変数の補間を行い、この補間に関するロジックをTseitin手法でCNFへ変換する(ステップSD−3)。より具体的には、クロス検証装置10は、CNF変換機14で、図35に示すように、近接代表点Lx、Hx、LyおよびHyならびにマップデータ11z、12z、21zおよび22zを用いてマップ変数(Lz、Hzおよびz)を計算し、この計算に関するロジックをTseitin手法でCNFへ変換する。なお、図35は、補間のロジックの具体例を示す図である。
以上、CNF変換処理の具体例について2次元マップの場合を一例として説明したが、論理ゲートを使うことにより1回で並列的に各種の計算を完了することができ、その結果、2進変数の数を効果的に減らすことができる。ここで、2次元マップの場合、2進変数の数Sは数式1で示すものとなる。上述した各図における論理ゲートは2つの入力と1つの出力を持ち、1つの論理ゲートが1つの2進変数に対応する。そして、数式1において、一般的にCx、CyおよびCzはそれぞれ数千の単位になるので、右辺における左側の小カッコの部分(X軸、Y軸および補間にかかる2進変数の数)に比べて、右辺における右側の中カッコの部分(並列化のために追加した論理ゲートの数)の比重は無視できる。
Figure 0004924188
なお、数式1において、CxはX軸の1回の比較にかかる2進変数の数であり、CyはY軸の1回の比較にかかる2進変数の数であり、Czは補間にかかる2進変数の数である。また、数式1において、NはX軸における代表点の数であり、MはY軸における代表点の数である。また、数式1において、Wは変数のワード長さである。
また、N次元マップの場合、2進変数の数Sは数式2で示すものとなる。
Figure 0004924188
なお、数式2において、Ciは番号iの軸の1回の比較にかかる2進変数の数であり、Czは補間にかかる2進変数の数である。また、数式2において、Niは番号iの軸における代表点の数で、Wは変数のワード長さである。
また、ステップSD−1において、クロス検証装置10は、CNF変換機14で、図36上段に示すような論理ゲートを用いて2次元マップの各軸の代表点と変数とを比較し、その比較結果と2次元マップの各軸の代表点とを図36下段に示すような論理ゲートを用いて演算することで、近接代表点((Lx「b」,Hx[b])および(Ly[b],Hy[b]))を抽出してもよい。すなわち、論理ゲートは、多数の入力を同時に受け入れるものでもよい。また、bitごとに処理するロジック以外にも、latchを使ってword単位で処理するロジックを用いてもよい。さらに、変数(x)が2次元マップの代表点のmin−maxの範囲内に入るようにguard処理部を含めてもよい。なお、図36は、変数(x)と2次元マップのX軸の代表点(1x,2x,・・・,Nx)との比較を行う論理ゲートならびに近接代表点の抽出を行う論理ゲートの他の具体例を示す図である。
また、ステップSD−2において、クロス検証装置10は、CNF変換機14で、図37に示すような論理ゲートを用いてマップデータを抽出してもよい。すなわち、論理ゲートは、多数の入力を同時に受け入れるものでもよい。また、bitごとに処理するロジック以外にも、latchを使ってword単位で処理するロジックを用いてもよい。なお、図37は、マップデータの抽出を行う論理ゲートの他の具体例を示す図である。
これにて、CNF変換処理の具体例の説明を終了する。
図27に戻り、クロス検証装置10は、CNF変換機14で、ステップSC−3でCNFに変換した後のCコードおよびGUIコードならびにアサーションを収集し、SATソルバー16に伝達する(ステップSC−4)。
そして、クロス検証装置10は、CNF変換機14で、SATソルバー16から反例(2進変数)が返された場合には、当該反例を一般変数へ変換し、それをテストデータとしてユーザインターフェース18に伝達する(ステップSC−5)。
これにて、CNF変換処理の一例の説明を終了する。
図19に戻り、クロス検証装置10は、SATソルバー16で、ステップSA−5でCNFに変換した後の動作仕様に基づいてCコードおよびGUIロジックを対比させながら同時且つ並列的に検証し(つまりクロス検証を行ない)、当該検証において性質が成り立つ場合には検証成功のメッセージを検証結果としてユーザインターフェース18へ伝達し、一方、当該検証において性質が成り立たない場合には検証失敗のメッセージを検証結果としてユーザインターフェース18へ伝達すると同時に当該検証で生成した反例をCNF変換機14へ伝達する(ステップSA−6)。
つぎに、クロス検証装置10は、ユーザインターフェース18で、ステップSA−6で伝達した検証結果を表示し、ステップSA−6で反例をCNF変換機14へ伝達した場合には、CNF変換機14から伝達された当該反例に対応するテストデータをさらに表示する(ステップSA−7)。
これにて、クロス検証処理の一例の説明を終了する。
[4.本実施の形態のまとめ、およびその他の実施の形態]
以上、詳細に説明したように、本実施の形態にかかるクロス検証装置10によれば、動作仕様、エンジン制御用のCコードおよびエンジン制御用のGUIロジックを作成し、作成した動作仕様、CコードおよびGUIロジックに基づいてアサーションを生成し、生成したアサーションを当該Cコードおよび当該GUIロジックに挿入し、生成したアサーション、アサーションが挿入された後のCコードおよびアサーションが挿入された後のGUIロジックをCNFへ変換し、変換した後のアサーション、CコードおよびGUIロジックの検証を行い、その検証結果を表示する。これにより、エンジンの制御ソフトウェアの開発において動作仕様とCコードとGUIロジックとのクロス検証を行うことができ、結果的に当該開発の効率を高めることができる。換言すると、その過程で異なる言語が使われるエンジン(車両)開発のような環境下でクロス検証を行うことができ、結果的に当該開発の効率を高めることができる。また、アサーションを生成・挿入するので、エンジンの制御ソフトウェアの開発において仕様の検証を効果的に行うことができる。
また、本実施の形態にかかるクロス検証装置10によれば、動作仕様ならびにCコードおよびGUIロジックに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の動作仕様ならびにCコードおよびGUIロジックを例えばTseitin手法でCNFへ変換するので、エンジンの制御ソフトウェアの開発において、当該ソフトウェアのCNFへの変換(具体的には、マップ変数のCNFへの変換)を、計算量を減らして効率よく行うことができる。具体的には、マップをCNFに変換する際、通常、上述した補間に必要なデータを抽出して当該補間を行うが、本実施の形態にかかるクロス検証装置10によれば、従来とは異なり、当該補間を当該マップにおける各軸の代表点の数だけ繰り返さないので、上述した軸の比較や補間に必要な2進変数の数を効果的に減らすことができる。
さらに、本発明は、上述した実施の形態以外にも、特許請求の範囲の書類に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてよいものである。例えば、本実施の形態において説明した各処理のうち、自動的に行なわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。また、この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種の情報、データベース構成については、特記する場合を除いて任意に変更することができる。
また、クロス検証装置10の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷等に応じた任意の単位で、機能的または物理的に分散・統合して構成することができる。例えば、各データベースを独立したデータベース装置として独立に構成してもよく、また、処理の一部をCGI(Common Gateway Interface)を用いて実現してもよい。
また、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、クロス検証装置10に含まれる各装置またはその各部が備える処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現することができ、あるいはワイヤードロジックによるハードウェアとして実現することも可能である。なお、プログラムは、後述する記録媒体に記録されており、必要に応じて制御装置に機械的に読み取られる。
また、クロス検証装置10に含まれる各装置におけるROMやHDなどの記憶装置には、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAM等にロードされることによって実行され、クロス検証装置10に含まれる各装置の機能をCPUと協働して実現する。また、このコンピュータプログラムは、任意のネットワークを介して接続されたアプリケーションプログラムサーバに記録されてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
また、このプログラムを、コンピュータ読み取り可能な記録媒体に格納することもできる。ここで、「記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、EPROM、EEPROM、CD−ROM、MO、DVD等の任意の「可搬用の物理媒体」や、各種コンピュータシステムに内蔵されるROM、RAM、HD等の任意の「固定用の物理媒体」、あるいは、LAN、WAN、インターネットに代表されるネットワークを介してプログラムを送信する場合の通信回線や搬送波のように、短期にプログラムを保持する「通信媒体」を含むものとする。「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、本実施の形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
以上のように、本発明にかかるクロス検証装置、クロス検証方法およびクロス検証プログラムは、特に自動車製造産業で好適に実施することができ、極めて有用である。
本実施の形態の概要を示す図である。 本実施の形態の概要を示す図である。 本実施の形態の概要を示す図である。 本実施の形態の概要を示す図である。 クロス検証装置10の構成の一例を示すブロック図である。 クロス検証装置10の構成の他の一例を示すブロック図である。 仕様マネージャー12aの構成の一例を示すブロック図である。 Cコードマネージャー12bの構成の一例を示すブロック図である。 GUIロジックマネージャー12cの構成の一例を示すブロック図である。 仕様CNF変換機14a、CコードCNF変換機14bおよびGUIロジックCNF変換機14cで行う処理の具体例を示す図である。 ユーザインターフェース18の構成の一例を示す図である。 ユーザインターフェース18の構成の他の一例を示す図である。 仕様編集画面MAの一例を示す図である。 Cコード編集画面MBの一例を示す図である。 GUIロジック編集画面MCの一例を示す図である。 SATソルバーオプション設定画面MDの一例を示す図である。 クロス検証結果・テストデータ表示画面MEの一例を示す図である。 統合シミュレーション画面MFの一例を示す図である。 クロス検証装置10で実行するクロス検証処理の一例を示すフローチャートである。 アサーション生成・挿入部20で実行するアサーション生成・挿入処理の一例を示す図である。 動作仕様からのアサーションの生成および生成したアサーションのCコードへの挿入の具体例を示す図である。 CコードおよびGUIコードに含まれる分岐の分析の具体例を示す図である。 分岐条件に合わせたアサーションの生成およびその挿入の具体例を示す図である。 分岐条件に合わせたアサーションの生成の具体例を示す図である。 アサーションの挿入の他の具体例を示す図である。 アサーションの挿入の他の具体例を示す図である。 CNF変換機14で実行するCNF変換処理の一例を示す図である。 CNF変換機14で実行するCNF変換処理の具体例を示す図である。 変数と2次元マップのX軸の代表点との比較を行う論理ゲートの具体例を示す図である。 2次元マップの具体例を示す図である。 近接代表点の抽出を行う論理ゲートの具体例を示す図である。 マップデータの抽出を行う論理ゲートならびにそれで用いる2次元マスクおよび2次元マップの具体例を示す図である。 2次元マスクの具体例を示す図である。 2次元マスクを型としてコピーした4つの2次元マップの具体例を示す図である。 補間のロジックの具体例を示す図である。 変数と2次元マップのX軸の代表点との比較を行う論理ゲートならびに近接代表点の抽出を行う論理ゲートの他の具体例を示す図である。 マップデータの抽出を行う論理ゲートの他の具体例を示す図である。 従来技術の一例を示す図である。
符号の説明
10 クロス検証装置
12a 仕様マネージャー
12b Cコードマネージャー
12c GUIロジックマネージャー
14 CNF変換機
14a 仕様CNF変換機
14b CコードCNF変換機
14c GUIロジックCNF変換機
16 SATソルバー
18 ユーザインターフェース
20 アサーション生成・挿入部

Claims (7)

  1. 互いに異なる所定の言語でモデルを作成する複数のモデル作成手段と、
    複数の前記モデル作成手段で作成した複数の前記モデルのいずれにも対応する検証項目を含む仕様を所定の言語で作成する仕様作成手段と、
    前記仕様作成手段で作成した前記仕様および複数の前記モデル作成手段で作成した複数の前記モデルを所定の言語に変換する言語変換手段と、
    前記言語変換手段で言語が変換された後の前記仕様に基づいて、言語が変換された後の各々の前記モデルについて、性質が成り立つか否かを検証するクロス検証手段と、
    前記クロス検証手段での検証結果を出力したり、前記クロス検証手段で反例を生成した場合にはさらに前記反例をテストデータとして出力したりする結果出力手段と、
    を備えたことを特徴とするクロス検証装置。
  2. 前記仕様作成手段で作成した前記仕様および複数の前記モデル作成手段で作成した複数の前記モデルに基づいてアサーションを生成するアサーション生成手段と、
    前記アサーション生成手段で生成した前記アサーションを、複数の前記モデル作成手段で作成した複数の前記モデルに挿入するアサーション挿入手段と
    をさらに備え、
    前記言語変換手段は、前記仕様作成手段で作成した前記仕様、前記アサーション挿入手段で前記アサーションが挿入された後の複数の前記モデルおよび前記アサーション生成手段で生成した前記アサーションを前記所定の言語に変換すること
    を特徴とする請求項1に記載のクロス検証装置。
  3. 前記言語変換手段は、前記仕様および複数の前記モデルに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の前記仕様および複数の前記モデルを所定の手法でCNF(Conjnctive Normal Form)へ変換すること
    を特徴とする請求項1または2に記載のクロス検証装置。
  4. 互いに異なる所定の言語でモデルを作成する複数のモデル作成ステップと、
    複数の前記モデル作成ステップで作成した複数の前記モデルのいずれにも対応する検証項目を含む仕様を所定の言語で作成する仕様作成ステップと、
    前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルを所定の言語に変換する言語変換ステップと、
    前記言語変換ステップで言語が変換された後の前記仕様に基づいて、言語が変換された後の各々の前記モデルについて、性質が成り立つか否かを検証するクロス検証ステップと、
    前記クロス検証ステップでの検証結果を出力したり、前記クロス検証ステップで反例を生成した場合にはさらに前記反例をテストデータとして出力したりする結果出力ステップと、
    を含むことを特徴とするクロス検証方法。
  5. 前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルに基づいてアサーションを生成するアサーション生成ステップと、
    前記アサーション生成ステップで生成した前記アサーションを、複数の前記モデル作成ステップで作成した複数の前記モデルに挿入するアサーション挿入ステップと
    をさらに含み、
    前記言語変換ステップは、前記仕様作成ステップで作成した前記仕様、前記アサーション挿入ステップで前記アサーションが挿入された後の複数の前記モデルおよび前記アサーション生成ステップで生成した前記アサーションを前記所定の言語に変換すること
    を特徴とする請求項4に記載のクロス検証方法。
  6. 前記言語変換ステップは、前記仕様および複数の前記モデルに含まれる変数を論理ゲートを用いて並列的に2進変数へ変換し、2進変数へ変換した後の前記仕様および複数の前記モデルを所定の手法でCNF(Conjnctive Normal Form)へ変換すること
    を特徴とする請求項4または5に記載のクロス検証方法。
  7. 互いに異なる所定の言語でモデルを作成する複数のモデル作成ステップと、
    複数の前記モデル作成ステップで作成した複数の前記モデルのいずれにも対応する検証項目を含む仕様を所定の言語で作成する仕様作成ステップと、
    前記仕様作成ステップで作成した前記仕様および複数の前記モデル作成ステップで作成した複数の前記モデルを所定の言語に変換する言語変換ステップと、
    前記言語変換ステップで言語が変換された後の前記仕様に基づいて、言語が変換された後の各々の前記モデルについて、性質が成り立つか否かを検証するクロス検証ステップと、
    前記クロス検証ステップでの検証結果を出力したり、前記クロス検証ステップで反例を生成した場合にはさらに前記反例をテストデータとして出力したりする結果出力ステップと、
    を含むクロス検証方法をコンピュータに実行させることを特徴とするクロス検証プログラム。
JP2007119935A 2007-04-27 2007-04-27 クロス検証装置 Expired - Fee Related JP4924188B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007119935A JP4924188B2 (ja) 2007-04-27 2007-04-27 クロス検証装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007119935A JP4924188B2 (ja) 2007-04-27 2007-04-27 クロス検証装置

Publications (2)

Publication Number Publication Date
JP2008276556A JP2008276556A (ja) 2008-11-13
JP4924188B2 true JP4924188B2 (ja) 2012-04-25

Family

ID=40054423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007119935A Expired - Fee Related JP4924188B2 (ja) 2007-04-27 2007-04-27 クロス検証装置

Country Status (1)

Country Link
JP (1) JP4924188B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747082B2 (en) 2014-12-18 2017-08-29 International Business Machines Corporation Optimizing program performance with assertion management
US9823904B2 (en) 2014-12-18 2017-11-21 International Business Machines Corporation Managed assertions in an integrated development environment
US9703552B2 (en) 2014-12-18 2017-07-11 International Business Machines Corporation Assertions based on recently changed code
US9678855B2 (en) 2014-12-30 2017-06-13 International Business Machines Corporation Managing assertions while compiling and debugging source code
DE112016006297T5 (de) 2016-02-24 2018-10-31 Mitsubishi Electric Corporation Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm
JP6571897B2 (ja) 2017-02-16 2019-09-04 三菱電機株式会社 動作検証装置、動作検証方法および動作検証プログラム
CN110532185B (zh) * 2019-08-29 2023-09-19 中国工商银行股份有限公司 测试方法、装置、电子设备和计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04205358A (ja) * 1990-11-30 1992-07-27 Toshiba Corp プログラム検証方式
JPH11102291A (ja) * 1997-09-29 1999-04-13 Hitachi Ltd 仕様整合性検証システム
US6415430B1 (en) * 1999-07-01 2002-07-02 Nec Usa, Inc. Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
ATE526628T1 (de) * 2004-01-22 2011-10-15 Nec Lab America Inc System und verfahren zum modellieren, abstrahieren und analysieren von software
US8020153B2 (en) * 2004-10-04 2011-09-13 Panasonic Corporation Source code checker, source code checking method, program for causing execution of the method, and storage medium for storing the program
JP2007011467A (ja) * 2005-06-28 2007-01-18 Matsushita Electric Ind Co Ltd アサーション記述自動生成方法および装置

Also Published As

Publication number Publication date
JP2008276556A (ja) 2008-11-13

Similar Documents

Publication Publication Date Title
JP4924188B2 (ja) クロス検証装置
US8041554B1 (en) Method and system for the development of high-assurance microcode
Küster et al. Validation of model transformations–first experiences using a white box approach
Egyed A scenario-driven approach to traceability
Papadopoulos et al. Model-based synthesis of fault trees from matlab-simulink models
Drave et al. SMArDT modeling for automotive software testing
Arcaini et al. AsmetaSMV: a way to link high-level ASM models to low-level NuSMV specifications
Ratiu et al. Automated testing of DSL implementations: experiences from building mbeddr
US7275231B2 (en) High level validation of designs and products
Bigot et al. Automatic test generation with AGATHA
US8726241B1 (en) Method and system for the development of high-assurance computing elements
Jetley et al. Applying software engineering practices for development of industrial automation applications
Tomar et al. Verification & validation of components with new x component-based model
JP2008305079A (ja) 要求仕様自動検証方式
Boroday et al. Can a model checker generate tests for non-deterministic systems?
Heneghan et al. Enabling security checking of automotive ECUs with formal CSP models
Elmqvist et al. Safety-oriented design of component assemblies using safety interfaces
Jose et al. SMT based false causal loop detection during code synthesis from polychronous specifications
Bhatt et al. Model-based development and the implications to design assurance and certification
CN115408289A (zh) 一种面向scade模型的测试用例自动生成方法
Dadeau et al. Test Generation and Evaluation from High-Level Properties for Common Criteria Evaluations--The TASCCC Testing Tool
Horváth et al. Hardware-software allocation specification of ima systems for early simulation
CN112559359A (zh) 一种基于s2ml的安全攸关系统分析与验证方法
Sampath et al. Testing model-processing tools for embedded systems
Urdahl et al. Architectural system modeling for correct-by-construction RTL design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111212

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees