(57)【要約】【課題】使い勝手の良いモデル検査装置を提供することである。【解決手段】状態遷移表情報を取得する取得手段と、モデル検査の対象となるシステムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定手段と、取得された前記状態遷移表情報を、イベントの発生を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換手段と、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査手段と、前記検査部での検査結果を表示部に表示させる検査結果表示出力制御手段とを有する構成となる。【選択図】図２
2013200787.tif 000002
【特許請求の範囲】
【請求項１】
情報を処理する処理ユニットを有するコンピュータにより構成され、
あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査を行うモデル検査装置であって、
前記処理ユニットは、
前記状態遷移表情報を取得する取得手段と、
モデル検査の対象となる前記システムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定手段と、
取得された前記状態遷移表情報を、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換手段と、
前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査手段と、
前記検査手段での検査結果を表示部に表示させる検査結果表示出力制御手段とを有するモデル検査装置。
【請求項２】
前記検査手段は、前記木構造状態遷移情報にて表される木構造のノード群の階層毎に、前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードを検出する反例検出手段と、
前記最上位の階層のノードに対応する状態から検出された前記ノードに対応する状態までの遷移パスを検出する反例ルート検出手段とを有する請求項１記載のモデル検査装置。
【請求項３】
前記状態遷移表情報を記憶する記憶手段を有し、
前記取得手段は、操作部での操作に応じて、前記記憶手段から前記状態遷移表情報を読み出して取得する請求項１または２記載のモデル検査装置。
【請求項４】
前記状態遷移表情報は、複数の状態遷移表のそれぞれを表し、
前記取得手段は、操作部での操作に応じて、前記複数の状態遷移表から一又は複数の状態遷移表を選択する選択手段を有し、該選択手段にて選択された一又は複数の状態遷移表のそれぞれを表す状態遷移表情報を取得する請求項３記載のモデル検査装置。
【請求項５】
前記処理ユニットは、操作部での操作に応じて、前記検査手段が前記木構造状態遷移情報を処理して前記状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどるべき階層の数を設定する階層範囲設定手段を有する請求項１乃至４のいずれかに記載のモデル検査装置。
【請求項６】
前記処理ユニットは、操作部での操作に応じて、前記検査手段が前記木構造状態遷移情報を処理して前記遷移パスに沿ってたどるべきノードに含まれる変数の初期値及びその取り得る範囲を設定する変数範囲設定手段を有する請求項１乃至５のいずれかに記載のモデル検査装置。
【請求項７】
前記検査性質設定手段は、ある条件が正常であることを表す情報を前記検査性質情報として設定し、
前記検査手段は、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記条件が正常であることに反する状態を表すノードに到達するか否かを検査する変数制約検査手段を有する請求項１乃至６のいずれかに記載のモデル検査装置。
【請求項８】
前記検査性質設定手段は、前記状態遷移表において取り得ないイベントと状態との組み合わせを表す情報を前記検査性質情報として設定し、
前記検査手段は、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記状態遷移表において取り得ないイベントと状態との組み合わせに対応した状態を表すノードに到達するか否かを検査する不可セル検査手段を有する請求項１乃至７のいずれかに記載のモデル検査装置。
【請求項９】
前記検査結果出力制御手段は、前記検査手段により検査結果として得られた、前記状態を示すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに至までの各ノードに対応した項目を前記表示部にリスト表示させる請求項１乃至８のいずれかに記載のモデル検査装置。
【請求項１０】
前記処理ユニットは、取得された前記状態遷移表情報に基づいて、前記状態遷移表を前記表示部に表示させる状態遷移表出力制御手段と、
操作部での操作によって、前記表示部にリスト表示された各ノードに対応する項目が指定されたときに、指定された項目に対応したノードが表す状態に対応する前記状態遷移表における状態とイベントとの組み合わせを検出する手段と、
前記状態遷移表出力手段は、前記検出された状態とイベントとの組み合わせが明示されるように前記状態遷移表を前記表示部に表示させる請求項９記載のモデル検査装置。
【請求項１１】
自然言語を用いておらず、図式化された状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査を行う請求項１乃至１０のいずれかに記載のモデル検査装置。
【請求項１２】
情報を処理する処理ユニットを有するコンピュータにより構成され、
あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査を行うモデル検査装置における前記処理ユニットにて実行される検査処理方法であって、
前記状態遷移表情報を取得する取得ステップと、
モデル検査の対象となる前記システムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定ステップと、
取得された前記状態遷移表情報を、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換ステップと、
前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査ステップと、
前記検査部での検査結果を表示部に表示させる検査結果表示出力制御ステップとを有するモデル検査方法。
【請求項１３】
あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査に係る処理ステップをコンピュータに実行させるプログラムであって、
前記状態遷移表情報を取得する取得ステップと、
モデル検査の対象となる前記システムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定ステップと、
取得された前記状態遷移表情報を、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換ステップと、
前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査ステップと、
前記検査部での検査結果を表示部に表示させる検査結果表示出力制御ステップと前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの振る舞いを記述した状態遷移表を用いて、該システムのモデル検査を行うモデル検査装置、モデル検査処理方法及びプログラムに関する。
【背景技術】
【０００２】
ハードウェアやソフトウェアの設計から導出されたモデルが、設計仕様を満たすか否かを検査するモデル検査の手法が知られている。このモデル検査の手法では、検査対象となるモデルがとりうる状態ごとに、各状態が設計仕様を満たすか否かを網羅的に検査する。
【０００３】
従来、引用文献１に記載されるモデル検査支援装置が知られている。このモデル検査支援装置は、システムの状態遷移を記述する状態遷移表と、システムの状態毎にシステム内の構成要素の取り得る値を記述する制約条件表と、前記状態遷移表に記述したアクションの内容を記述するアクション表とを入力し、これらの表から抽出した記述に基づいて検証すべきシステムの動作と制約条件とを含んだモデル検査プログラムを生成する。そして、その生成されたモデル検査プログラムを、専用のモデル検査ツール（モデル検査器）が実行することにより、ハードウェアやソフトウェアで構築されるシステムが設計仕様を満たすか否かの検査がなされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５７６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ハードウェア及びまたはソフトウェアにて構築されるシステムを設計するに際して、そのシステムの振る舞いを表す状態遷移表が作成された場合、その状態遷移表を用いて前記システムについてのモデル検査を行うことができる。そして、モデル検査の結果に基づいて状態遷移表の修正が行われ、その状態遷移表の修正と、モデル検査とを繰り返すことにより、所望の振る舞いを行ない得るシステムを設計することができる。このように、システムを設計するに際して、モデル検査が繰り返し行われることになるので、この種のモデル検査の手法にあっては、その使い勝手が良いことが望まれる。
【０００６】
本発明は、このような事情に鑑みてなされたもので、使い勝手の良いモデル検査装置を提供するものである。
【０００７】
また、本発明は、そのようなモデル検査装置においてなされるモデル検査処理の方法（モデル検査処理方法）及びそのモデル検査処理をコンピュータに実行させるためのプログラムを提供するものである。
【課題を解決するための手段】
【０００８】
本発明に係るモデル検査装置は、情報を処理する処理ユニットを有するコンピュータにより構成され、あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査を行うモデル検査装置であって、前記処理ユニットは、前記状態遷移表情報を取得する取得手段と、モデル検査の対象となる前記システムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定手段と、取得された前記状態遷移表情報を、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換手段と、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査手段と、前記検査手段での検査結果を表示部に表示させる検査結果表示出力制御手段とを有する構成となる。
【０００９】
このような構成により、あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報が取得され、モデル検査の対象となる前記システムが持つべき性質を表す情報が検査性質情報として設定されると、前記状態遷移情報が、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換され、その木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かが検査される。そして、その検査結果が表示部に表示される。
【００１０】
本発明に係るモデル検査装置において、前記検査手段は、前記木構造状態遷移情報にて表される木構造のノード群の階層毎に、前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードを検出する反例検出手段と、前記最上位の階層のノードに対応する状態から検出された前記ノードに対応する状態までの遷移パスを検出する反例ルート検出手段とを有する構成とすることができる。
【００１１】
このような構成により、いずれかの階層において検査性質情報にて表されるシステムが持つべき性質に反する状態を表すノードが検出されると、最上位のノードに対応した状態から検出された前記ノードに対応する状態までの遷移パスが検出される。
【００１２】
また、本発明に係るモデル検査装置において、前記状態遷移表情報を記憶する記憶手段を有し、前記取得手段は、操作部での操作に応じて、前記記憶手段から前記状態遷移表情報を読み出して取得する構成とすることができる。
【００１３】
このような構成により、利用者が、操作部を操作することにより、記憶手段に記憶された状態遷移表情報をモデル検査に供することができるようになる。
【００１４】
また、本発明に係るモデル検査装置において、前記状態遷移表情報は、複数の状態遷移表のそれぞれを表し、前記取得手段は、操作部での操作に応じて、前記複数の状態遷移表から一又は複数の状態遷移表を選択する選択手段を有し、該選択手段にて選択された一又は複数の状態遷移表のそれぞれを表す状態遷移表情報を取得する構成とすることができる。
【００１５】
このような構成により、システムの振る舞いが複数の状態遷移表にて表される場合に、利用者は、操作部を操作することにより、モデル検査に供すべき一又は複数の状態遷移表のそれぞれを表す状態遷移情報を選択することができるようになる。このため、検査対象を絞りこむことが可能となり、より使い勝手の良いものとなる。
【００１６】
また、本発明に係るモデル検査装置において、前記処理ユニットは、操作部での操作に応じて、前記検査手段が前記木構造状態遷移情報を処理して前記状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどるべき階層の数を設定する階層範囲設定手段を有する構成とすることができる。
【００１７】
このような構成により、利用者は、操作部を操作することにより、前記木構造状態遷移情報を処理して前記状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどるべき階層の数を設定することができるようになるので、検査対象を絞りこむことが可能となり、より使い勝手の良いものとなる。
【００１８】
更に、本発明に係るモデル検査装置において、前記処理ユニットは、操作部での操作に応じて、前記検査手段が前記木構造状態遷移情報を処理して前記遷移パスに沿ってたどるべきノードに含まれる変数の初期値及びその取り得る範囲を設定する変数範囲設定手段を有する構成とすることができる。
【００１９】
このような構成により、利用者は、操作部を操作することにより、操作部での操作に応じて、前記検査手段が前記木構造状態遷移情報を処理して前記遷移パスに沿ってたどるべきノードに含まれる変数の初期値及びその取り得る範囲を設定することができるようになるので、検査対象を絞りこむことが可能となり、より使い勝手が良いものとなる。
【００２０】
また、本発明に係るモデル検査装置において、前記検査性質設定手段は、ある条件が正常であることを表す情報を前記検査性質情報として設定し、前記検査手段は、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記条件が正常であることに反する状態を表すノードに到達するか否かを検査する変数制約検査手段を有する構成とすることができる。
【００２１】
このような構成により、システムの振る舞いを表すものとして作成された状態遷移表が、ある条件が正常であることに反する状態に遷移することを表しているか否かを検査することができる。この検査結果に基づいて、ある条件が正常であることに反する状態に遷移しないように状態遷移表を修正することができる。
【００２２】
また、本発明に係るモデル検査装置において、前記検査性質設定手段は、前記状態遷移表において取り得ないイベントと状態との組み合わせを表す情報を前記検査性質情報として設定し、前記検査手段は、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記状態遷移表において取り得ないイベントと状態との組み合わせに対応した状態を表すノードに到達するか否かを検査する不可セル検査手段を有する構成とすることができる。
【００２３】
このような構成により、システムの振る舞いを表すものとして作成された状態遷移表が、取り得ないイベントと状態との組み合わせが状態遷移によって実際に取り得る場合があるか否かを検査することができる。この検査結果に基づいて、取り得ないとしたイベントと状態の組合せとが実際に取り得ないように状態遷移表を修正することができる。
【００２４】
また、本発明に係るモデル検査装置において、前記検査結果出力制御手段は、前記検査手段により検査結果として得られた、前記状態を示すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに至までの各ノードに対応した項目を前記表示部にリスト表示させる構成とすることができる。
【００２５】
このような構成により、イベントの発生により順次遷移するシステムでの各状態に対応した項目が、当該システムが持つべき性質に反する状態に至るまで、表示部にリスト表示されるので、そのリストに基づいてシステムが持つべき性質に反する状態に至る原因を容易につきとめることができる。
【００２６】
更に、本発明に係るモデル検査装置において、前記処理ユニットは、取得された前記状態遷移表情報に基づいて、前記状態遷移表を前記表示部に表示させる状態遷移表出力制御手段と、操作部での操作によって、前記表示部にリスト表示された各ノードに対応する項目が指定されたときに、指定された項目に対応したノードが表す状態に対応する前記状態遷移表における状態とイベントとの組み合わせを検出する手段と、前記状態遷移表出力手段は、前記検出された状態とイベントとの組み合わせを明示的に区別するように前記状態遷移表を前記表示部に表示させる構成とすることができる。
【００２７】
このような構成により、表示部に、システムの振る舞いを表す状態遷移表が表示されるとともに、状態を示すノードをイベントの発生に対応した遷移パスに沿ってたどって前記システムが持つべき性質に反する状態を表すノードに至までの各ノードに対応した項目がリスト表示された状態で、利用者が、操作部を操作することにより、表示部にリスト表示された項目を指定すると、その指定された項目に対応したノードが表す状態に対応する前記状態遷移表における状態とイベントの組との組み合わせが明示されるようになるので、状態遷移表において、システムが持つべき性質に反する状態に至る原因を容易につきとめることができる。
【００２８】
また、本発明に係るモデル検査装置において、自然言語を用いておらず、図式化された状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査を行う構成とすることができる。
【００２９】
このような構成により、自然言語を用いておらず、図式化された状態遷移表を表す状態遷移表情報を用いてモデル検査がなされるので、モデル検査のための言語習得を特に必要とせず、より使い勝手の良いモデル検査装置を実現することができる。
【００３０】
本発明に係るモデル検査処理方法は、情報を処理する処理ユニットを有するコンピュータにより構成され、あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査を行うモデル検査装置における前記処理ユニットにて実行される検査処理方法であって、前記状態遷移表情報を取得する取得ステップと、モデル検査の対象となる前記システムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定ステップと、取得された前記状態遷移表情報を、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換ステップと、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査ステップと、前記検査部での検査結果を表示部に表示させる検査結果表示出力制御ステップとを有する構成となる。
【００３１】
本発明に係るプログラムは、あるシステムにおいて取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけて表形式に表した状態遷移表を表す状態遷移表情報を用いて前記システムについてのモデル検査に係る処理ステップをコンピュータに実行させるプログラムであって、前記状態遷移表情報を取得する取得ステップと、モデル検査の対象となる前記システムが持つべき性質を表す情報を検査性質情報として設定する検査性質情報設定ステップと、取得された前記状態遷移表情報を、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造となる木構造状態遷移情報に変換する情報変換ステップと、前記木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かを検査する検査ステップと、前記検査部での検査結果を表示部に表示させる検査結果表示出力制御ステップと前記コンピュータに実行させる構成となる。
【発明の効果】
【００３２】
本発明に係るモデル検査装置によれば、あるシステムの振る舞いを表した状態遷移表を表す状態遷移表情報と、モデル検査の対象となる前記システムが持つべき性質を表す情報が検査性質情報とを提供すれば、そのシステムにおいて状態が変化して当該システムが持つべき性質に反する状態に至るか否かが検査され、その検査結果が表示部に表示されるようになるので、その使い勝手がより良いものとなる。
【００３３】
また、本発明に係るモデル検査処理方法及びプログラムによれば、前記モデル検査装置においてなされるモデル検査処理の方法（モデル検査処理方法）及びそのモデル検査処理をコンピュータに実行させるためのプログラムを実現することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施の一形態に係るモデル検査装置が実現されるコンピュータのハードウェア構成の一例を示すブロック図である。
【図２】本発明の実施の一形態に係るモデル検査装置の機能構成を示す機能ブロック図である。
【図３】状態遷移表を用いたモデル検査の処理の流れを示すフローチャートである。
【図４】図６に示すフローチャートにおける条件設定処理（ステップＳ１３）の具体的な処理手順を示すフローチャートである。
【図５】状態遷移表の一例を示す図である。
【図６】状態遷移表の他の一例を示す図である。
【図７】検査性質及び階層等の設定画面の一例を示す図である。
【図８】処理すべき状態遷移表の選択画面（状態遷移表選択画面）の一例を示す図である。
【図９】各変数の設定画面の一例を示す図である。
【図１０】木構造状態遷移情報の構造例を示す図である。
【図１１】木構造状態遷移情報における状態遷移の部分的な詳細例に示す図である。
【図１２】検出された反例（状態）及び反例までのルートの一例を示す図である。
【図１３】状態遷移表の表示処理と同期した検査結果の表示処理の一例を示すフローチャートである。
【図１４】検査結果の表示処理と同期した状態遷移表の表示処理の一例を示すフローチャートである。
【図１５】反例が検出された場合の検査結果の表示画面の一例を示す図である。
【図１６】検査結果に同期して表示される状態遷移表の表示例を示す図である。
【図１７】検査結果に同期して表示される状態遷移表の他の表示例を示す図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施の形態について図面を用いて説明する。
【００３６】
本発明の実施の形態に係るモデル検査装置は、検査の対象となるシステムの振る舞いを記述した状態遷移表（State Transition Matrix：ＳＴＭ）を用いて、そのシステムがもつべき性質に反する状態（反例）が起こり得るか否かを網羅的に検査し、また、起こり得る場合、どのような状態を遷移しつつその性質に反する状態に至るかを検出する（モデル検査）。
【００３７】
このモデル検査装置のハードウェア構成が図１に示される。このモデル検査装置は、一般的なコンピュータにて構成され、内部バスに接続された処理ユニット１０（ＣＰＵ）、一時記憶部１１（例えば、メモリ）、ハードディスクドライブ（ＨＤＤ）、メモリディクス等の情報記録部１２、表示部１３及び操作部１４を備えている。また、上記モデル検査装置の機能構成が図２に示される。図２において、このモデル検査装置は、情報処理部１００、性質入力部１１０及び状態遷移表選択入力部１２０を有している。情報処理部１００は、処理ユニット１０の機能によって実現され、状態遷移表選択入力部１２０は、処理ユニット１０の機能とともに、状態遷移表の選択画面を表示する表示部１３及び状態遷移表の選択操作を行うための操作部１４の機能として実現される。また、性質入力部１１０は、処理ユニット１０の機能とともに、検査性質の設定画面を表示する表示部１３及び検査性質の設定操作を行うための操作部１４の機能として実現される。
【００３８】
一時記憶部１１には、種々の状態遷移表（状態遷移表群）を表す状態遷移表情報を記憶することができる。状態遷移表選択入力部１２０は、一時記憶部１１に記憶された状態遷移表情報から検査対象とすべき状態遷移表情報を選択して情報処理部１００に提供する。性質入力部１１０は、操作部１４の設定操作により設定される、モデル検査の対象となるシステムが持つべき性質を表す検査性質情報を情報処理部１００に提供する。
【００３９】
情報処理部１００は、状態遷移表変換部１０１（情報変換手段）、検査部１０２（検査手段）及び出力制御部１０３（出力制御手段）を有している。状態遷移表変換部１０１は、状態遷移表選択入力部１２０から入力される状態遷移表情報を後述するような木構造状態遷移情報に変換する。この木構造状態遷移情報は、情報処理部１００により一時記憶部１１に格納される。検査部１０２は、状態遷移表変換部１０１にて得られた木構造状態遷移情報と、性質入力部１１０からの検査性質情報とを用いてモデル検査を実行する。検査部１０２は、反例検出部１０２ａ（反例検出手段）と反例ルート検出部１０２ｂ（反例ルート検出手段）とを有している。反例検出部１０２ａは、前記木構造状態遷移情報にて表される状態群から、入力された検査性質情報で表されるシステムが持つべき性質に反する状態を検出する。反例ルート検出部１０２ｂは、前記木構造状態遷移情報にて表される前記状態群において、反例検出部１０２ａにて検出された状態（反例）に至る状態の遷移ルートを検出する。そして、出力制御１０３が、前記木構造状態遷移情報にて表される状態群において検出された、検査性質情報で表されるシステムが持つべき性質に反する状態に至る状態の遷移ルートを検査結果として表示部１３に表示させる。
【００４０】
前述した情報処理部１００の各機能は、処理ユニット１０（ＣＰＵ）が一時記憶部１１に格納された所定のプログラムを実行することによって実現される。
【００４１】
具体的に、処理ユニット１０は、図３に示す手順に従ってモデル検査処理を実行する。
【００４２】
図３において、処理ユニット１０（情報処理部１００）は、あるシステムの振る舞いを表す情報として既に作成された状態遷移表を表す状態遷移情報を、例えば、情報記録部１２から読み出して取得し、一時記憶部１１に格納する（Ｓ１１）。例えば、図５及び図６に示す両替機（システム）の振る舞いを表す２つの状態遷移表、両替部状態遷移表（以下、両替部ＳＴＭという）及び払出部状態遷移表（以下、払出部ＳＴＭという）が、取得されたものとする。
【００４３】
両替部ＳＴＭは図５に示すように構成され、払出部ＳＴＭは図６に示すように構成される。状態遷移表（ＳＴＭ）は、システムにおいて取り得る状態（STATE）のそれぞれと、該システムにおいて発生し得るイベント（EVENT）のそれぞれとの組に、その組の状態（STATE）においてその組のイベント（EVENT）が発生した際に実行される処理（ACTION）及びその処理により遷移する遷移先の状態を対応づけて表形式（マトリクス状）に表したものである。具体的に、図５に示す両替部ＳＴＭは、両替機（両替部）において取り得る状態（STOP（停止状態）、WAIT_REQUEST（要求待ち状態）、WAIT_MONEY_TAKE（硬貨取り出し待ち状態））のそれぞれと、両替機（両替部）において発生し得るイベント（「×硬貨準備」、「×紙幣両替」、「硬貨準備信号」）のそれぞれとの組（図５に示すマトリクスにおける状態（STATE）とイベント（EVENT）とが交差する位置にある各セルに対応）に、その組の状態（例えば、STOP（停止状態））においてその組のイベント（例えば、「×硬貨準備」）が発生した際に実行される処理（例えば、硬貨総金額＝硬貨総金額＋１００００、×硬貨準備＝false）及びその処理により遷移する遷移先の状態（例えば、WAIT_REQUEST（要求待ち状態））を対応づけてマトリクス状（例えば、３×３マトリクス）に表している。図６に示す払出部ＳＴＭも同様に、両替機（払出部）において取り得る状態（例えば、WAIT（待ち状態）、RETURN（払出状態））のそれぞれと、両替機（払出部）において発生し得るイベント（例えば、「硬貨用意完了信号」、「×硬貨受取」）のそれぞれとの組に、その組の状態（例えば、WAIT（待ち状態））においてその組のイベント（例えば、「硬貨用意完了信号」）が発生した際に実行される処理（例えば、硬貨用意完了信号＝false）及びその処理により遷移する遷移先の状態（例えば、RETURN（払出状態））を対応づけてマトリクス状（例えば、２×２マトリクス）に表している。
【００４４】
なお、「×」印が先頭に付いているイベント（「×硬貨準備」、「×紙幣両替」、「×硬貨受取」）は、外部からの要因（例えば、硬貨を準備する人の行為、両替をして硬貨を受け取る人の行為等）で発生するイベントであって、外部イベントという。前記「×」が付いていないイベント（「硬貨受取完了信号」、「硬貨用意完了信号」）は状態遷移表内での処理（アクション）によって発生するイベントであって、内部イベントという。
【００４５】
図５及び図６に示される前記両替部ＳＴＭ及び払出部ＳＴＭによって、例えば、次のような両替機の振る舞いが表される。
【００４６】
両替部（図５参照）では、状態STOP（停止状態）で、両替機に払出のための硬貨（例えば、１０，０００円）が準備されて、外部イベント「×硬貨準備」が発生すると、硬貨総金額に１０，０００円が加算され、外部イベント「×硬貨準備」が終わり（false）、状態WAIT_REQUEST（要求待ち状態）になる。更に、両替部では、状態WAIT_REQUEST（要求待ち状態）で、利用者による紙幣（例えば、１０，０００円）の硬貨への両替操作がなされて、外部イベント「×紙幣両替」が発生すると、払出硬貨金額が１０，０００円に設定され、内部イベント「硬貨用意完了信号」が立ち上げられ（true）、硬貨総金額から払出硬貨金額を差し引いた金額が新たな硬貨総金額とされる。そして、外部イベント「×紙幣両替」が終わり（false）、状態WAIT_MONEY_TAKE（硬貨取り出し待ち状態）になる。
【００４７】
上述したように内部イベント「硬貨用意準備信号」が立ち上げられる（true）と、状態WAIT（待ち状態）にある払出部（図６参照）では、その内部イベント「硬貨用意準備信号」が立ち下げられ（false）、状態RETURN（払出状態）になる。ここで、利用者が両替された硬貨を受け取り、外部イベント「×硬貨受取」が発生すると、内部イベント「硬貨受取完了信号」が立ち上げられ（true）、外部イベント「×硬貨受取」が終わる（false）。そして、状態WAIT（待ち状態）になる。
【００４８】
前述したように状態WAITE_MONEY_TAKE（硬貨取り出し待ち状態）にある両替部では、前記内部イベント「硬貨受取完了信号」が立ち上げられる（true）と、その内部イベント「硬貨受取完了信号」が立ち下げられ（false）、状態WAIT_REQUEST（要求待ち状態）になる。
【００４９】
なお、図５及び図６に示す両替部ＳＴＭ及び払出部ＳＴＭの各マトリクスにおいて、「／」のあるセルは、対応する状態で対応するイベントが発生しても何もしないことを表している。また、「×」のあるセルは、対応する状態で対応するイベントが発生し得ないことを表している。この「×」のあるセルを、不可セルという。
【００５０】
図３に戻って、処理ユニット１０（情報処理部１００）は、上述したような両替機の振る舞いを表す両替部ＳＴＭ及び払出部ＳＴＭの情報を取得する（Ｓ１１）と、例えば、図７に示すような表示部１３に表示される設定画面において操作部１４での操作（性質入力部１１０）により入力される検査性質を設定する（Ｓ１２）。図７に示す設定画面では、システム（両替機）が持つべき性質（検査性質）として、例えば、状態遷移表（マトリクス）における「不可セルに到達しない」という性質、及び「払出金額がゼロ以上（払出硬貨金額＞＝０）」という性質が設定される。
【００５１】
なお、上記「不可セルに到達しない」という性質、及び上記「支払金額がゼロ以上」という性質（変数制約というタイプの性質）のほか、次のような性質についても設定（検査）することができる。
【００５２】
「状態ＡがＸのとき、状態ＢがＹである」という性質（制約充足性）の検査、
「状態ＡがＸからＸ´に遷移するとき、状態ＢがＹである」という性質（必要条件充足性）の検査、
次のような「将来の出来事」に関する性質（時相理論）の検査
○○は将来のいずれかの時点で真
○○は今後常に真
○○は現在、未来の時点新であり、××はその時点まで真でなければならない
××が真となる時点までに、○○は真でなければならない
【００５３】
次に、処理ユニット１０（情報処理部１００）は、条件設定処理（Ｓ１３）を実行する。この条件設定処理は、図４に示す手順に従ってなされる。まず、処理可能な状態遷移表情報を特定する識別情報（アイコン、名称等）が、例えば、図８に示すように、表示部１３の状態遷移表選択画面に表示される。処理ユニット１０は、前記状態遷移表選択画面において操作部１４の操作により選択された識別情報にて特定される一又は複数の状態遷移表に対応した状態遷移表情報を一時記憶部１１から読み出して（状態遷移表選択入力部１２０）、処理すべき状態遷移表情報として取得する（Ｓ１３１）。この状態遷移表情報の検査すべき範囲の選択では、複数の状態遷移表（情報）から１または複数の状態遷移表（情報）を選択することも、また、１つの状態遷移表（情報）の一部分を検査すべき範囲として選択することもできる。
【００５４】
次に、図７に示す設定画面における「変数しきい値」の設定により、検査対象変数の検査範囲を設定することができる。処理ユニット１０（情報処理部１００）は、上述したようにして選択された検査対象となる状態遷移表情報において使用されている変数（外部イベントを表す変数、内部イベントを表す変数を含む）の初期値、最小値及び最大値等を設定するための設定画面を表示部１３に表示させる。表示部１３に表示された設定画面において操作部１４の操作により入力された各変数の初期値、最小値及び最大値等、即ち、各変数の検査範囲が設定される（Ｓ１３２）。例えば、変数「払出硬貨金額」は、整数（ｉｎｔ）であって、初期値が「０」、最小値が「０」、最大値が「１００００」、変数「硬貨総金額」は、整数（ｉｎｔ）であって、初期値が「０」、最小値が「０」、最大値が「１００００」に決定される。この場合、変数「払出硬貨金額」及び変数「硬貨総金額」のそれぞれが０円から１０，０００円の範囲で検査がなされることになる。
【００５５】
なお、図９に示す設定画面において、変数「×硬貨準備」（外部イベント）、変数「×紙幣両替」（外部イベント）、変数「×硬貨受取」（外部変数）、変数「硬貨用意完了信号」（内部イベント）、及び変数「硬貨受取完了信号」（内部イベント）のそれぞれは、true（真）・false（偽）値で表されるブール（ｂｏｏｌ）タイプであり、初期値がfalse（偽）値に設定されている。
【００５６】
更に、図７に示す表示部１３に表示された設定画面において、後述するように前記状態遷移表情報を変換して得られる、イベントの発生または処理を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造（クリプ木構造）となる木構造状態遷移情報の検査対象となる階層の深さを表す深度が、キューサイズとともに設定することができる。処理ユニット１０（情報処理部１００）は、表示部１３に表示された図７に示す設定画面において操作部１４の操作により入力された深度を、前記木構造状態遷移情報についての探索階層の深度として決定する（Ｓ１３３）。
【００５７】
上記のようにして、条件設定処理（Ｓ１３：図４におけるＳ１３１〜Ｓ１３３）が終了すると、処理ユニット１０（状態遷移表変換部１０１）は、前述したように検査対象となるものとして選択された状態遷移表情報を、図１０に示すような状態をノードとした階層構造（クリプ木構造）の木構造状態遷移情報に変換する（Ｓ１４）。この木構造状態遷移情報に変換するために、処理ユニット１０（状態遷移表変換部１０１）は、検査対象となる状態遷移表（図５及び図６参照）において外部要因によってその発生タイミングが決まる各外部イベントを「常に起こり得る」とう条件に従って順次自動的に発生させ（自動イベント発火機能）、また、内部イベントを当該状態遷移表で表される条件に従って発生させる。その際、そのイベントの発生及びイベントの発生にともなう処理の結果を表す数値群の値の組み合わせにて表される状態が、前記イベントの発生または処理の実行にともなって遷移する。そして、そのイベントの発生または処理の実行を遷移パスとし、前記変数群の値の組合せにて表される状態をノードとした階層状の木構造（クリプ木構造）となる木構造状態遷移情報（図１０参照）が得られる。
【００５８】
例えば、図５に示す両替部ＳＴＭ及び図６に示す払出部ＳＴＭは、図１１に示すようにして木構造状態遷移情報に変換される。
【００５９】
図１１において、各状態（図１０に示す木構造状態遷移情報における各ノード）が、イベントの発生にともなう処理の結果を表す変数である「払出金額」、「硬貨総金額」、外部イベントの発生の結果を表す変数である「×硬貨準備」、「×紙幣両替」、「×硬貨受取」、内部イベントの発生の結果を表す変数「硬貨用意完了信号」、「硬貨受取完了信号」、両替部ＳＴＭの状態を表す変数Ｍ、及び払出部ＳＴＭの状態を表す変数Ｎからなる変数群の値の組み合わせによって表されている。
【００６０】
階層０の初期状態（００）は、全ての変数が初期値であり、
払出硬貨金額＝０
×硬貨準備＝false
×紙幣両替＝false
×硬貨受取＝false
硬貨用意完了信号＝false
硬貨受取完了信号＝false
硬貨総金額＝０
Ｍ＝０
Ｎ＝０
である。この初期状態は、両替部ＳＴＭにおける状態STOPに対応している。
【００６１】
初期状態（００）において、外部イベント「×硬貨準備」が発生（発火）すると、階層１の状態（１１）
払出硬貨金額＝０
×硬貨準備＝true
×紙幣両替＝false
×硬貨受取＝false
硬貨用意完了信号＝false
硬貨受取完了信号＝false
硬貨総金額＝０
Ｍ＝０
Ｎ＝０
に遷移する。この状態（１１）は、両替部ＳＴＭの状態STOPにおいて外部イベント「×硬貨準備」が発生した状態に対応する。
【００６２】
前記状態（１１）において、前記外部イベント「×硬貨準備」の発生により、両替部ＳＴＭにおけるセル（Ｅ０、Ｓ０）での処理（ACTION）が実行されると、階層２の状態（２１）
払出硬貨金額＝０
×硬貨準備＝false
×紙幣両替＝false
×硬貨受取＝false
硬貨用意完了信号＝false
硬貨受取完了信号＝false
硬貨総金額＝１００００
Ｍ＝１
Ｎ＝０
に遷移する。両替部ＳＴＭにおけるセル（Ｅ０、Ｓ０）での処理の実行により、両替部（両替機）は、状態WAIT_REQUESTになる（図５参照）。
【００６３】
前記状態（２１）において、外部イベント「×紙幣両替」が発生（発火）すると、階層３の状態（３１）
払出硬貨金額＝０
×硬貨準備＝false
×紙幣両替＝true
×硬貨受取＝false
硬貨用意完了信号＝false
硬貨受取完了信号＝false
硬貨総金額＝１００００
Ｍ＝１
Ｎ＝０
に遷移する。この状態（３１）は、両替部ＳＴＭの状態WAIT_REQUESTにおいて外部イベント「×紙幣両替」が発生した状態に対応する。
【００６４】
前記状態（３１）において、前記外部イベント「×紙幣両替」の発生により、両替部ＳＴＭにおけるセル（Ｅ１、Ｓ１）左側欄での処理（ACTION）が実行されると、階層４の状態（４１）
払出硬貨金額＝１００００
×硬貨準備＝false
×紙幣両替＝false
×硬貨受取＝false
硬貨用意完了信号＝true
硬貨受取完了信号＝false
硬貨総金額＝０
Ｍ＝２
Ｎ＝０
に遷移する。両替部ＳＴＭにおけるセル（Ｅ１、Ｓ１）での処理の実行により、両替部（両替機）は、状態WAIT_MONEY_TAKEになる。
【００６５】
以後、同様に、両替部ＳＴＭ及び払出部ＳＴＭにおける外部イベントの発生、内部イベントの発生、及び処理の実行によって順次状態が遷移する。そして、このようにして得られる状態（００）、（１１）、（２１）、（３１）、（４１）、・・・をノードとし、それら状態（ノード）のイベント（外部イベント、内部イベント）の実行また処理（ACTION）の実行を遷移パスとしたつながりが、図１０に示すような木構造状態遷移情報として生成される。即ち、両替部ＳＴＭ及び払出部ＳＴＭが図１０に示すような木構造状態遷移情報に変換される。
【００６６】
上述したような状態遷移表情報の木構造状態遷移情報への変換は、前記条件設定処理（Ｓ１３：図４、図８、図９参照）で設定された状態遷移表の範囲、変数しきい値の範囲、及び探索階層の範囲で実行される。このように検査対象が絞り込まれるので、効率的なモデル検査を行うことができる。
【００６７】
図３に戻って、検査対象の状態遷移表情報（図６及び図７参照）の木構造状態遷移情報（図１０及び図１１参照）への変換（Ｓ１４）が終了すると、処理ユニット１０（検査部１０２）は、得られた木構造状態遷移情報において、設定された検査性質（状態遷移表（マトリクス）における「不可セルに到達しない」という性質、及び「払出金額がゼロ以上（払出硬貨金額＞＝０）」）に反する状態の検出処理を実行する。この検出処理では、前記木構造状態遷移情報において、対象の階層が指定され（Ｓ１５）、その指定された階層において、検査性質に反する状態が存在するか否かの検査処理が実行される（Ｓ１６：反例検出部１０２ａ）。
【００６８】
この反例検出の処理では、例えば、指定された階層における状態（図１０及び図１１参照）の１つ１つに対して、変数の値等に基づいて、その状態が、検査性質（例えば、状態遷移表（マトリクス）における「不可セルに到達しない」という性質や「払出金額がゼロ以上（払出硬貨金額＞＝０）」）に反する状態であるか否かがチェックされる。また、このような手法のほか、充足性モジュロ理論（Satisfiablity Modulo Theory）に従って、指定された階層に含まれる全状態を一階論理公式にて数式化し、その一階論理公式を解くことにより、その指定された階層に検査性質に反する状態が存在するか否かを判定することもできる。そして、指定された階層に検査性質に反する状態が存在すると判定された場合に、更に、前記一階論理公式を部分的に解析することにより、前記指定された階層中の全状態から、前記検査性質に反する状態が特定される。
【００６９】
上記反例検出の処理の過程で、前記検査性質に反する状態が存在しなければ（Ｓ１７でＮＯ）、前記指定された階層が、検査範囲として設定された探索階層（Ｓ１３の条件設定処理、図４におけるＳ１３２参照）における最下位層であるか否かが判定される（Ｓ１８）。そして、最下位層でなければ（Ｓ１８でＮＯ）、前述した処理（Ｓ１５、Ｓ１６、Ｓ１７）に従って、新たに次の階層の指定がなされ、その指定された階層において、検査性質に反する状態（ノード）があるか否か判定がなされる。
【００７０】
このようにして、各階層において検査性質に反する状態が存在するか否かの判定がなされる過程（Ｓ１５〜Ｓ１８）において、検査性質に反する状態があると判定されると（Ｓ１７でＹＥＳ）、処理ユニット１０（反例ルート検出部１０２ｂ）は、検査対象の木構造状態遷移情報（図１０及び図１１参照）において、検査性質に反する状態であると判定された状態（ノード）から、遷移パス（イベントの発生または処理の実行に対応）を逆にたどって、初期状態（００）に至るルートを検出する。それにより、例えば、図１２に示すように、初期状態（００）から検査性質に反する状態（４２）に至る
初期状態（００）→状態（１１）→状態（２１）→状態（３１）→（状態４２）
の遷移パスが反例ルートとして検出される（Ｓ１９）。
【００７１】
上記反例ルートが検出されると（Ｓ１９）、処理ユニット１０（出力制御部１０３）は、検出された反例ルートに基づいて、検査結果を表示部１０３に表示させる（Ｓ２０）。この検査結果の表示処理は、例えば、図１３に示す手順に従ってなされる。この検査結果の表示処理は、図１４に示す手順に従ってなされる、検査対処として選択された状態遷移表情報に基づいた状態遷移表（両替部ＳＴＭ及び払出部ＳＴＢ）の表示処理と同期してなされる。
【００７２】
図１３に示す検査結果表示処理において、処理ユニット１０（出力制御部１０３）は検査結果である反例ルートを、例えば、図１５に示すような、状態の遷移一覧として表示部１３に表示させる（Ｓ３１）。図１５に示す表示例では、初期状態から、「不可セルに到達しない」という検査性質に反する、両替部ＳＴＭ（図５参照）の不可セル（Ｓ１，Ｅ２）に至るまでの各状態（ノード）に対応した項目（STEP）がリスト表示されている。各項目は、状態遷移表の種類（STM）、状態遷移表（マトリクス）のセルを特定する位置（STATE、EVENT）、遷移ルート（イベントの発生または処理（ACTION）の実行）及び各変数の値が含まれている。そして、処理ユニット１０（出力制御部１０３）は、上記検査結果を表示させた状態で、イベントの発生待ち状態となる（Ｓ３２）。
【００７３】
一方、図１４に示す状態遷移表表示処理において、処理ユニット１０（出力制御部１０３）は、検査対象となる、例えば、両替部ＳＴＭ（図５参照）及び払出部ＳＴＭ（図６参照）を表示部１３に表示させる（Ｓ４１）。そして、処理ユニット１０（出力制御部１０３）は、前記検査結果表示処理からのコマンド待ち状態になる（Ｓ４２）。
【００７４】
図１３に示す検査結果表示処理では、表示部１３に表示された検査結果の一覧表（図１５参照）において、操作部１４の操作により、１つの状態（ノード）に対応した項目が選択されると、処理ユニット１０（出力制御部１０３）は、選択操作をイベントとして受信し（Ｓ３３）、その選択された状態を取得する（Ｓ３４）。そして、処理ユニット１０（出力制御部１０３）は、取得した状態に対応する状態遷移表（図５及び図６参照）におけるセル（またはイベントの発生）を探索し（Ｓ３５）、得られたセルの表示指示コマンドを状態遷移表表示処理に対して発行する（Ｓ３６）。以後、検査結果表示処理において、処理ユニット１０（出力制御部１０３）は、前記イベントの発生待ち状態になる（Ｓ３２）。なお、処理ユニット１０（出力制御部１０３）は、例えば、図１５に示す検査結果の一覧表示のように、選択された項目（ＳＴＥＰ１３、ＳＴＥＰ１６）を他の項目と区別するように色付けする。
【００７５】
一方、図１４に示す状態遷移表表示処理において、前述したように検査結果表示処理からのコマンド待ち状態（Ｓ４２）となる処理ユニット１０（出力制御部１０３）は、前述したように検査結果表示処理にて発行される前記セルの表示指示コマンドを受信すると（Ｓ４３）、その表示指示コマンドを確認し（Ｓ４４）、その表示指示コマンドにて指示される状態遷移表におけるセルの表示色を変える（Ｓ４５）。そして、処理ユニット１０（出力制御部１０３）は、状態遷移表において、指示されたセルの色を変更した旨を、表示結果表示処理に通知し（Ｓ４６）、コマンドの待ち状態（Ｓ４２）になる。
【００７６】
上記のような表示結果処理及び状態遷移表表示処理の同期した実行により、表示結果処理により表示される図１５に示す一覧表において、例えば、項目（ＳＴＥＰ１３）の選択操作がなされると、前述したように、その一覧表においてその選択された項目（ＳＴＥＰ１３）が他の項目と区別して色付けされるとともに、図１６に示すように、前記選択された項目（ＳＴＥＰ１３）に対応する、払出部ＳＴＭのセル（Ｓ１、Ｅ１）と、そのセルを特性する状態（RETURN）及びイベント（×硬貨受取）の欄とが特定の色に色付けされる。また、図１５に示す一覧表において、例えば、不可セルに対応した項目（ＳＴＥＰ１６）の選択操作がなされると、前述したように、その一覧表においてその選択された項目（ＳＴＥＰ１６）が他の色と区別して色付けされるとともに、図１７に示すように、前記選択された項目（ＳＴＥＰ１６）に対応する、両替部ＳＴＭの不可セル（Ｓ１、Ｅ２）と、その不可セルを特定する状態（WAIT_REQUEST）及びイベント（硬貨受取完了信号）の欄とが特定の色に色づけされる。
【００７７】
このような検査結果表示処理と状態遷移表示処理とが同期してなされることにより、
利用者が、操作部１４を操作することにより、表示部１３に一覧表示された検査結果に係る項目を指定すると、その指定された項目が表す状態に対応する状態遷移表のセルが特定の色により明示されるようになるので、状態遷移表において、システムが持つべき性質に反する状態に至る原因を容易につきとめることができる。
【００７８】
上述したようなモデル検査装置では、例えば、両替機等システムにおいて、取り得る状態のそれぞれと該システムにおいて発生し得るイベントのそれぞれとの組に、その組の状態においてその組のイベントが発生した際に実行される処理及びその処理により遷移する遷移先の状態を対応づけてマトリクス形式に表した状態遷移表（両替部ＳＴＭ及び払出部ＳＴＭ）を表す状態遷移表情報が取得され、モデル検査の対象となる前記システムが持つべき性質（「不可セルに到達しない」という性質、「払出金額がゼロ以上（払出硬貨金額＞＝０）」という性質）を表すが検査性質情報として設定されると、前記状態遷移情報が、イベントの発生または処理の実行を遷移パスとし、該イベントの発生及びイベントの発生に伴う処理の結果を表す変数群の値の組合せにて表される状態をノードとした階層状の木構造（クリプ木構造）となる木構造状態遷移情報に変換され、その木構造状態遷移情報を処理して、状態を表すノードをイベントの発生に対応した遷移パスに沿ってたどって前記検査性質情報にて表される前記システムが持つべき性質に反する状態を表すノードに到達するか否かが検査される。そして、その検査結果（図１５参照）が表示部１３に表示される。このように、前記モデル検査装置によれば、あるシステムの振る舞いを表した状態遷移表を表す状態遷移表情報と、モデル検査の対象となる前記システムが持つべき性質を表す情報が検査性質情報とを提供すれば、そのシステムにおいて状態が変化して当該システムが持つべき性質に反する状態に至るか否かが検査され、その検査結果が表示部に表示されるようになるので、その使い勝手がより良いものとなる。
【００７９】
モデル検査とは、形式的記述に則したモデルに対して数理的網羅検査を行うことをいう。しかし、形式的記述を表す場合に、自然言語（プログラミング言語）的表現を許してしまうと、抽象的な記述や時系列的に矛盾を生じるような記述、また、原点回帰不能な再帰的な記述を行ってしまう可能性がある。このように、自然言語的な記述は、形式的な記述を行うこと自体に難しさを含んでいるといえる。
【００８０】
これに対して、前述したモデル検査装置では、検査対象となるシステムの記述を行う場合に、自然言語を用いず、状態遷移表情報を用いることにより、分岐処理等の判断系での不確かさを排除し、振る舞いの形式的な記述の難しさを下げることができる。そして、状態遷移表で記述された内容を内部的に、言語的かつ数理的に変換することで、モデル記述者の記述負担を低減し、かつ、記述の不確かさを低減させている。
【産業上の利用可能性】
【００８１】
以上、説明したように、本発明は、モデル検査がより使い勝手の良いものとなるという効果を有し、システムの振る舞いを記述した状態遷移表を用いて該システムのモデル検査を行うモデル検査装置、モデル検査処理方法及びプログラムとして有用である。
【符号の説明】
【００８２】
１０  処理ユニット（ＣＰＵ）
１１  一時記憶部
１２  情報記録ユニット
１３  表示部
１４  操作部
１００  情報処理部
１０１  状態遷移表変換部
１０２  検査部
１０２ａ  反例検出部
１０２ｂ  反例ルート検出部
１０３  出力制御部
１１０  性質入力部
１２０  状態遷移表選択入力部
【図１】
2013200787.tif 000003
【図２】
2013200787.tif 000004
【図３】
2013200787.tif 000005
【図４】
2013200787.tif 000006
【図５】
2013200787.tif 000007
【図６】
2013200787.tif 000008
【図７】
2013200787.tif 000009
【図８】
2013200787.tif 000010
【図９】
2013200787.tif 000011
【図１０】
2013200787.tif 000012
【図１１】
2013200787.tif 000013
【図１２】
2013200787.tif 000014
【図１３】
2013200787.tif 000015
【図１４】
2013200787.tif 000016
【図１５】
2013200787.tif 000017
【図１６】
2013200787.tif 000018
【図１７】
2013200787.tif 000019