【文献】
青木 翼,UPPAALによるモデル検査適用ガイドラインの作成,情報処理学会研究報告(2008−SE−159),日本,社団法人情報処理学会,2008年 3月17日,第2008巻,第29号,pp.203-210
(58)【調査した分野】(Int.Cl.,DB名)
前記第1変換手段は、特定の時制論理式から、該特定の時制論理式についての前記判定結果の妥当性を確認する別の時制論理式に変換するための変換情報を用いて、前記第1時制論理式から前記第2時制論理式に変換する請求項2に記載の検査装置。
前記対応情報は、前記特定のソフトウェア中の信号名の疑似的な表現と、前記信号名の時制論理式での表現とを関連付ける信号対応情報、および、前記特定のソフトウェア中の定数名の疑似的な表現と、前記定数の値とを関連付ける定数対応情報のうち少なくとも一方を含む請求項1に記載の検査装置。
【発明を実施するための形態】
【0010】
以下の図面において、同一の部分には同一の符号が付してある。ただし、図面は模式的なものであり、厚みと平面寸法との関係、各層の厚みの比率等は現実のものとは異なる場合がある。したがって、具体的な厚みおよび寸法は以下の説明を参酌して判断すべきものである。
【0011】
(第1の実施形態)
図1は、第1の実施形態に係る検査装置のハードウェア構成の一例を示す図である。
図1を参照しながら、検査装置の一例であるPC1のハードウェア構成について説明する。
【0012】
図1に示すように、検査装置の一例であるPC1は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、表示装置14と、通信I/F15と、補助記憶装置16と、操作装置17と、DVD(Digital Versatile Disk)ドライブ18と、を備えている。上述の各部は、アドレスバスおよびデータバス等のバス20によって互いに通信可能に接続されている。
【0013】
CPU11は、PC1全体の動作を制御する演算装置である。ROM12は、CPU11が各機能を制御するために実行するBIOS(Basic Input/Output System)またはファームウェア等のプログラムを記憶する不揮発性記憶装置である。RAM13は、CPU11のワークメモリ等として機能する揮発性記憶装置である。
【0014】
表示装置14は、CPU11により実行されているアプリケーションの画面等を表示する装置である。表示装置14は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、または有機EL(Electroluminescence)ディスプレイ等である。
【0015】
通信I/F15は、外部機器と通信する装置である。通信I/F15は、例えば、NIC(Network Interface Card)等の通信装置である。通信I/F15の通信プロトコルとして、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)またはUDP(User Datagram Protocol)/IP等を適用できる。
【0016】
補助記憶装置16は、プログラム、ソースコード、および各種データ等を蓄積して記憶する記憶装置である。補助記憶装置16は、例えば、HDD(Hard Disk Drive)、またはSSD(Solid State Drive)等の記憶装置によって実現される。
【0017】
操作装置17は、ユーザによってCPU11に対して所定の処理を実行させるための操作入力を行う装置である。操作装置17は、例えば、マウス、キーボード、テンキー、タッチパッド、またはタッチパネル等の操作入力装置である。
【0018】
DVDドライブ18は、着脱自在な記憶媒体の一例としてのDVD−ROM(DVD Read Only Memory)19に対するデータの読み出し等を制御する装置である。なお、上述の着脱可能な記録媒体の他の例として、CD−R(Compact Disc Recordable)、DVD―R(DVD Recordable)またはブルーレイディスク(登録商標)等のコンピュータで読み出しまたは書き込み可能な記録媒体であってもよい。
【0019】
図2は、第1の実施形態に係る検査装置の機能ブロックの構成の一例を示す図である。
図2を参照しながら、PC1の機能ブロックの構成について説明する。
【0020】
図2に示すように、PC1は、各機能を実現する手段として、入力手段101と、時制論理式生成手段102(生成手段)と、記憶手段103と、時系列データ変換手段104(第2変換手段)と、合否判定手段105(判定手段)と、を有する。
【0021】
入力手段101は、後述する動作ログの時系列データの変化およびその変化のタイミングが要求仕様通りであるかを判定するためのアサーションと呼ばれる時制論理式を生成するために、時制論理式の疑似的な記述である疑似形式記述を入力する機能部である。入力手段101は、例えば、検査作業者により操作装置17から操作入力された疑似形式記述を入力するものとしてもよく、または、予め作成され、かつ、記憶手段103に記憶された疑似形式記述を読み出して入力するものとしてもよい。
【0022】
時制論理式生成手段102は、入力手段101により入力された疑似形式記述、ならびに、後述する記憶手段103に記憶された信号表211(対応情報の一例、信号対応情報)および定数表212(対応情報の一例、定数対応情報)から、時制論理式(第1時制論理式)を生成する機能部である。
【0023】
記憶手段103は、プログラム、ソースコード、および後述する動作ログ等の各種データ等を記憶する機能である。また、記憶手段103は、上述のように、予め作成された疑似形式記述を記憶しているものとしてよい。記憶手段103は、
図1に示す補助記憶装置16によって実現される。
【0024】
時系列データ変換手段104は、記憶手段103に記憶された動作ログを読み出し、その動作ログを、後述する合否判定手段105による合否判定処理を行うために適したファイル形式の時系列データに変換する機能部である。動作ログから変換する時系列データのファイル形式としては、例えば、CSV(Comma−Separated Values)形式、またはVCD(Value Change Dump)形式等が挙げられる。また、ここで、動作ログとは、制御ソフトウェア(特定のソフトウェアの一例)のモデル上でシミュレーションを行った場合に出力されるデータログ、または、実際に制御ソフトウェアが実装された装置(例えば、車両等に搭載されるECU(Engine Control Unit)等)が動作した場合に出力されるデータログ等を示す。
【0025】
合否判定手段105は、時系列データ変換手段104により変換された時系列データに対して、時制論理式生成手段102により生成された時制論理式を用いて、その時制論理式が示す時系列の動作となるか否かの合否判定処理を行う機能部である。
【0026】
上述の入力手段101、時制論理式生成手段102、時系列データ変換手段104および合否判定手段105は、
図1に示すCPU11が補助記憶装置16等に記憶されたプログラムをRAM13に読み出して実行することにより実現される。なお、入力手段101、時制論理式生成手段102、時系列データ変換手段104および合否判定手段105は、すべてがプログラムの実行により実現されることに限定されるものではなく、少なくとも一部がASIC(Application Specific Integrated Circuit)またはFPGA(Field−Programmable Gate Array)等のハードウェア回路によって実現されるものとしてもよい。
【0027】
また、
図2に示す機能ブロックの構成は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、
図2で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、
図2の1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【0028】
図3は、第1の実施形態に係る検査装置のデータフローの一例を示す図である。
図4は、期待動作を示す疑似形式記述の一例を示す図である。
図5は、禁止動作を示す疑似形式記述の一例を示す図である。
図6は、信号表の一例を示す図である。
図7は、定数表の一例を示す図である。
図8は、期待動作を示す時制論理式の一例を示す図である。
図9は、禁止動作を示す時制論理式の一例を示す図である。
図3〜9を参照しながら、本実施形態に係る検査装置(PC1)の時制論理式の生成動作について説明する。
【0029】
制御ソフトウェア(例えば、車両のECUに実装されるソフトウェア等)に対しては、その動作等を規定するための要求仕様があり、制御ソフトウェアを開発するためには、その要求仕様通りに動作するか否かを検査する必要がある。制御ソフトウェアが要求仕様通りの動作となっているか否かを検査するために、本実施形態に係る検査装置(PC1)は、上述のように、制御ソフトウェアについての動作のデータログである動作ログを検査対象とし、動作ログの時系列データの変化およびその変化のタイミングが要求仕様通りであるかを検査する。本実施形態では、動作ログの時系列データの変化およびその変化のタイミングが要求仕様通りであるかを検査するために、アサーションと呼ばれる時制論理式を生成して用いる。アサーションである時制論理式は、PSL/STL等のアサーション記述言語で表される。
【0030】
まず、検査作業者は、要求仕様に基づく動作となっているか否かを判定するための時制論理式の疑似的な記述である疑似形式記述201を作成する。この場合、検査作業者は、疑似形式記述201を、操作装置17から直接操作入力するものとしてもよく、または、操作入力した1または複数の疑似形式記述201を、記憶手段103に記憶させるものとしてもよい。入力手段101は、操作装置17から操作入力された疑似形式記述201、または、記憶手段103に記憶された疑似形式記述201を読み出して入力し、入力した疑似形式記述201を時制論理式生成手段102に送る。なお、疑似形式記述201の記憶先はPC1内の記憶手段103に限定されるものではなく、PC1の外部の装置(例えば、外部の記憶装置または外部のサーバ装置等)に記憶されるものとしてもよい。この場合、入力手段101は、外部の装置から通信I/F15を介して疑似形式記述201を読み出して入力するものとすればよい。
【0031】
例えば、
図4に、入力手段101により入力される疑似形式記述201の一例として、疑似形式記述201aを示す。
図4に示す疑似形式記述201aは、上述のPSL/STLの形式に則った記述形式を採用している。
図4に示す疑似形式記述201aの「t01」は、アサーションである疑似形式記述201aの識別情報を示す。「assert」は、疑似形式記述201aがアサーションであることを示す。「always()」は、括弧内に示す式(動作)が常に成り立つことを示す。「rise()」は、括弧内の式または信号が真になる(立ち上がる)ことを示す。「eventually[A:B]()」は、「A」から「B」の間に、括弧内の式が真になることを示す。すなわち、疑似形式記述201aは、「駆動信号の立ち上がりから3周期以内に、駆動信号が発生する、ということが常に成り立つ」という時系列的な動作を示す。
【0032】
図4では、要求仕様として期待される動作(期待動作)を示す疑似的な時制論理式としての疑似形式記述201aを示した。
図5に、入力手段101により入力される疑似形式記述201の別の例として、疑似形式記述201bを示す。
図5に示す疑似形式記述201bの「always[A:B]()」は、括弧内の式が真になる期間が「A」から「B」の間継続することを示す。すなわち、疑似形式記述201bは、「駆動信号の立ち上がりから、101[ms]以上にわたって駆動要求がオフの状態が続く、という動作を少なくとも1つ含む」という時系列的な動作を示し、要求仕様として禁止される動作(禁止動作)を示す疑似的な時制論理式を示す。
【0033】
制御ソフトウェアの設計仕様作成等の段階では、具体的な信号名(プログラムコード中の変数名等)および定数の値等が決定していない場合がある。そこで、本実施形態では、具体的な信号名および定数の値が決定していなくても、
図4および5の疑似形式記述201a、201bが示すように、「駆動信号」、「駆動要求」、「3周期」というように日本語での記述のように人間が分かりやすい表現を許容する疑似形式記述を、検査作業者は作成することが可能となっている。したがって、検査作業者は、合否判定手段105が合否判定の処理を行うために必要となる時制論理式を直接作成する必要がない。
【0034】
次に、時制論理式生成手段102は、入力手段101から、入力された疑似形式記述201を受け取り、さらに、記憶手段103に記憶された信号表211および定数表212を参照する。なお、信号表211および定数表212の記憶先はPC1内の記憶手段103に限定されるものではなく、PC1の外部の装置(例えば、外部の記憶装置または外部のサーバ装置等)に記憶されるものとしてもよい。この場合、時制論理式生成手段102は、通信I/F15を介して、外部の装置に記憶された信号表211および定数表212を参照するものとすればよい。
【0035】
信号表211は、制御ソフトウェアの設計仕様作成等の段階で作成された疑似形式記述201中で表現された信号名(仕様記述時の信号名)と、制御ソフトウェアのコード中で用いられる英数表記の信号名(変数名)と、その信号(変数)のデータ型とを関連付ける表である。例えば、
図6に、時制論理式生成手段102に参照される信号表211の一例として、信号表211aを示す。
図6の信号表211aが示すように、例えば、疑似形式記述201aの信号名「駆動信号」は、制御ソフトウェアのコード中で用いられる信号名として「d_start」と定義され、その信号(変数)のデータ型が「b」(ブール値)であることを示す。また、例えば、信号名「速度」は、制御ソフトウェアのコード中で用いられる信号名として「vel」と定義され、その信号(変数)のデータ型が「a」(アナログ値(実数値))であることを示す。
【0036】
また、定数表212は、制御ソフトウェアの設計仕様作成等の段階で作成された疑似形式記述201中で表現された定数名(仕様記述時の定数名)と、制御ソフトウェアのコード中で用いられる英数表記の定数名と、その定数の値とを関連付ける表である。例えば、
図7に、時制論理式生成手段102に参照される定数表212の一例として、定数表212aを示す。
図7の定数表212aが示すように、例えば、疑似形式記述201aの定数名「周期」は、制御ソフトウェアのコード中で用いられる定数名として「T」と定義され、その値が「16」であること示す。
【0037】
すなわち、信号表211および定数表212は、制御ソフトウェアについての一通りの開発が終了し、その過程で作成された、疑似形式記述201中の表現と、信号名、定数名、型、および値等を関連付ける表である。時制論理式生成手段102は、疑似形式記述201中の表現を、信号表211および定数表212により関連付けられる信号名および型、ならびに、値で置き換えることによって、アサーションである時制論理式221を生成する。
【0038】
例えば、時制論理式生成手段102が、
図4に示した疑似形式記述201a(期待動作)から、
図6および7に示した信号表211a、および定数表212aを用いて、時制論理式221の一例である
図8に示す時制論理式221aを生成する場合、具体的に以下のような置き換えを行う。まず、時制論理式生成手段102は、信号表211aを参照して、疑似形式記述201aの「駆動信号」という信号名を、
図8に示すように「b:d_start」のようにブール値およびコード中の信号名に置き換える。同様に、時制論理式生成手段102は、信号表211aを参照して、疑似形式記述201aの「駆動要求」という信号名を、「b:d_req」のようにブール値およびコード中の信号名に置き換える。さらに、時制論理式生成手段102は、疑似形式記述201aの「3周期」という表現を、定数表212aを参照して、定数名「周期」が、コード中では定数名「T」であり、その値が「16」であることを把握し、3×18=48[ms]を示すものとして、「48」という値に置き換える。このような時制論理式生成手段102による置き換えによって生成された時制論理式221aは、「ブール値である信号d_startの立ち上がりから48[ms]以内に、ブール値である信号d_reqが発生する、ということが常に成り立つ」という時系列的な動作を示す期待動作のアサーションとなる。
【0039】
同様に、時制論理式生成手段102は、
図5に示す疑似形式記述201b(禁止動作)から、
図6および7に示した信号表211a、および定数表212aを用いて、時制論理式221の一例である
図9に示す時制論理式221bを生成する。時制論理式生成手段102による置き換えによって生成された時制論理式221bは、「ブール値である信号d_startの立ち上がりから、101[ms]以上にわたってブール値であるd_reqがオフの状態が続く、という動作を少なくとも1つ含む」という時系列的な動作を示す禁止動作のアサーションとなる。
【0040】
なお、疑似形式記述201は、アサーション記述言語であるPSL/STL等の形式に即した記述で必ずしも作成する必要はなく、例えば、同じくアサーション記述言語であるSVA(System Verilog Assertions)等の形式に即した記述であってもよく、時制論理式生成手段102により最終的に時制論理式が生成できるような疑似的な時制論理式を表す記述であればよい。
【0041】
また、時制論理式生成手段102は、疑似形式記述201中の表現を、信号表211および定数表212により信号名、定数名、型、および値等で置き換えるものとしているが、置き換えに利用する表として信号表211および定数表212に限定されるものではない。例えば、信号表211および定数表212の少なくとも一方を用いて置き換えに利用するものとしてもよい。また、例えば、疑似形式記述201の作成段階では決定されていない信号名および定数名を、人間が分かりやすい日本語表現により表すのみとしていたが、その他のシンボル(例えば、「always」、「rise」、および「eventually」等)を日本語で表現して疑似形式記述201を作成可能としてもよい。この場合、別途、これらのシンボルの日本語表現と、そのシンボルとを関連付ける表を用意し、時制論理式生成手段102は、その表を参照して、疑似形式記述201のこれらの日本語表現を、対応するシンボルに置き換えて時制論理式221を生成するものとすればよい。
【0042】
図10は、CSV形式の時系列データの一例を示す図である。
図11は、VCD形式の時系列データの一例を示す図である。
図12は、時系列データを波形表示した例を示す図である。
図3および10〜12を参照しながら、本実施形態に係る検査装置(PC1)の動作ログから時系列データへの変換動作について説明する。
【0043】
図3に示すように、時系列データ変換手段104は、記憶手段103に記憶された動作ログ231のデータを読み出し、その動作ログ231を、合否判定手段105による合否判定処理を行うために適したファイル形式の時系列データ241に変換する。なお、動作ログ231の記憶先はPC1内の記憶手段103に限定されるものではなく、PC1の外部の装置(例えば、外部の記憶装置または外部のサーバ装置等)に記憶されるものとしてもよい。この場合、時系列データ変換手段104は、通信I/F15を介して、外部の装置に記憶された動作ログ231を読み出すものとすればよい。
【0044】
例えば、
図10に、時系列データ変換手段104により変換される時系列データ241の一例として、CSV形式の時系列データ241aを示し、
図11に、同様に時系列データ241の一例として、VCD形式の時系列データ241bを示す。また、
図12は、時系列データ変換手段104により変換される動作ログが示す各信号の動作を波形表示した例を示したものであり、具体的には、
図10の時系列データ241aまたは
図11の時系列データ241bが示す「駆動要求」、「駆動信号A」および「駆動信号B」の波形を示したものである。
図10に示すCSV形式の時系列データ241aは、テキスト形式のファイルフォーマットであり、サンプリング時間100[ms]ごとに、全信号(
図10の例では、「駆動要求」、「駆動信号A」および「駆動信号B」)の値を記録している。一方、
図11に示すVCD形式の時系列データ241bは、同様にテキスト形式のファイルフォーマットであるが、変化していないサンプリング時間のデータを間引いて記憶する。例えば、
図10に示す時系列データ241aにおいて、時間300[ms]に対応する各信号の値は、時間200[ms]に対応する各信号の値と比較して変化がないため、
図11に示す時系列データ241bのように、時間300[ms]に対応するデータを間引いて保存する。このように、動作ログをVCD形式の時系列データに変換することによって、CSV形式の時系列データに変換するよりファイルサイズを小さくすることができるという利点がある。なお、時系列データ変換手段104によって変換される時系列データ241のファイル形式は、上述のCSV形式またはVCD形式に限定されるものではなく、合否判定手段105における合否判定処理に適用できるファイル形式であればいずれの形式であってもよい。
【0045】
図13は、第1の実施形態に係る検査装置が出力する合否判定結果表の一例を示す図である。
図3および13を参照しながら、本実施形態に係る検査装置(PC1)の合否判定処理について説明する。
【0046】
合否判定手段105は、時系列データ変換手段104により変換された時系列データ241に対して、時制論理式生成手段102により生成された時制論理式を用いて、その時制論理式が示す時系列の動作となるか否かの合否判定処理を行う。例えば、合否判定手段105は、時系列データに対して、
図8に示す時制論理式221aを用いて合否判定処理を行った場合、その時系列データが、時制論理式221aが示す期待動作となるか否かの合否を判定する。そして、合否判定手段105は、時系列データが、時制論理式221aが示す通りの時系列の動作となる場合、要求仕様通りに時系列的な信号の変化、および変化のタイミングで動作すると判定することができる。一方、合否判定手段105は、時系列データに対して、
図9に示す時制論理式221bを用いて合否判定処理を行った場合、その時系列データが、時制論理式221bが示す禁止動作となるか否かの合否を判定する。そして、合否判定手段105は、時系列データが、時制論理式221bが示す通りの時系列の動作となる場合、要求仕様通りではない動作を少なくとも1つは含むと判定することができる。
【0047】
そして、合否判定手段105は、時系列データ変換手段104により変換された時系列データに対して、時制論理式生成手段102により生成された1以上のアサーションごとに合否の判定を行い、その合否の判定結果を示す合否判定結果表251を出力する。例えば、
図13に、合否判定手段105により出力される合否判定結果表251の一例として、合否判定結果表251aを示す。
図13に示す合否判定結果表251aでは、アサーション(時制論理式)「t01」〜「t03」の合否判定の結果(「判定結果」)が「合」(合格)であり、アサーション「t04」および「t05」の合否判定の結果が「否」(不合格)であることが示されている。また、合否判定結果表251aでは、合否判定の結果が「否」である場合、そのアサーションが示す時系列の動作から外れたときの時刻(「違反時刻」)を、関連付けて出力するものとしている。例えば、合否判定結果表251aでは、アサーション「t04」に対する合否の結果が「否」であり、アサーション「t04」が示す時系列の動作から外れたとき、すなわち、その時系列の動作を満たさなくなったときの動作ログ上の時刻である「400」を関連付けて出力される。例えば、動作ログ上の時間単位が[ms]である場合は、動作ログの開始時刻から400[ms]経過時点で、アサーション「t04」が示す時系列の動作から外れたということが分かる。なお、合否判定手段105により出力される合否判定結果表251は、判定結果を示すファイルとして記憶手段103に記憶させるものとしてもよく、または、表示装置14に判定結果を表示するものとしてもよい。このように、検査作業者および設計者は、各アサーションに対する違反について、違反した時点の各信号の値をそれぞれ確認することで、違反の原因の究明に役立てることができる。
【0048】
以上のように、検査作業者により簡易な表現で作成されたアサーションを示す疑似形式記述201から、時制論理式生成手段102により時制論理式221が生成され、制御ソフトウェアの動作ログに基づく時系列データに対して、時制論理式221を用いた時系列的な動作の合否判定を行うものとしている。これによって、時制論理式221を直接作成する必要がなく、簡易な表現で作成可能な疑似形式記述201を作成し、検査装置(PC1)に入力することによって、その疑似形式記述201に対応するアサーションである時制論理式221を自動で生成することができる。すなわち、アサーション(時制論理式)の疑似的な記述から、時制論理式221を容易に作成することができる。よって、制御ソフトウェアの動作ログに対するアサーションによる時系列的な動作の検査を容易に行うことができ、制御ソフトウェアに対する検査工数を削減することができる。
【0049】
(第2の実施形態)
第2の実施形態に係る検査装置について、第1の実施形態に係る検査装置(PC1)と相違する点を中心に説明する。本実施形態では、生成した時制論理式の合否判定結果が妥当であるか否かを判定するためのアサーション(時制論理式)である妥当性確認式を求め、この妥当性確認式も利用して、動作ログに対して時系列的な動作の合否判定を行う処理について説明する。なお、本実施形態に係る検査装置のハードウェア構成は、第1の実施形態と同様である。
【0050】
図14は、第2の実施形態に係る検査装置の機能ブロックの構成の一例を示す図である。
図14を参照しながら、PC1aの機能ブロックの構成について説明する。
【0051】
図14に示すように、PC1aは、各機能を実現する手段として、入力手段101と、時制論理式生成手段102(生成手段)と、記憶手段103と、時系列データ変換手段104(第2変換手段)と、合否判定手段105a(判定手段)と、確認式変換手段106(第1変換手段)と、を有する。なお、入力手段101、時制論理式生成手段102、記憶手段103、および時系列データ変換手段104は、第1の実施の形態と同様の動作である。
【0052】
確認式変換手段106は、時制論理式生成手段102により生成された時制論理式(第1時制論理式)から、後述する変換表に基づいて、妥当性確認式(第2時制論理式)に変換する機能部である。
【0053】
合否判定手段105aは、時系列データ変換手段104により変換された時系列データに対して、時制論理式生成手段102により生成された時制論理式、および確認式変換手段106により変換された妥当性確認式を用いて、その時制論理式および妥当性確認式が示す時系列の動作となるか否かの合否判定処理を行う機能部である。
【0054】
上述の入力手段101、時制論理式生成手段102、時系列データ変換手段104、合否判定手段105a、および確認式変換手段106は、
図1に示すCPU11が補助記憶装置16等に記憶されたプログラムをRAM13に読み出して実行することにより実現される。なお、入力手段101、時制論理式生成手段102、時系列データ変換手段104、合否判定手段105a、および確認式変換手段106は、すべてがプログラムの実行により実現されることに限定されるものではなく、少なくとも一部がASICまたはFPGA等のハードウェア回路によって実現されるものとしてもよい。
【0055】
また、
図14に示す機能ブロックの構成は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、
図14で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、
図14の1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【0056】
図15は、第2の実施形態に係る検査装置のデータフローの一例を示す図である。
図16は、時制論理式から妥当性確認式へ変換するための変換表の一例を示す図である。
図17は、妥当性確認式の一例を示す図である。
図15〜17を参照しながら、本実施形態に係る検査装置(PC1a)の妥当性確認式の変換動作について説明する。
【0057】
確認式変換手段106は、時制論理式生成手段102から、生成された時制論理式を受け取り、さらに、記憶手段103に記憶された変換表261(変換情報)を参照する。なお、変換表261の記憶先はPC1a内の記憶手段103に限定されるものではなく、PC1aの外部の装置(例えば、外部の記憶装置または外部のサーバ装置等)に記憶されるものとしてもよい。この場合、確認式変換手段106は、通信I/F15を介して、外部の装置に記憶された変換表261を参照するものとすればよい。
【0058】
変換表261は、時制論理式生成手段102により作成される時制論理式(アサーション)から妥当性確認式(アサーション)を変換するための表である。例えば、
図16に、確認式変換手段106に参照される変換表261の一例として、変換表261aを示すまず、
図16の変換表261aに示す時制論理式(アサーション)について説明する。変換表261aの「P −> Q」は、Pが成立してからQが成立することを示す時制論理式である。「rise(P)」は、Pが真になる(立ち上がる)ことを示す時制論理式である。「fall(P)」は、Pが真ではなくなる(立ち下がる)ことを示す時制論理式である。「P until Q」は、Qが成り立つまでPが成り立つことを示す時制論理式である。「P since Q」は、Qが成り立って以来、Pが成り立つことを示す時制論理式である。
【0059】
次に、
図16の変換表261aに示す時制論理式(アサーション)から変換する妥当性確認式(アサーション)について説明する。時制論理式「P −> Q」から変換される妥当性確認式は、「eventually(P)」であり、いつかはPが真になることを示すアサーションである。時制論理式「rise(P)」から変換される妥当性確認式は、「eventually(rise(P))」であり、いつかはPが真になることを示すアサーションである。時制論理式「fall(P)」から変換される妥当性確認式は、「eventually(fall(P))」であり、いつかはPが真ではなくなることを示すアサーションである。時制論理式「P until Q」から変換される妥当性確認式は、「eventually(P)」である。時制論理式「P since Q」から変換される妥当性確認式も、「eventually(P)」である。なお、
図16の変換表261aが示す時制論理式、およびその時制論理式から変換される妥当性確認式は一例を示すものであり、これに限定されるものではない。
【0060】
次に、確認式変換手段106は、時制論理式生成手段102により生成された時制論理式221から、記憶手段103に記憶された変換表261に基づいて、妥当性確認式222に変換する。例えば、確認式変換手段106は、
図8に示す時制論理式221aについて、変換表261aを用いると、
図17に示す妥当性確認式222aに変換することができる。妥当性確認式222aもアサーションであるので、「t01v」は、アサーションである妥当性確認式222aの識別情報を示す。確認式変換手段106により時制論理式221aから変換された妥当性確認式222aは、「ブール値である信号d_startがいつかは立ち上がる(真になる)」という時系列的な動作を示す。
【0061】
ここで、妥当性確認式の役割について詳述する。例えば、
図8に示す時制論理式221aを用いて合否判定手段105aによる合否判定処理を行った場合、「ブール値である信号d_startの立ち上がりから48[ms]以内に、ブール値である信号d_reqが発生する、ということが常に成り立つ」という時系列的な動作を示すことが確認されれば、「合」(合格)の判定がなされる。一方、時制論理式221aは、信号d_startが立ち上がった場合における動作を規定しているものであり、信号d_start立ち上がらない場合も当然想定されるが、この場合も、時制論理式221aが示す動作に違反するわけではないので、合否判定処理の判定結果としては「合」(合格)の判定がなされる。すなわち、時制論理式221a自体が期待する動作としては、「ブール値である信号d_startの立ち上がりから48[ms]以内に、ブール値である信号d_reqが発生する、ということが常に成り立つ」という動作であるが、一方で、信号d_startが立ち上がらない動作の場合も合否判定処理の判定結果としては「合」(合格)となるので、本来この時制論理式221aが規定する動作の通りに動くか否かという観点では、判定結果として妥当性を欠くことになる。そこで、時制論理式221aだけでなく、確認式変換手段106により時制論理式221aから変換された妥当性確認式222aも併せて用いることにより合否判定処理を行うことによって、時制論理式221aの合否判定結果に妥当性を持たせることができる。
【0062】
例えば、時制論理式221aの合否判定の結果が「合」である場合、「ブール値である信号d_startの立ち上がりから48[ms]以内に、ブール値である信号d_reqが発生する、ということが常に成り立つ」という動作であるのか、単に「信号d_startが立ち上がらない」という動作であるのかは、上述のように判別がつかないので、時制論理式221aの単体の合否判定結果自体は妥当性に欠ける。ここで、さらに、時制論理式221aから変換した妥当性確認式222aについて合否判定処理を行い、合否判定の結果が「合」となった場合、時系列データが「ブール値である信号d_startがいつかは立ち上がる(真になる)」という動作に違反しないことが保証される。すなわち、時系列データが示す動作の中で、信号d_startが立ち上がるタイミングが存在するということになり、かつ、時制論理式221aの合否判定の結果が「合」であるので、「信号d_start立ち上がらない」という動作は排除され、「ブール値である信号d_startの立ち上がりから48[ms]以内に、ブール値である信号d_reqが発生する、ということが常に成り立つ」という動作が実現されていることが保証されることになり、妥当性確認式222aの合否判定の結果と併せると、時制論理式221aの合否判定の結果の妥当性が備わることになる。
【0063】
図18は、第2の実施形態に係る検査装置が出力する合否判定結果表の一例を示す図である。
図3および18を参照しながら、本実施形態に係る検査装置(PC1a)の合否判定処理について説明する。
【0064】
合否判定手段105aは、時系列データ変換手段104により変換された時系列データに対して、時制論理式生成手段102により生成された時制論理式、および確認式変換手段106により変換された妥当性確認式を用いて、その時制論理式および妥当性確認式が示す時系列の動作となるか否かの合否判定処理を行う。そして、合否判定手段105aは、時系列データ変換手段104により変換された時系列データに対して、時制論理式生成手段102より生成された1以上の時制論理式ごとに合否の判定を行い、さらに、これらの時制論理式のうち少なくともいずれかから確認式変換手段106により変換された妥当性確認式についても合否の判定を行い、その合否の判定結果を示す合否判定結果表251を出力する。例えば、
図18に、合否判定手段105aにより出力される合否判定結果表251の一例として、合否判定結果表251bを示す。
【0065】
図18に示す合否判定結果表251bでは、時制論理式(アサーション)「t01」および「t02」の合否判定の結果(「判定結果」)が「合」(合格)であり、時制論理式(アサーション)「t03」の合否判定の結果が「否」(不合格)であることが示されている。また、妥当性確認式(アサーション)「t01v」の合否判定の結果が「否」(不合格)であり、妥当性確認式(アサーション)「t02v」の合否判定の結果が「合」(合格)であることが示されている。また、合否判定結果表251bでは、合否の結果が「否」である場合、そのアサーションが示す時系列の動作から外れたときの時刻(「違反時刻」)を、関連付けて出力するものとしている。ここで、例えば、時制論理式「t01」が上述の
図8に示す時制論理式221aであり、妥当性確認式「t01v」が上述の
図17に示す妥当性確認式222aであるものとする。この場合、妥当性確認式「t01v」の合否判定の結果は「否」であるので、時系列データが「ブール値である信号d_startがいつかは立ち上がる(真になる)」という動作に違反する、すなわち、「ブール値である信号d_startは常に立ち上がらない」ということが判断できる。この妥当性確認式「t01v」の合否判定の結果を踏まえた場合、時制論理式「t01」の合否判定の結果は「合」であるので、時系列データは「ブール値である信号d_startの立ち上がりから48[ms]以内に、ブール値である信号d_reqが発生する、ということが常に成り立つ」という動作には違反しないが、妥当性確認式「t01v」の合否判定により「ブール値である信号d_startは常に立ち上がらない」という動作がわかっているので、時制論理式「t01」の「合」という判定結果は、検査対象として適切な動作ログに対するものではない、すなわち、「ブール値である信号d_startが少なくとも一度は立ち上がる」動作ログに対するものではない、ということが分かる。
【0066】
以上のように、時制論理式生成手段102により生成された時制論理式単体の合否判定手段105aによる合否判定の結果では妥当性に欠ける場合、その時制論理式から確認式変換手段106により変換される妥当性確認式に対する合否判定の結果を組み合わせることによって、時制論理式の合否判定について妥当性を備えた結果を得ることが可能になる。また、本実施形態に係る検査装置(PC1a)が、第1の実施形態の検査装置(PC1)と同様な効果を奏することは言うまでもない。
【0067】
なお、上述の各実施形態に係る検査装置(PC1、PC1a)で実行されるプログラムは、ROM等に予め組み込まれて提供されるものとしてもよい。また、上述の各実施形態に係る検査装置(PC1、PC1a)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0068】
さらに、上述の各実施形態に係る検査装置(PC1、PC1a)で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の各実施形態に係る検査装置(PC1、PC1a)で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0069】
また、上述の各実施形態の検査装置(PC1、PC1a)で実行されるプログラムは、コンピュータを上述した各機能部として機能させ得る。このコンピュータは、CPU11がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置(RAM13)上に読み出して実行することができる。
【0070】
本発明の各実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換えおよび変更を行うことができる。これらの実施形態は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明およびその均等の範囲に含まれる。