(57)【要約】【課題】容易に検査する状態数を削減して設計モデルの検査を行うことができるようにする。【解決手段】検査対象システムの仕様を記述した設計モデルの検査を行うモデル検査システムであって、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる関連性指定手段と、ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する状態数削減手段とを備えたことを特徴とする。【選択図】図１
2009134360.tif 000002
【特許請求の範囲】
【請求項１】
検査対象システムの仕様を記述した設計モデルの検査を行うモデル検査システムであって、
検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる関連性指定手段と、
ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する状態数削減手段とを備えた
ことを特徴とするモデル検査システム。
【請求項２】
検査対象システムの仕様を記述した設計モデルを作成する設計モデル作成手段を備え、
関連性指定手段は、前記設計モデル作成手段に含まれ、設計モデルを作成する過程で、状態変数間の関連性をユーザに指定させる
請求項１に記載のモデル検査システム。
【請求項３】
関連性指定手段によってユーザに指定させた状態変数間の関連性を示す情報から、新たな状態変数間の関連性を導出する関連性導出手段を備え、
状態数削減手段は、ユーザに指定させた前記状態変数間の関連性を示す情報と、前記関連性導出手段によって導出された新たな状態変数間の関連性を示す情報とに基づいて、検査に用いるシステムの状態数を削減する
請求項１または請求項２に記載のモデル検査システム。
【請求項４】
関連性導出手段は、関連性指定手段によってユーザに指定させた状態変数間の関連性を組み合わせることによって、新たな状態変数間の関連性を導出する
請求項３に記載のモデル検査システム。
【請求項５】
関連性指定手段は、ある状態変数の変化が他の状態変数の変化に影響を与えるか否かを示す情報をユーザに入力させ、入力させた該情報を状態変数間の関連性を示す情報として受ける
請求項１から請求項４のうちのいずれか１項に記載のモデル検査システム。
【請求項６】
検査内容を示す情報であって設計モデルに要求する性質を状態変数に関する論理式で記述される情報である検査式を入力する検査式入力手段を備え、
状態数削減手段は、入力される検査式と、状態変数間の関連性を示す情報とに基づいて、検査内容に関係のない状態変数をシステムの状態変化要因の対象から除外することによって、検査に用いるシステムの状態数を削減する
請求項５に記載のモデル検査システム。
【請求項７】
検査対象システムの仕様を記述した設計モデルの検査を行うためのモデル検査方法であって、
検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させ、
ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する
ことを特徴とするモデル検査方法。
【請求項８】
設計モデルを作成する過程で、状態変数間の関連性をユーザに指定させる
請求項７に記載のモデル検査方法。
【請求項９】
ユーザに指定させた状態変数間の関連性を示す情報から、新たな状態変数間の関連性を導出し、
ユーザに指定させた前記状態変換の関連性を示す情報と、新たに導出された状態変数間の関連性を示す情報とに基づいて、検査に用いるシステムの状態数を削減する
請求項７または請求項８に記載のモデル検査方法。
【請求項１０】
検査対象システムの仕様を記述した設計モデルの検査を行うためのモデル検査用プログラムであって、
コンピュータに、
検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる処理、および
ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する処理
を実行させるためのモデル検査用プログラム。
【請求項１１】
コンピュータに、
検査対象システムの仕様を記述した設計モデルを作成する処理を実行させ、
前記設計モデルを作成する処理で、状態変数間の関連性をユーザに指定させる
請求項１０に記載のモデル検査用プログラム。
【請求項１２】
コンピュータに、
ユーザに指定させた状態変数間の関連性を示す情報から新たな状態変数間の関連性を導出する処理、および
ユーザに指定させた前記状態変換の関連性を示す情報と、新たに導出された状態変数間の関連性を示す情報とに基づいて、検査に用いるシステムの状態数を削減する処理
を実行させる請求項１０または請求項１１に記載のモデル検査用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査対象システムの仕様を記述した設計モデルの検査を行うモデル検査システム、モデル検査方法およびモデル検査用プログラムに関する。
【背景技術】
【０００２】
検査対象システム（ハードウェアとソフトウェアを含む。）の設計から導出されるモデルが検査式を満足するか否かを検証するモデル検査システムの一例として、Ｓｐｉｎと呼ばれるモデル検査ツールがある。Ｓｐｉｎは、Ｐｒｏｍｅｌａという言語で書かれた検査プログラムとＬＴＬ（Linear Temporal Logic ：線形時相論理）で書かれた検査式を基にモデルの検査を行う。
【０００３】
一般に、モデル検査システムでは、検査対象のモデルが大きくなり状態数が増大すると、コンピュータで扱える範囲を超えてしまい処理しきれなくなる”状態爆発”と呼ばれる現象が発生するという問題がある。
【０００４】
この問題を防ぐためには、検査する状態数を削減する技術が必要となる。その一方法として、抽象化と呼ばれる方法が提案されている。具体的には、”Partial Order Reduction ”と呼ばれる２つのプロセス間で通信がない部分を独立と見なして検査対象から除外する方法（非特許文献１参照。）や、述語抽象化の方法（非特許文献２参照。）、遷移パス削減の方法（非特許文献３参照。）などが提案されている。
【０００５】
これらの抽象化は主にモデル検査を実行する手段において行われ、検査に不要な状態をシステムが自動的に削減する。
【０００６】
ところで、特許文献１には、パイプライン処理機能を有するプロセッサの動作論理を検証するための試験命令列を作成するための方法が記載されている。特許文献１に記載されている方法では、仕様情報から構成されるパイプラインに関する初期動作モデルの状態の数を最小化した動作モデルを作成する。そして、作成した動作モデルと試験状態の集合とから動作モデルの状態が競合を起こすことなく所定の入力状態から試験情報の集合に含まれる試験状態のいずれかに遷移する過程に対応した試験命令列を列挙する。
【０００７】
また、特許文献２には、動作モデルにおける複数の命令の状態遷移が、あるステージ以降同じになるか否かを調査し、同じになる場合にそのステージ以降を１つの命令として動作させることにより、動作モデルの記述の状態数を減らすモデル作成方法が記載されている。
【０００８】
【特許文献１】特開平８−５０５５４号公報
【特許文献２】特開平１１−９６０３６号公報
【非特許文献１】日経エレクトロニクス編，「モデルに基づく開発方法論のすべて−組み込みソフトウェア２００７」，日経ＢＰ社，２００６年１２月，ｐ．？？？
【非特許文献２】田辺  他，「抽象化を用いた検証ツールの調査」，産業技術総合研究所算譜科学グループ研究速報AIST-PS-2003-007，２００３年１２月，ｐ．１２−１５
【非特許文献３】Matthew B. Dwyer, "Formal Software Analysis Emerging Trends in Software Modek Checking", Future of Software Engineering(FOSE'07), IEEE Computer Society, 2007, p.120-136
【発明の開示】
【発明が解決しようとする課題】
【０００９】
問題点は、実際にシステムに実装させようとした場合に、検査対象システムの仕様を記述した設計モデルから検査内容に応じた状態変数間の論理的な関連性を検出することが困難な点にある。なお、本発明において状態変数とは、検査対象システムの仕様において状態が変化する要素（ハードウェアの一部品やソフトウェアの一データ等）の状態を示すためのモデル内変数をいう。
【００１０】
特に、設計フェーズで作成したモデルをそのまま検査に適用する場合、該モデルには検査内容に関係しないシステム仕様が多数含まれている。この検査内容に関係しない部分を除外していくことが重要となる。抽象化などの方法を用いて自動的にシステム状態数を削減する方法は有効であるが、設計モデルで表現される仕様と検査式とだけを用いてシステム状態数を削減することには限界がある。
【００１１】
なお、特許文献１には、初期動作モデルに含まれる各状態変数が有する複数の状態を、それらの状態が有する属性に基づいてグループ化することにより、状態の数を最小化する方法が記載されている。しかし、特許文献１における”状態変数”は、パイプラインの各構成部分の状態とそれらの状態の遷移関係を表現するために、ある命令による処理内容を一状態として表現するための変数であって、本発明における”状態変数”とは意味が異なる。特許文献１に記載されている方法は、パイプラインの各構成部分における各命令に対応した処理内容をグループ化することにより、複数の命令間で同じプロセスを１つにまとめて重複シーケンスを排除した試験命令列を列挙しようというものであって、検査内容に直接影響を及ぼさない要素の状態変化によって遷移するシステム状態を検査対象から除外できるわけではない。
【００１２】
なお、特許文献２に記載されている方法も、複数の命令で重複しているステージを１つの命令として動作させるよう動作モデルを作成することで、重複部分の状態数を削減しようというものであって、検査内容に直接影響を及ぼさない要素の状態変化によって遷移するシステム状態を検査対象から除外できるわけではない。
【００１３】
そこで、本発明は、検査対象システムに、設計モデルからは容易に検出できない検査内容に応じた状態変数間の論理的な関連性が存在していたとしても、容易に検査する状態数を削減して、モデル検査を行うことができるモデル検査システム、モデル検査方法およびモデル検査用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明によるモデル検査システムは、検査対象システムの仕様を記述した設計モデルの検査を行うモデル検査システムであって、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる関連性指定手段と、ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、設計モデル上のシステムの状態数を削減する状態数削減手段とを備えたことを特徴とする。
【００１５】
また、本発明によるモデル検査方法は、検査対象システムの仕様を記述した設計モデルの検査を行うためのモデル検査方法であって、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させ、ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減することを特徴とする。
【００１６】
また、本発明によるモデル検査用プログラムは、検査対象システムの仕様を記述した設計モデルの検査を行うためのモデル検査用プログラムであって、コンピュータに、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる処理、およびユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する処理を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、検査対象システムの仕様を記述した設計モデルから検査内容に応じた状態変数間の論理的な関連性を検出することが困難な場合であっても、容易に、検査する状態数を削減して設計モデルの検査を行うことができる。その理由は、自動では削減できない状態を、利用者から指定される状態変数間の関連性を示す情報に基づいて削減できるからである。
【発明を実施するための最良の形態】
【００１８】
実施形態１．
以下、本発明の実施形態を図面を参照して説明する。図１は、本発明によるモデル検査システムの構成例を示すブロック図である。図１に示すモデル検査システムは、関連性指定手段１０１と、状態数削減手段１０２とを備える。
【００１９】
関連性指定手段１０１は、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる。関連性指定手段１０１は、例えば、ある状態変数の変化が他の状態変数の変化に影響を与えるか否かを示す情報をユーザに入力させ、その情報を状態変数間の関連性を示す情報として取得する（受ける）。すなわち、関連性指定手段１０１は、ユーザが入力した状態変数間の関連性を示す情報を受ける手段である。
【００２０】
状態数削減手段１０２は、ユーザに指定させた状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する。状態数削減手段１０２は、例えば、入力される検査式と、状態変数間の関連性を示す情報とに基づいて、検査内容に関係のない状態変数をシステムの状態変化要因の対象から除外することによって、システムの状態数を削減してもよい。ここで、検査式とは、検査内容を示す情報であって設計モデルに要求する性質を状態変数に関する論理式で記述される情報をいう。
【００２１】
なお、状態数削減手段１０２によって検査に用いるシステムの状態数が削減された後は、図示しないモデル検査実行手段が、削減されたシステムの状態数に応じた状態遷移系に基づく検査プログラムを実行するなどして、モデル検査を行えばよい。
【００２２】
関連性指定手段１０１および状態数削減手段１０２は、例えば、プログラムに従って動作するＣＰＵによって実現される。
【００２３】
以下、より具体的な構成例について説明する。図２は、第１の実施形態におけるモデル検査システムの構成例を示すブロック図である。図２に示すように、本実施形態におけるモデル検査システムは、プログラム制御により動作するコンピュータ等のデータ処理装置１０によって実現されている。データ処理装置１０は、設計モデル作成手段１１と、モデル検査手段１２とを実装している。モデル検査手段１２は、関連性指定手段１２１と、検査式入力手段１２２と、検査プログラム作成手段１２３と、モデル検査実行手段１２４とを含む。また、検査プログラム作成手段１２３は、状態変数識別手段１２３１を有する。
【００２４】
なお、本実施形態は、図１に示す状態数削減手段１０２を、検査プログラム作成手段１２３と状態変数識別手段１２３１とによって実装した例である。なお、図１に示す関連性指定手段１０１は、関連性指定手段１２１によって実装されている。
【００２５】
設計モデル作成手段１１は、検査対象となる設計モデルを作成する。なお、本実施形態において、設計モデルとは、所定のモデル化形式に従って記述される、検査対象システムの仕様を示す情報をいう。なお、検査対象システムの仕様には、検査対象システムを構成するハードウェアの仕様やソフトウェアの仕様を含む。
【００２６】
モデル検査手段１２は、設計モデル作成手段１１によって作成された設計モデルの検査を行う処理手段である。
【００２７】
関連性指定手段１２１は、状態遷移図等の設計モデルに定義されている状態変数間の関連性をユーザに指定させる。なお、関連性指定手段１２１は、図１に示す関連性指定手段１０１に相当する処理手段である。
【００２８】
図３は、関連性指定手段１２１による関連性指定方法の一例を示す説明図である。図３に示すように、関連性指定手段１２１は、例えば、「状態変数１は状態変数２の状態変化の流れに影響を与えない」という状態変数間の関連性をユーザに指定させる場合に、状態変数１および状態変数２に該当する状態変数を表などに入力させるＧＵＩをユーザに提示し、ユーザ操作に応じて入力される情報を、状態変数間の関連性を示す情報として取得してもよい。図３に示す例では、”状態変数ｃ”の状態が変化しても「状態変数ａ」の状態変化に影響を与えないこと、および「状態変数ｃ」の状態が変化しても「状態変数ｂ」の状態変化に影響を与えないことがユーザから指定されたことを示している。関連性指定手段１２１は、上記例における状態変数１と状態変数２との組み合わせを取得し、その組をリスト化して保持するようにしてもよい。また、例えば、関連性指定手段１２１は、設計モデルに定義されている状態変数の一覧を提示した上で、その状態変数間の関係性をユーザに指定させてもよい。
【００２９】
検査式入力手段１２２は、検査内容を示す情報であって設計モデルに要求する性質を状態変数に関する論理式で記述される情報である検査式を入力する。
【００３０】
検査プログラム作成手段１２３は、設計モデルから、検査エンジン（具体的には、モデル検査実行手段１２４）が検査可能な検査プログラムを生成する。なお、本実施形態では、検査プログラム作成手段１２３は、後述する状態変数識別手段１２３１によって識別された状態変数の情報を基に、検査内容に関係ない状態変数を除外することによって検査範囲とするシステムの状態数を削減した検査プログラムを作成する。
【００３１】
本発明において、システムの状態は、各状態変数が取りうる値の組み合わせに対応し割り当てられる。従って、状態変数の値が異なると別の状態として扱うものとする。例えば、状態変数が複数ある場合、どれか一つの状態変数の値が変化すると、システムの状態が別の状態へ遷移したと見なしてシステムの状態遷移系（状態遷移の体系）を識別する。
【００３２】
検査プログラム作成手段１２３は、例えば、識別した状態遷移系に沿って状態を遷移させつつ、各状態で条件式に違反していないかを判定し、その結果を出力するようなプログラムを作成してもよい。なお、状態遷移系から検査プログラムを作成する方法は、前述の非特許文献等により開示されている技術と同様でよいため説明省略する。
【００３３】
状態変数識別手段１２３１は、検査式入力手段１２２を介して入力される検査式と、関連性指定手段１２１によって取得された状態変数間の関連性を示す情報を基に、検査内容に関係ない状態変数を識別する。状態変数識別手段１２３１は、その識別結果を検査プログラム作成手段１２３に出力することによって、検査プログラム作成手段１２３にて検査内容に関係ない状態変数をシステムの状態変化要因から除外可能にしている。
【００３４】
モデル検査実行手段１２４は、検査プログラム作成手段１２３が作成した検査プログラムを実行して、設計モデルが検査式を満足するかを検証するモデル検査を実行する。
【００３５】
本実施形態において、設計モデル作成手段１１は、例えば、データ処理装置１０が備えるＣＰＵによって実現される。また、関連性指定手段１２１、検査式入力手段１２２は、例えば、データ処理装置１０が備えるＣＰＵと、マウスやキーボード等の入力装置と、ディスプレイ等の表示装置とによって実現される。また、検査プログラム作成手段１２３、状態変数識別手段１２３１、モデル検査実行手段１２４は、例えば、データ処理装置１０が備えるＣＰＵによって実現される。
【００３６】
次に、本実施形態の動作について説明する。図４は、本実施形態におけるモデル検査システムの動作例を示すフローチャートである。なお、図示省略しているが、図４に示す動作の前に、次に示す動作が行われている。まず、設計モデル作成手段１１が、ユーザ操作に従い、設計モデルを作成する。ここでは、状態遷移図を作成したとする。次に、関連性指定手段１２１が、状態変数間の関連性をユーザに指定させる。また、検査式入力手段１２２は、ユーザ操作に従い、検査式を入力する。
【００３７】
ここまでの動作が完了すると、検査プログラム作成手段１２３が、次の手順でモデル検査用の検査プログラムの作成処理を開始する。まず、状態変数識別手段１２３１が、検査式に関係する状態変数を取得する（ステップＡ１）。なお、検査式に関係する状態変数には、検査式（ここでは、検査内容を示す論理式）によって直接示される状態変数だけでなく、その状態変数の変化に影響を与える状態変数を含む。状態変数識別手段１２３１は、例えば、設計モデルとして作成された状態遷移図から状態変数間の関連性を検出したり、または、プログラムスライシング等の技法を用いて取得すればよい。
【００３８】
次に、状態変数識別手段１２３１は、関連性指定手段１２１がユーザに指定させた状態変数間の関連性を示す情報を取得する（ステップＡ２）。そして、状態変数間の関連性を示す情報に基づいて、ステップＡ１で取得した検査式に関係する状態変数と関連性のない状態変数を、当該検査においてシステム状態の変化要因の対象から除外する（ステップＡ３）。例えば、状態変数識別手段１２３１は、設計モデルに定義されている各状態変数について、当該検査においてシステム状態の変化要因の対象とする状態変数か否かを示す情報を作成して、検査プログラム作成手段１２３に出力する。
【００３９】
検査プログラム作成手段１２３は、状態変数識別手段１２３１によって識別された結果に沿って、検査プログラムを作成する（ステップＡ４）。検査プログラム作成手段１２３は、例えば、設計モデルに定義されている状態変数からシステム状態の変化要因の対象外とされた状態変数を除いた状態変数のみによる状態遷移系を導出し、その状態遷移系が検査式を満たしているか否かを判断するための検査プログラムを作成する。
【００４０】
検査プログラム作成手段１２３が検査プログラムを作成すると、モデル検査実行手段１２４は、その検査プログラムを実行することにより、設計モデルを検査する（ステップＡ５）。
【００４１】
以上のように、本実施形態によれば、利用者の判断に基づいて、検査と関係のない状態をモデル検査の対象から削減することができる。具体的には、ユーザに指定させた状態変数間の関連性を使用して、検査式に無関係な状態変数を識別し、それを除外した検査プログラムを作成することにより、容易に検査する状態数を削減することができる。従って、検査対象システムに、設計モデルからは容易に検出できない検査内容に応じた状態変数間の論理的な関連性が存在していたとしても、容易に検査する状態数を削減して、モデル検査を行うことができる。
【００４２】
図５は、本実施形態の一実施例を示す説明図である。なお、図５（ａ）は、状態数削減前のシステムの状態遷移系を示している。また、図５（ｂ）は、状態数削減後のシステムの状態遷移系を示している。本実施例では、検査対象システムが３つの変数ａ，ｂ，ｃ，および１つのスイッチからなるシステムを例に説明する。なお、検査対象システムの仕様は、次のとおりである。
・変数ａ，ｂは整数０〜２のいずれかの値をとり、変数ｃは整数０〜４のいずれかの値をとり、スイッチはｏｎかｏｆｆのいずれかの状態をとる。
・変数ａは、０→１，１→２，２→０と繰り返して変化する。ただし、ｂ＝１またはｃ＜４のときは、次の時点でもその値を保ち変化しない。
・変数ｂは、０→１，１→２，２→０と繰り返して変化する。ただし、ａ＝ｂまたはｃ＜４のときは、次の時点でもその値を保ち変化しない。
・変数ｃは、０→１→２→３→４→０と繰り返して変化する。
・スイッチは、ａ＝ｂ＝２ならｏｎとなり、ａ＝ｂ＝１ならｏｆｆとなる。それ以外の場合は、現時点での状態を保ち変化しない。初期状態は０ｆｆとする。
【００４３】
この例題における状態遷移系を図示すると、図５（ａ）のようになる。図５（ａ）および図５（ｂ）において、１つのブロックは１つの状態を表し、ブロック内には当該ブロックの状態における各状態変数の値を示している。ただし、ブロック内の状態変数ｃの値が”０−４”となっているブロックでは、状態変数ｃが０から４に変化するまでの５つのシステム状態を省略して表現している。なお、状態変数ａ，ｂ，ｃ，ｓｗは、変数ａ，ｂ，ｃ，スイッチに対応する状態変数である。
【００４４】
例えば、図５（ａ）の１番目のブロックにより、検査対象システムの初期状態が、状態変数（ａ，ｂ，ｃ，ｓｗ）＝（０，０，０，ｏｆｆ）の状態であることが示されている。また、例えば、２番目のブロックにより、検査対象システムの初期状態からの遷移先状態が、状態変数（ａ，ｂ，ｃ，ｓｗ）＝（０，０，１，ｏｆｆ）の状態であることが示されている。
【００４５】
本例において、例えば、設計モデル作成手段１１は、ユーザ操作に応じて、このような状態遷移系を図示した設計モデルである状態遷移図を作成する。そして、関連性指定手段１２１は、この状態遷移図に定義されている状態変数ａ，ｂ，ｃ，ｓｗ間の関連性をユーザに指定させる。本例では、図３に示されている状態変数間の関連性が指定されたとする。すなわち、「状態変数ｃは状態変数ａの状態変化の流れに影響を与えない」、および「状態変数ｃは状態変数ｂの状態変化の流れに影響を与えない」旨を示す情報が指定されたとする。また、検査式入力手段１２２は、検査式として「スイッチがｏｎならいずれｏｆｆになる」旨の情報を入力する。検査式は、例えば、ＬＴＬで記述された論理式でよい。
【００４６】
モデル検査システムでは、検査対象とする状態遷移図に対して、状態変数間の関連性がユーザに指定され、検査式が入力されると、検査プログラムの作成処理を開始する。まず、状態変数識別手段１２３１は、状態遷移図に定義されている状態変数ａ，ｂ，ｃ，ｓｗの中から、検査式に関係する状態変数を取得する。ここでは、検査したいスイッチのｏｎ／ｏｆｆが状態変数ａ，ｂに依存する旨の情報を、設計モデル作成手段１１から取得する。なお、設計モデル作成手段１１は、状態遷移図を作成する際に入力される仕様情報から取得できる。また、例えば、状態変数識別手段１２３１が、設計モデルの仕様情報として示される論理式の集合体に対してプログラムスライシング等の技法を用いることにより、状態変数ｓｗに対して関連性を有する状態変数を検出してもよい。
【００４７】
次に、状態変数識別手段１２３１は、状態変数間の関連性を示す情報を取得し、検査式に関係する状態変数と無関係な状態変数を識別する。ここでは、状態変数ｃが状態変数ａおよび状態変数ｂの状態変化に影響を与えない旨の情報を得て、その情報に基づき、状態変数ｃは検査したい内容である状態変数ｓｗの変化に影響を与えないと判断し、状態変数ｃをシステム状態の変化要因の対象から除外する。状態変数識別手段１２３１は、状態変数ｃが検査式に関係する状態変数ａ，ｂのどちらに対しても影響を与えないため、検査に無関係な（検査結果に影響を与えない）状態変数であると判断して、システム状態を割り当てる状態変数の組み合わせから除外すればよい。
【００４８】
図５（ｂ）は、状態変数ｃをシステム状態の変化要因の対象から除外した場合の本例における検査対象システムの状態遷移系を示している。図５（ｂ）に示すように、状態変数ｃを除外すると、システム状態が３つの状態変数ａ，ｂ，ｓｗにより定義づけることにより、状態数を１／５（削減前４０→削減後８）に削減できる。検査プログラム作成手段１２３は、この状態数が削減された後の状態遷移系を用いて、設計モデルが検査式を満足しているかを検査するための検査プログラムを作成すればよい。
【００４９】
実施形態２．
次に、本発明の第２の実施形態について説明する。図６は、本実施形態におけるモデル検査システムの構成例を示すブロック図である。図６に示すモデル検査システムは、図２に示す第１の実施形態と比べて、設計モデル作成手段１１が、関連性指定手段１１１を含む点が異なる。
【００５０】
関連性指定手段１１１は、第１の実施形態における関連性指定手段１２１と同様に、状態遷移図等の設計モデルに定義されている状態変数間の関連性をユーザに指定させる。本実施形態では、関連性指定手段１１１は、ユーザに指定させることで取得した状態変数間の関連性を示す情報を、設計モデルに埋め込む（含ませる）。
【００５１】
例えば、設計モデル作成手段１１が、設計モデルの情報をファイル（以下、設計モデルファイルという。）に保存する場合には、関連性指定手段１１１は、そのファイルの中に、図３の例における状態変数１と状態変数２の組を追記すればよい。例えば、設計モデルファイルが、状態遷移系の要素（状態）の情報として、状態遷移系の位置や、状態変数等の値をテキスト形式で保持するような場合には、その最後に、（ｃ，ａ），（ｃ，ｂ）といったテキスト形式で保持させるようにしてもよい。なお、予め決められた構造体に格納されるバイナリデータに含ませて保持させることも可能である。
【００５２】
なお、第２の実施形態の動作は、基本的には図４に示す第１の実施形態と同様である。ただし、ステップＡ２において、状態変数間の関連性を示す情報の取得先が設計モデルである点が異なる。他の点に関しては第１の実施形態と同様である。
【００５３】
実施形態３．
次に、本発明の第３の実施形態について説明する。図７は、本実施形態におけるモデル検査システムの構成例を示すブロック図である。図７に示すモデル検査システムは、図２に示す第１の実施形態と比べて、間連性導出手段１２５を備える点で異なる。なお、本実施形態では、モデル検査手段１２が関連性導出手段１２５を含む。
【００５４】
関連性導出手段１２５は、関連性指定手段１２１がユーザに指定させることによって取得した状態変数間の関連性を示す情報から、新たな状態変数間の関連性を導出する。関連性導出手段１２５は、ユーザが指定した状態変数間の関連性を組み合わせることによって、新たな状態変数間の関連性を導出する。なお、関連性導出手段１２５は、ユーザが指定した状態変数の関連性を示す情報に、新たなに導出した状態変数間の関連性を示す情報を追加していけばよい。
【００５５】
例えば、次に示す関連性がユーザから指定されたとする。
指定１．「状態変数ｂは状態変数ａの状態変化の流れに影響を与えない」
指定２．「状態変数ｃは状態変数ｂの状態変化の流れに影響を与えない」
【００５６】
関連性導出手段１２５は、上記指定から「状態変数ｃは、状態変数ａの状態変化の流れに影響を与えない」という関連性を導出する。さらに、導出した関連性と、他に利用者が指定した関連性とで矛盾がある場合にはその旨をユーザに提示するようにしてもよい。
【００５７】
例えば、上記関連性を示す情報として、（ｂ，ａ），（ｃ，ｂ）という２つの組がリストなどで保持されていたとする。関連性導出手段１２５は、具体的には、次に示す処理を行うことにより、新たな組として（ｃ，ａ）を導出すればよい。
【００５８】
まず、関連性導出手段１２５は、リストに存在する組を一つ取り出す。これを仮にＸ（ｘ１，ｘ２）とする。次に、その組の第２変数であるｘ２を取り出す。第２変数を取り出すと、リストに存在する全ての組から、ｘ２と一致する第１変数をもつ組を取り出す。これを仮にＹ（ｘ２，ｙ１）とする。そして、組ＸとＹを合成した新しい組として、（ｘ１，ｙ１）を生成する。関連性導出手段１２５は、リストの残りの要素について、上記手順を繰り返し行えばよい。これにより、状態変数間の関連性を網羅的に取得することができる。関連性導出手段１２５は、網羅的な状態変数間の関連性を示す情報として、設計モデルから取得したユーザが指定した状態変数間の関連性を示す情報と、新たに導出した状態変数間の関連性を示す情報とを併せたリストを保持しておけばよい。
【００５９】
なお、本実施形態の動作は、基本的には図４に示す第１の実施形態と同様である。ただし、ステップＡ２において、状態変数識別手段１２３１が、状態変数間の関連性を示す情報を関連性導出手段１２５から取得する点が異なる。ここでは、状態変数識別手段１２３１は、関連性指定手段１２１がユーザに指定させることで取得した状態変数間の関連性を示す情報と、関連性導出手段１２５が導出した新たな状態変数間の関連性を示す情報とを含む網羅的な状態変数間の関連性を示す情報を、関連性導出手段１２５から取得する。他の点に関しては第１の実施形態と同様である。
【００６０】
以上のように、本実施形態によれば、ユーザが指定した状態変数間の関連性の情報に基づいて新たな関連性の情報を生成することで、ユーザの手間を軽減することができる。すなわち、ユーザが判断して指定する状態変数間の関連性を組み合わせて別の状態変数間の関連性を導出することができるので、そのような情報を指定する手間を軽減した上で、網羅的な関連性に基づいて、より精度よく検査と関係のない状態をモデル検査の対象から削減することができる。
【００６１】
実施形態４．
次に、本発明の第４の実施形態について説明する。図８は、本実施形態におけるモデル検査システムの構成例を示すブロック図である。図８に示すモデル検査システムは、図６に示す第２の実施形態の構成に、第３の実施形態で示した関連性導出手段１２５を追加した形態である。
【００６２】
関連性導出手段１２５は、第３の実施形態と同様に、ユーザが指定した状態変数間の関連性を示す情報から、新たな状態変数間の関連性を導出する。なお、本実施形態では、関連性指定手段１１１によって設計モデルに埋め込まれたユーザが指定した状態変数間の関連性を示す情報から、新たな状態変数間の関連性を導出する。関連性導出手段１２５は、網羅的な状態変数間の関連性を示す情報として、設計モデルから取得したユーザが指定した状態変数間の関連性を示す情報と、新たに導出した状態変数間の関連性を示す情報とを併せて保持しておけばよい。なお、関連性指定手段１１１と同様に、設計モデルに埋め込ませて保持させてもよい。
【００６３】
なお、上記実施形態には、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる関連性指定手段と、ユーザに指定させた状態変数間の関連性を示す情報に基づいて、検査に用いるシステムの状態数を削減する状態数削減手段とを備えたモデル検証システムの構成例が示されている（実施形態１参照。）。
【００６４】
また、上記実施形態には、検査対象システムの仕様を記述した設計モデルを作成する設計モデル作成手段を備え、関連性指定手段が、設計モデル作成手段に含まれ、設計モデルを作成する過程で、状態変数間の関連性をユーザに指定させるモデル検証システムの構成例が示されている（実施形態２参照。）。
【００６５】
また、上記実施形態には、関連性指定手段によってユーザに指定させた状態変数間の関連性を示す情報から、新たな状態変数間の関連性を導出する関連性導出手段を備え、状態数削減手段が、ユーザに指定させた状態変数間の関連性を示す情報と、関連性導出手段によって導出された新たな状態変数間の関連性を示す情報とに基づいて、検査に用いるシステムの状態数を削減するモデル検証システムの構成例が示されている（実施形態３参照。）。
【００６６】
また、上記実施形態には、関連性導出手段が、関連性指定手段によってユーザに指定させた状態変数間の関連性を組み合わせることによって、新たな状態変数間の関連性を導出するモデル検証システムの構成例が示されている。
【００６７】
また、上記実施形態には、関連性指定手段が、ある状態変数の変化が他の状態変数の変化に影響を与えるか否かを示す情報をユーザに入力させ、入力させた該情報を状態変数間の関連性を示す情報として受けるモデル検証システムの構成例が示されている。
【００６８】
また、上記実施形態には、検査内容を示す情報であって設計モデルに要求する性質を状態変数に関する論理式で記述される情報である検査式を入力する検査式入力手段を備え、状態数削減手段が、入力される検査式と、状態変数間の関連性を示す情報とに基づいて、検査内容に関係のない状態変数をシステムの状態変化要因の対象から除外することによって、検査に用いるシステムの状態数を削減するモデル検証システムの構成例が示されている（図４のフローチャート参照。）。
【産業上の利用可能性】
【００６９】
本発明は、モデル検査における検査対象の状態の削減を行うシステムであれば、好適に適用可能である。
【図面の簡単な説明】
【００７０】
【図１】本発明によるモデル検査システムの構成例を示すブロック図である。
【図２】第１の実施形態におけるモデル検査システムの構成例を示すブロック図である。
【図３】関連性指定手段１２１による関連性指定方法の一例を示す説明図である。
【図４】モデル検査システムの動作例を示すフローチャートである。
【図５】第１の実施形態の一実施例を示す説明図である。
【図６】第２の実施形態におけるモデル検査システムの構成例を示すブロック図である。
【図７】第３の実施形態におけるモデル検査システムの構成例を示すブロック図である。
【図８】第４の実施形態におけるモデル検査システムの構成例を示すブロック図である。
【符号の説明】
【００７１】
１０１，１１１，１２１  関連性指定手段
１０２  状態数削減手段
１１  設計モデル作成手段
１２  モデル検査手段
１２２  検査式入力手段
１２３  検査プログラム作成手段
１２３１  状態変数識別手段
１２４  モデル検査実行手段
１２５  関連性導出手段
【図１】
2009134360.tif 000003
【図２】
2009134360.tif 000004
【図３】
2009134360.tif 000005
【図４】
2009134360.tif 000006
【図５】
2009134360.tif 000007
【図６】
2009134360.tif 000008
【図７】
2009134360.tif 000009
【図８】
2009134360.tif 000010