JP2010128513A - モデル検査装置及びモデル検査方法 - Google Patents
モデル検査装置及びモデル検査方法 Download PDFInfo
- Publication number
- JP2010128513A JP2010128513A JP2008298955A JP2008298955A JP2010128513A JP 2010128513 A JP2010128513 A JP 2010128513A JP 2008298955 A JP2008298955 A JP 2008298955A JP 2008298955 A JP2008298955 A JP 2008298955A JP 2010128513 A JP2010128513 A JP 2010128513A
- Authority
- JP
- Japan
- Prior art keywords
- condition
- inspection
- state
- transition
- always
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】不要反例の検出を低減し、反例解析の効率を向上させることができるモデル検査装置を提供する。
【解決手段】本発明に係るモデル検査装置は、モデルデータと検査式とを入力し、検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力するモデル検査部と、検査式から注目状態を抽出する一方、モデルデータから遷移条件を抽出する遷移条件抽出部と、注目状態に遷移するための遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定する反例判定部と、遷移条件が常に発生しているときには、「遷移条件が常には発生しないとすれば」という前提条件を、また遷移条件が全く発生していないときには、「遷移条件がいつかは必ず発生するとすれば」という前提条件を検査条件に付加して検査式を更新する検査式更新部と、を備えたことを特徴とする。
【選択図】 図7
【解決手段】本発明に係るモデル検査装置は、モデルデータと検査式とを入力し、検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力するモデル検査部と、検査式から注目状態を抽出する一方、モデルデータから遷移条件を抽出する遷移条件抽出部と、注目状態に遷移するための遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定する反例判定部と、遷移条件が常に発生しているときには、「遷移条件が常には発生しないとすれば」という前提条件を、また遷移条件が全く発生していないときには、「遷移条件がいつかは必ず発生するとすれば」という前提条件を検査条件に付加して検査式を更新する検査式更新部と、を備えたことを特徴とする。
【選択図】 図7
Description
本発明は、モデル検査装置及びモデル検査方法に係り、特に、状態モデルに対して検査を行うモデル検査装置及びモデル検査方法に関する。
今日、ソフトウェアが複雑化してきたことにより、ソフトウェア自体のみならずソフトウェア作成の基となるシステム仕様に誤りが混入しやすくなってきている。また、システム仕様の複雑化に伴って、人の手では、システム仕様を網羅した検証が困難になってきている。経験や知識のない誤りは発見しづらく、また、後工程で発見された誤りは取り除くために膨大なコストがかかる。このため、システム仕様の誤りを可能な限り人の手を借りずに網羅的に検証し、誤りを早期に取り除くための仕組みが必要不可欠となってきている。
システム仕様を状態遷移モデルで表現すると共に検証条件を論理式で記述し、状態遷移モデルが論理式を満たすかどうかを検証することで仕様の正しさを証明する手法として、モデル検査と呼ばれる手法が知られている(特許文献1、2等)。
特開2007−11605号公報
特開2007−41677号公報
モデル検査では、状態遷移モデルとして記述されたシステム仕様と、時相論理式で記述された検査式をモデル検査装置に入力し、状態遷移モデルの動作(即ちシステム仕様)が検査式で表される検証条件を満たすか否かを網羅的に検査する。検証条件を満たさない動作(状態やイベント等)が検出された場合にはその動作は「反例」としてモデル検査装置から出力される。また、反例が検出された場合、その反例に至る直前の一連の動作もログデータとして出力される。モデル検査装置から出力される反例やログデータを人が解析することにより、システム仕様の誤りの発見とその修復を効率よく行うことができる。
しかしながら、従来のモデル検査では、システム仕様に誤りが無く、かつ検査式も検査すべき内容を正しく記述しているにもかかわらず、“まれ”に起こるという程度を超えて、明らかに考慮が不要な反例(以下、不要反例と呼ぶ)がモデル検査装置によってしばしば検出される。不要反例は、それを人が見て判断すれば、システム仕様と検査式とから当然に起こりうる反例であり、システム仕様の誤り発見には寄与しないような反例である。
従来のモデル検査では、不要反例が多く検出されることにより、本来の反例(システム仕様の誤りに起因する反例)の解析作業の妨げとなっていた。
本発明は上記事情に鑑みてなされたものであり、不要反例の検出を低減し、反例解析の効率を向上させることができるモデル検査装置及びモデル検査方法を提供することを目的とする。
上記課題を解決するため、本発明に係るモデル検査装置は、検査対象となる状態遷移モデルが記述されたモデルデータと、所定の状態に関する検査条件が時相論理式によって表現された検査式とを入力し、前記状態遷移モデルにおける夫々の状態の遷移が前記検査条件を満たすか否かを検査し、前記夫々の状態の遷移の中に前記検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力するモデル検査部と、前記検査条件に関わる所定の状態を前記検査式から注目状態として抽出する一方、抽出した前記注目状態に遷移するための遷移条件を前記モデルデータから抽出する遷移条件抽出部と、前記モデル検査部から出力される前記反例データを解析し、前記遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定する反例判定部と、前記遷移条件が常に発生していると判定された場合には、「前記遷移条件が常には発生しないとすれば」という前提条件を前記検査条件に付加して前記検査式を更新し、前記遷移条件が全く発生していないと判定された場合には、「前記遷移条件がいつかは必ず発生するとすれば」という前提条件を前記検査条件に付加して前記検査式を更新する検査式更新部と、を備えたことを特徴とする。
また、上記課題を解決するため、本発明に係るモデル検査方法は、検査対象となる状態遷移モデルが記述されたモデルデータと、所定の状態に関する検査条件が時相論理式によって表現された検査式とを入力し、前記状態遷移モデルにおける夫々の状態の遷移が前記検査条件を満たすか否かを検査し、前記夫々の状態の遷移の中に前記検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力し、前記検査条件に関わる前記所定の状態を前記検査式から注目状態として抽出する一方、抽出した前記注目状態に遷移するための遷移条件を前記モデルデータから抽出し、前記反例データを解析し、前記遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定し、前記遷移条件が常に発生していると判定された場合には、「前記遷移条件が常には発生しないとすれば」という前提条件を前記検査条件に付加して前記検査式を更新し、前記遷移条件が全く発生していないと判定された場合には、「前記遷移条件がいつかは必ず発生するとすれば」という前提条件を前記検査条件に付加して前記検査式を更新する、ステップを備えたことを特徴とする。
本発明に係るモデル検査装置及びモデル検査方法によれば、不要反例の検出を低減し、反例解析の効率を向上させることができる。
本発明に係るモデル検査装置及びモデル検査方法の実施形態について、添付図面を参照して説明する。
図1は、一般的なモデル検査装置の動作概念を模式的に示した図である。システム仕様は状態遷移モデルとして表現することが可能であり、システムがとりうる状態と、状態を遷移させるイベントやガード条件によって表すことができる。状態遷移モデルは、所定のモデル記述言語によってモデルデータとして記述することが可能であり、このモデルデータが検査対象としてモデル検査装置に入力される。
一方、システム仕様が所定の検査条件を満たすか否かを判定するための検査条件は、所定の言語で記述した検査式としてモデル検査装置に入力される。
モデル検査装置では、モデルデータが取りうる総ての状態遷移の組み合わせに対して検査式を満たすか否かを判定する。検査式を満たさない状態が発見された場合は、その状態が反例としてモデル検査装置から出力される。また、その状態へ至る過程もログデータをして出力される。反例やログデータがモデル検査装置の検査結果となる。
通常、検査式は時相論理式を用いて「満たすべき条件」を表現する。図2は、時相論理式で表現される検査式の概念を示す図である。時相論理式は、いくつかの時相論理記号と、述語pを用いて表現することができる。
時相論理記号としては、例えば「&&」、「II」、「!」、「−>」、「<>」、「[]」等がある。「&&」は「かつ」を意味する。「II」は、「または」を意味する。「!」は、否定を意味する。「−>」は、「ならば」を意味する。「<>」は、「いつか」を意味する。「[]」は、「常に」を意味する。
一方、述語pは、論理値「T(真)」と「F(偽)」を規定することができる条件を表す任意の述語である。
例えば、pとして「故障する」という述語を定義すると、「いつかは故障する」という検査条件に対応する検査式は、「<>p」となる。また、この検査条件を図で表現すると図2(a)のように表される。
「常に故障している」に対応する検査式は、「[]p」となり、この検査条件を図で表現すると、図2(b)のように表される。また、「いつか常に故障する」(或いは同じことを別の表現でいうと「あるときから常に故障する」)に対応する検査式は、「<>[]p」となり、この検査条件を図で表現すると、図2(c)のように表される。
また、「いつか故障する可能性が常にある」に対応する検査式は、「[]<>p」であり、この検査条件は、図2(d)のように表される。このように、モデル検査装置に入力される検査式は、時相論理記号と述語pによって記述される。
他方、モデル検査装置に入力される状態遷移モデルのモデルデータは、「状態」、「イベント」、及び「ガード条件」によって表現される。このうち、「イベント」と「ガード条件」は、必ず両者が揃って必要というわけではなく、いずれか一方のみでもよい。
図3は、状態遷移モデルの一例を示す図である。この状態遷移モデルでは、4つの「状態」(S1、S2、S3、及びS4)が規定されている。また、「イベント」として、「exit」キーの押下に対応する”exit”イベント、「enter」キーの押下に対応する”enter”イベント、及びキー押下なしに対応する”nothing”イベントの3つの「イベントが規定されている。
また、ガード条件としてg1が規定されており、「ガード条件g1が真ならば」は、[g1]と表記し、「ガード条件g1が偽ならば」は、[!g1]と表記している。
この状態遷移モデルでは、例えば、状態「S1」にあるとき、キー押下がなければ状態「S1」を維持し、「enter」キーが押下されると状態「S2」に遷移する。状態「S2」において、「enter」キーが押下され、そのとき「ガード条件g1が真ならば」状態「S2」を維持する。一方、「enter」キーが押下され、そのとき「ガード条件g1が偽ならば」状態「S2」から状態「S3」に遷移する。
モデル検査装置は、入力された状態遷移モデルがとりうるすべての振る舞いに対して、入力された検査式に対応する検査条件を満たすか否かを検査し、検査条件を満たさない事象が発生した場合は、「検査条件を満たさない」という事実を示す具体例を反例として出力すると共に、反例の直前の状態やイベントの遷移系列をシーケンシャルにログデータとして出力する。
図4は、反例とログデータの出力例を示す図である。この例では、「2つのプロセスP1、P2の状態の組み合わせがS4、S5となることはない」という検査条件を、ある状態遷移モデルを表すモデルデータ(図示せず)と共にモデル検査装置に入力している。上記の検査条件を検査式で表現すると、例えば、「[](!(P1_State==S4&&P2_State==S5))」となる。
入力した状態遷移モデルの振る舞いがこの検査条件を満たさなかった場合、図4の右側に例示するような反例とログデータが出力される。反例出力の最下欄には、プロセスP2の状態がS5であり、プロセスP1の状態がS4であることが示されている。これは明らかに上記の検査条件を満たしていないため、反例として出力される。また、この反例の直前の状態、イベント、ガード条件もログデータとして出力されることも例示している。
出力された反例とログデータは人によって解析され、この解析によって状態遷移モデルとして表現されているシステム仕様の誤りを早期に発見し、訂正することができる。
しかしながら、モデル検査装置が、次に示すような不要反例を頻繁に出力すると、この不要反例はシステム仕様の有意な解析に何ら寄与せず、むしろ本来の反例解析作業の妨げとなる。
図5は、このような不要反例の一例を示す図である。本例で検査の対象となる状態遷移モデルは、図5の上方に示す状態遷移図で表されるものとする。即ち、この状態遷移モデルでは、状態Aにあるとき、イベントe1が発生しても状態Aを維持し続けるが、イベントe2が発生しかつガード条件g1が真になると状態Aから状態Bに遷移する。また、状態Bにあるとき、イベントe3が発生すると状態Bから状態Aに戻る。
この状態遷移モデルに対して、「いつかは状態Bになる」という検査条件の反例を探したいとする。「いつかは状態Bになる」に対応する検査式は、「<>state == B」等で表現される。
このとき、例えば、エベントe1が永久に発生し続けると、所定の検査時間を経過しても検査が終了しないため、従来のモデル検査装置では図5の右上に示したような反例を出力する。また、例えば、ガード条件g1が永久に真にならないとすると、従来のモデル検査装置では図5の右下にしめしたような反例を出力する。
これらの反例は、システム仕様から人が判断すれば自明の反例であり、システム仕様の有意な解析に何ら寄与せず、本来の反例解析作業の妨げとなるだけである。このような反例を不要反例と呼んでいる。
本実施形態に係るモデル解析装置1は、このような不要反例の発生を防止、或いは低減するものであり、図6はモデル解析装置1の動作概念を示す図である。
まず、ステップST(1)として、モデルデータと検査式をモデル検査装置1に入力する。ここで入力する検査式は従来から使用されている検査式であり、例えば、検査条件「いつかは状態Bになる」に対応する検査式、「<>state == B」、などである。
ステップST(2)でモデル検査を行う。入力されたモデルデータに検査式を満たさない状態等がある場合は、ステップST(3)に進む。
ステップST(3)では、出力された反例をモデル検査装置1が解析し、反例が不要反例であるか否かを判定する。不要反例ではないと判定された場合(即ち、有意な反例であると判定された場合)は、ステップST(3)’にて、出力された反例が検査結果としてモデル検査装置1から出力される。
一方、不要反例であると判定された場合には、ステップST(4)にて、モデル検査装置1が、その不要反例の発生を防止すべく検査式の改良を行い、改良された検査式で再度ステップST(2)のモデル検査を行う。このモデル検査では、検査式が改良されているため、不要反例が検出されることがなく、有意な反例のみがモデル検査装置1から出力されることになる。
図7は、上記の動作を実現する本実施形態に係るモデル検査装置1の構成例を示す図である。
モデル検査装置1は、モデル検査部10、遷移条件抽出部11、反例判定部12、検査式更新部13、ユーザインタフェース部14等を備えて構成される。
モデル検査装置1には、検査対象となる状態遷移モデルが所定の記述言語で記述されたモデルデータが入力され、適宜の記憶媒体に保存される。また、この状態遷移モデルの中の特定の状態に関する検査条件が時相論理式によって表現された検査式も入力され、適宜の記憶媒体に保存される。
モデル検査部10は、入力された状態遷移モデル(モデルデータ)における夫々の状態の遷移が検査条件を満たすか否かを入力された検査式に基づいて検査し、夫々の状態の遷移の中に検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力する。また、その状態遷移へ至る状態の遷移系列(ログデータ)も反例データをして出力する。モデル検査部10から出力された反例データは、適宜の記憶媒体に保存される。
遷移条件抽出部11は、検査式から検査条件に関する所定の状態を注目状態として特定し抽出する。また、抽出した注目状態に遷移するための遷移条件を前記モデルデータから抽出する。ここで、遷移条件とは、ある状態から注目状態へ遷移するための「イベント」や「ガード条件」のことである。
反例判定部12は、モデル検査部10から出力された反例データを解析し、遷移条件抽出部が抽出した上記の遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定する。
検査式更新部13は、遷移条件が常に発生していると判定された場合には、「その遷移条件が常には発生しないとすれば」という前提条件を検査条件に付加して保存されている検査式を更新する。また、遷移条件が全く発生していないと判定された場合には、「前記遷移条件がいつかは必ず発生するとすれば」という前提条件を検査条件に付加して保存されている検査式を更新する。
ユーザインタフェース部14は、ディスプレイ装置等の表示手段と、キーボードやマウス等のデータ入力手段等を備えて構成されるものである。検査式更新部13は、検査式を更新する前に更新の許可をユーザインタフェース部14を介してユーザに求め、ユーザインタフェース部14から許可を示すデータがユーザから入力されたとき、検査式を更新するようにしてもよい。
図8は、モデル検査装置1で行うモデル検査方法のより具体的な処理の例を示すフローチャートである。
ステップST10からステップST13までの処理は、遷移条件抽出部11が主に行う処理である。
まず、ステップST10、及びステップST11で、モデルデータと検査式を入力する。ステップST12では、入力した検査式から注目する状態を特定する。例えば、検査条件が「いつかは状態Bになる」である場合は、この検査条件に対応する検査式は、「<>state == B」となる。遷移条件抽出部11では、この検査式から、注目状態が「B」であることを特定する。
ステップST13では、モデルデータから、注目状態に遷移するための遷移条件、具体的には、注目状態に遷移するための「イベント」と「ガード条件」を抽出する。
図9は、入力したモデルデータの一例を状態遷移図で表したものであり、特に、注目状態「B」を中心とした状態遷移図を示す図である。この図は、ステップST12で特定された注目状態Bへ遷移するためには、1)イベント「e1」が起こり、かつ、そのときガード条件g1が「真」になっていること、2)イベント「e2」が起こること、又は、3)ガード条件g1が「真」になっていること、の3つの条件のうち少なくとも1つの条件が満たされることが必要であることを示している。
ステップST13では、入力したモデルデータからこれらのイベント(本例では、e1とe2)及びガード条件(本例では、g1とg2)を抽出し、それぞれをイベントリスト及びガードリストとして、適宜の記憶手段に保存する。
一方、ステップST14では、モデル検査部10が、入力した検査式とモデルデータとに基づいてモデル検査を実行し、反例データを出力する。
ステップST15乃至ステップST18は、状態遷移抽出部11から出力されたイベントリスト及びガードリストと、モデル検査部10から出力された反例データを解析し、イベントリスト及びガードリストにリストアップされている遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定する。この判定は、反例判定部12で行う。
具体的には、次の4つの判定を行う。ステップST15では、第1の判定を行っており、注目状態に遷移するイベントが常に起こっているか否かを判定する。あるイベントが常に起こっているという反例は、図5の右上に示したように不要反例の1つであり、第1の判定では出力された反例がこの種の不要反例に該当するか否かを判定している。本例の場合、ステップST15では、e1、又はe2が常に起こっているか否かを判定する。
ステップST16は、第2の判定を行っており、第1の判定とは逆に、注目状態に遷移するイベントが全く起こっていないか否かを判定する。注目状態に遷移するイベントが全く起こっていないという反例も有意な反例とはいえず、不要反例に該当する。本例の場合、ステップST16では、イベントe1、又はe2が全く起こっていないか否かを判定する。
ステップST17は、第3の判定を行っており、ガード条件が常に「偽」になっているか否かを判定する。ガード条件が常に「偽」になっている状況は、上記のイベントが全く発生しない状況と類似しており、このような状況を示す反例も有意な反例とはいえず、不要反例に該当する。本例の場合、ステップST17では、ガード条件g1、又はg2が常に「偽」になっているか否かを判定する。
ステップST18は、第4の判定を行っており、ガード条件が常に「真」になっているか否かを判定する。ガード条件が常に「真」になっている状況は、イベントが常に起こっている状態と類似しており、このような状況を示す反例もやはり有意な反例とはいえず、不要反例に該当する。本例の場合、ステップST18では、ガード条件g1、又はg2が常に「真」になっているか否かを判定する。
ステップST19乃至ステップST22は、反例判定部12での判定結果を受けて、遷移条件が常に発生していると判定された場合には、「その遷移条件が常には発生しないとすれば」という前提条件を検査条件に付加して保存されている検査式を更新し、遷移条件が全く発生していないと判定された場合には、「前記遷移条件がいつかは必ず発生するとすれば」という前提条件を検査条件に付加して保存されている検査式を更新する処理である。具体的には、前述した第1乃至第4の判定結果に応じて、ステップST19乃至ステップST22の夫々で検査式の更新を行う。
ステップST19では、第1の判定によって、注目状態に遷移するイベントが常に起こっている、と判定された場合、「該当するイベントが常には起こり続けないとすれば」という前提条件を検査式の先頭に付加する。例えば、常に起こり続けているイベントがe1であるとする。この場合、「いつかは状態Bになる」という現在の検査条件を、「イベントe1が常には起こり続けないとすると、いつかは状態Bになる」という検査条件に変更し、更新する。検査式で表現すると、「<>state == B」という現在の検査式を、「(! [] event==e1) -> (<>state == B)」という検査式に変更し、ステップST23で保存されている検査式を更新する。更新された検査式を用いて再度モデル検査を行うと、イベントe1が常に起こっているという不要反例の出力を排除することができる。
ステップST20では、第2の判定によって、注目状態に遷移するイベントが全く起こっていない、と判定された場合、「該当するイベントがいつかは必ず起こるとすれば」という前提条件を検査式の先頭に付加する。例えば、全く起こっていないイベントがe1であるとする。この場合、「いつかは状態Bになる」という現在の検査条件を、「イベントe1がいつかは必ず起こるとすれば、いつかは状態Bになる」という検査条件に変更し、更新する。検査式で表現すると、「<>state == B」という現在の検査式を、「([] <> event==e1) -> (<>state == B)」という検査式に変更し、ステップST23で保存されている検査式を更新する。更新された検査式を用いて再度モデル検査を行うと、イベントe1が全く起こっていないという不要反例の出力を排除することができる。
ステップST21では、第3の判定によって、注目状態に遷移するガード条件が常に偽になっている、と判定された場合、「該当するガード条件がいつかは必ず真になるとすれば」という前提条件を検査式の先頭に付加する。例えば、常に偽になっているガード条件がg1であるとする。この場合、「いつかは状態Bになる」という現在の検査条件を、「ガード条件g1がいつかは必ず真になるとすれば、いつかは状態Bになる」という検査条件に変更し、更新する。検査式で表現すると、「<>state == B」という現在の検査式を、「([] <> g1) -> (<>state == B)」という検査式に変更し、ステップST23で保存されている検査式を更新する。更新された検査式を用いて再度モデル検査を行うと、ガード条件g1が常に偽になっているという不要反例の出力を排除することができる。
ステップST22では、第4の判定によって、注目状態に遷移するガード条件が常に真になっている、と判定された場合、「該当するガード条件がいつかは必ず偽になるとすれば」という前提条件を検査式の先頭に付加する。例えば、常に真になっているガード条件がg1であるとする。この場合、「いつかは状態Bになる」という現在の検査条件を、「ガード条件g1がいつかは必ず偽になるとすれば、いつかは状態Bになる」という検査条件に変更し、更新する。検査式で表現すると、「<>state == B」という現在の検査式を、「([] <> !g1) -> (<>state == B)」という検査式に変更し、ステップST23で保存されている検査式を更新する。更新された検査式を用いて再度モデル検査を行うと、ガード条件g1が常に真になっているという不要反例の出力を排除することができる。
なお、ステップST23における検査式の更新の前に、変更しようとする検査式をユーザインタフェース部14のディスプレイ装置等に表示し、ユーザからの更新許可の入力の有無を判定するステップを設けても良い。この場合、ユーザから検査式更新の許可が入力されたときに限り検査式が更新されることになるため、装置による自動判定結果に人の判断が加わり、検査式の変更と更新の信頼性をより高めることができる。
以上説明してきたように、本実施形態に係るモデル検査装置1及びモデル検査方法によれば、不要反例の検出を低減することができる。この結果、本来求めていた有意な反例の解析に集中することが可能となり、反例解析の効率を向上させることができる。また、有意な反例であっても不要反例であっても、モデル検査装置が反例を出力するためには、ある程度の処理時間が必要となるが、不要反例が出力されるとこの処理時間は無駄な時間となる。本実施形態に係るモデル検査装置1及びモデル検査方法によれば、このような無駄な時間が無くなるため、反例解析に要する全体の時間が短縮される。
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
1 モデル検査装置
10 モデル検査部
11 遷移条件抽出部
12 反例判定部
13 検査式更新部
14 ユーザインタフェース部
10 モデル検査部
11 遷移条件抽出部
12 反例判定部
13 検査式更新部
14 ユーザインタフェース部
Claims (8)
- 検査対象となる状態遷移モデルが記述されたモデルデータと、所定の状態に関する検査条件が時相論理式によって表現された検査式とを入力し、前記状態遷移モデルにおける夫々の状態の遷移が前記検査条件を満たすか否かを検査し、前記夫々の状態の遷移の中に前記検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力するモデル検査部と、
前記検査条件に関わる所定の状態を前記検査式から注目状態として抽出する一方、抽出した前記注目状態に遷移するための遷移条件を前記モデルデータから抽出する遷移条件抽出部と、
前記モデル検査部から出力される前記反例データを解析し、前記遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定する反例判定部と、
前記遷移条件が常に発生していると判定された場合には、「前記遷移条件が常には発生しないとすれば」という前提条件を前記検査条件に付加して前記検査式を更新し、
前記遷移条件が全く発生していないと判定された場合には、「前記遷移条件がいつかは必ず発生するとすれば」という前提条件を前記検査条件に付加して前記検査式を更新する検査式更新部と、
を備えたことを特徴とするモデル検査装置。 - 前記遷移条件は、イベントの発生の有無であり、
前記遷移条件抽出部は、抽出した前記注目状態に遷移するための前記イベントを前記モデルデータから抽出し、
前記反例判定部は、前記注目状態に遷移するための前記イベントが常に起こっているか否か、或いは全く起こっていないか否かを判定し、
前記検査式更新部は、前記イベントが常に起こっていると判定された場合には、「前記イベントが常には起こり続けないとすれば」という第1の前提条件を前記検査条件に付加して前記検査式を更新し、前記イベントが全く起こっていないと判定された場合には、「前記イベントがいつかは必ず起こるとすれば」という第2の前提条件を前記検査条件に付加して前記検査式を更新する、
ことを特徴とする請求項1に記載のモデル検査装置。 - 前記遷移条件は、ガード条件の真偽であり、
前記遷移条件抽出部は、抽出した前記注目状態に遷移するための前記ガード条件を前記モデルデータから抽出し、
前記反例判定部は、前記注目状態に遷移するための前記ガード条件が常に偽になっているか否か、或いは常に真になっているか否かを判定し、
前記検査式更新部は、前記ガード条件が常に偽になっていると判定された場合には、「前記ガード条件がいつか必ず真になるとすれば」という第1の前提条件を前記検査条件に付加して前記検査式を更新し、前記ガード条件が常に真になっていると判定された場合には、「前記ガード条件がいつか必ず偽になるとすれば」という第2の前提条件を前記検査条件に付加して前記検査式を更新する、
ことを特徴とする請求項1に記載のモデル検査装置。 - 前記反例判定部において、前記注目状態に遷移するための前記遷移条件が常に発生している、或いは全く発生していないと判定された場合、前記検査式更新部にて前記検査式を更新するか否かをユーザに問い合わせるユーザインタフェース部、
をさらに備えたことを特徴とする請求項1に記載のモデル検査装置。 - 検査対象となる状態遷移モデルが記述されたモデルデータと、所定の状態に関する検査条件が時相論理式によって表現された検査式とを入力し、
前記状態遷移モデルにおける夫々の状態の遷移が前記検査条件を満たすか否かを検査し、
前記夫々の状態の遷移の中に前記検査条件を満たさない状態遷移を検出した場合は、その状態遷移を反例データとして出力し、
前記検査条件に関わる前記所定の状態を前記検査式から注目状態として抽出する一方、抽出した前記注目状態に遷移するための遷移条件を前記モデルデータから抽出し、
前記反例データを解析し、前記遷移条件が常に発生しているか否か、或いは全く発生していないか否かを判定し、
前記遷移条件が常に発生していると判定された場合には、「前記遷移条件が常には発生しないとすれば」という前提条件を前記検査条件に付加して前記検査式を更新し、
前記遷移条件が全く発生していないと判定された場合には、「前記遷移条件がいつかは必ず発生するとすれば」という前提条件を前記検査条件に付加して前記検査式を更新する、
ステップを備えたことを特徴とするモデル検査方法。 - 前記遷移条件は、イベントの発生の有無であり、
前記遷移条件を抽出するステップでは、抽出した前記注目状態に遷移するための前記イベントを前記モデルデータから抽出し、
前記判定するステップでは、前記注目状態に遷移するための前記イベントが常に起こっているか否か、或いは全く起こっていないか否かを判定し、
前記検査式を更新するステップでは、前記イベントが常に起こっていると判定された場合には、「前記イベントが常には起こり続けないとすれば」という第1の前提条件を前記検査条件に付加して前記検査式を更新し、前記イベントが全く起こっていないと判定された場合には、「前記イベントがいつかは必ず起こるとすれば」という第2の前提条件を前記検査条件に付加して前記検査式を更新する、
ことを特徴とする請求項5に記載のモデル検査方法。 - 前記遷移条件は、ガード条件の真偽であり、
前記遷移条件を抽出するステップでは、抽出した前記注目状態に遷移するための前記ガード条件を前記モデルデータから抽出し、
前記判定するステップでは、前記注目状態に遷移するための前記ガード条件が常に偽になっているか否か、或いは常に真になっているか否かを判定し、
前記検査式を更新するステップでは、前記ガード条件が常に偽になっていると判定された場合には、「前記ガード条件がいつか必ず真になるとすれば」という第1の前提条件を前記検査条件に付加して前記検査式を更新し、前記ガード条件が常に真になっていると判定された場合には、「前記ガード条件がいつか必ず偽になるとすれば」という第2の前提条件を前記検査条件に付加して前記検査式を更新する、
ことを特徴とする請求項5に記載のモデル検査方法。 - 前記判定ステップにおいて、前記注目状態に遷移するための前記遷移条件が常に発生している、或いは全く発生していないと判定された場合、前記検査式を更新するか否かをユーザに問い合わせる、
ステップをさらに備えたことを特徴とする請求項5に記載のモデル検査方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008298955A JP2010128513A (ja) | 2008-11-25 | 2008-11-25 | モデル検査装置及びモデル検査方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008298955A JP2010128513A (ja) | 2008-11-25 | 2008-11-25 | モデル検査装置及びモデル検査方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010128513A true JP2010128513A (ja) | 2010-06-10 |
Family
ID=42328898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008298955A Pending JP2010128513A (ja) | 2008-11-25 | 2008-11-25 | モデル検査装置及びモデル検査方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010128513A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012137938A (ja) * | 2010-12-27 | 2012-07-19 | Internatl Business Mach Corp <Ibm> | リソース保護処理プログラムとリソース保護処理装置とリソース保護処理方法 |
WO2014118979A1 (ja) * | 2013-02-01 | 2014-08-07 | 株式会社日立製作所 | 性能モデル検査装置、および、性能モデル検査方法 |
-
2008
- 2008-11-25 JP JP2008298955A patent/JP2010128513A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012137938A (ja) * | 2010-12-27 | 2012-07-19 | Internatl Business Mach Corp <Ibm> | リソース保護処理プログラムとリソース保護処理装置とリソース保護処理方法 |
WO2014118979A1 (ja) * | 2013-02-01 | 2014-08-07 | 株式会社日立製作所 | 性能モデル検査装置、および、性能モデル検査方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11226892B2 (en) | Analyzing software test failures using natural language processing and machine learning | |
JP2006244073A (ja) | 半導体設計装置 | |
JP5011947B2 (ja) | Fmeaシートの作成方法およびfmeaシート自動作成装置 | |
JPWO2013058393A1 (ja) | 異常検出装置、プログラム、及び、方法 | |
JP2010128513A (ja) | モデル検査装置及びモデル検査方法 | |
JP6416588B2 (ja) | ソースコード検証システム | |
US20090132227A1 (en) | Counter example analysis support apparatus | |
EP3570173B1 (en) | Equivalence verification apparatus and equivalence verification program | |
JP2009134360A (ja) | モデル検査システム、モデル検査方法およびモデル検査用プログラム | |
JP4972970B2 (ja) | ソースプログラム中の関数呼出し異常パターン検出プログラム | |
JP5188421B2 (ja) | ソースコード解析方法およびソースコード解析支援システム | |
Srisura et al. | False test case selection: Improvement of regression testing approach | |
JP2010140084A (ja) | 検査モデル生成装置、モデル検査装置、及び検査モデル生成方法 | |
JPWO2016151710A1 (ja) | 仕様構成装置および方法 | |
JP2009252167A (ja) | テスト項目生成装置、テスト項目生成システム、テスト項目生成方法、およびテスト項目生成プログラム | |
JP5755861B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP6723483B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP6731366B2 (ja) | ソースコード検証システム | |
US20080133199A1 (en) | Apparatus and method for detecting ligand by using automatic specific site extraction | |
JP5906965B2 (ja) | 車載ecuの評価装置 | |
JP4835791B2 (ja) | Gui評価システム、gui評価方法およびgui評価用プログラム | |
JP2005208762A5 (ja) | ||
JP2007257397A (ja) | 競合状態検出処理追加プログラム、競合状態検出処理追加装置、競合状態検出処理追加方法 | |
JP4952317B2 (ja) | 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 | |
JP4231037B2 (ja) | 入力誤り修復支援装置 |