説明

モデル検査支援方法、モデル検査支援プログラム、およびモデル検査支援装置

【課題】モデル検査システムでは、検査対象のモデルが大きくなり状態数が増大すると、コンピュータで扱える範囲を超えて処理しきれなくなる「状態爆発」と呼ばれる現象が発生する。そこで、非機能要求に関する性能の検査に時間を状態として含める必要のあるリアルタイム性を要する組み込み機器の開発でも状態爆発に陥らないモデル検査支援装置を提供する。
【解決手段】コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援方法であって、検査モデル7を複数のクラスタに分割し、前記複数のクラスタの一部のクラスタを統計モデル8に置き換え、前記検査モデル7と置き換えをしたモデルに対して実行時間分布を求めるシミュレーションを実行して実行時間の分布間距離を算出し、分布間距離が最小となるクラスタを前記統計モデル8への置き換えが妥当なクラスタと判定し、前記統計モデル8へ置き換えたモデルの検査プログラムを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムの性能を検査するモデル検査において、モデルの一部を統計モデルに置き換えることにより抽象化する技術に関する。
【背景技術】
【0002】
今日、ソフトウェア組み込み機器においては、ハードウェアの技術革新により、より複雑な制御や機能をもつソフトウェアを組み込もうとするニーズが高まってきている。組み込み機器においては、複数の機器が協調して動作する必要があり、各機能の状態とその遷移系列で表現されるシステム仕様に誤りや矛盾がないかを確認してシステムを構築する必要がある。
【0003】
システム仕様を検証する技術としてモデル検査技術があり、代表的なモデル検査ツールとしては、SPIN(例えば、非特許文献1参照)やUPPAAL(例えば、非特許文献2参照)などが知られている。
【0004】
一般に、モデル検査システムでは、検査対象のモデルが大きくなり状態数が増大すると、コンピュータで扱える範囲を超えてしまい処理しきれなくなる「状態爆発」と呼ばれる現象が発生するという問題がある。特に、リアルタイム性が求められる組み込み機器の開発において、非機能要求に関する性能の検査には時間を状態として含める必要があり、状態爆発に陥る可能性が高くなる。
【0005】
検査する状態数を削減する技術として、特開2009−134360号公報(特許文献1)がある。この公報には、[0014]において、「検査対象システムの仕様を記述した設計モデルの検査を行うモデル検査システムであって、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる関連性指定手段と、ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、設計モデル上のシステムの状態数を削減する状態数削減手段とを備えたことを特徴とする」と記載されている。
【0006】
しかしながら、特許文献1では、ユーザの指定する関連性が正しいかどうかを自動的に判定することができない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2009−134360号公報
【非特許文献】
【0008】
【非特許文献1】G.J.Halzmann著 「The SPIN model checker: Primer and reference manual」Addison Wesiey, 2000年
【非特許文献2】G.Behrmann et.al 「A Tutorial an UPPAAL」In Proceeding of the 4th International School on Formal Methods for the Design of Computer, Communication, and Software Systems(SFM−RT’04). LNCS 3185 2004年
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の目的は、モデル検査において、検査対象となるモデルの一部を統計モデルに置き換えることにより抽象化し、検査中の状態数増加を抑え、検査不可能となることを防ぐ方法、プログラムおよび装置を提供することにある。また、モデル検査で状態削減のために行うモデル抽象化において、抽象モデルへ置き換える部分をユーザが決めるのではなく、自動的に選択することにより、不適な抽象化による精度劣化を防ぐ方法、プログラムおよび装置を提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【0011】
本願は上記課題を解決する手段を複数含んでいるが、モデル検査支援装置の一例を挙げるならば、
「開発対象システムのモデル検査を支援するモデル検査支援装置であって、記録部から検査モデルと統計モデルを取得し、前記検査モデルを複数のクラスタに分ける検査モデルクラスタリング部と、前記検査モデルクラスタリング部で生成されたクラスタの一部を前記統計モデルに置き換えることでモデル検査に用いるモデルの状態数を削減するモデル置換部と、前記検査モデルと前記モデル置換部で前記統計モデルに置き換えられたモデルに対して実行時間の分布を得るためのシミュレーションを実行するシミュレーション実行部と、前記シミュレーション実行部で実行するシミュレーションの条件を与える検査式入力部と、前記記録部から取得した前記検査モデルの実行時間分布と前記モデル置換部で前記統計モデルに置き換えられたモデルの実行時間分布との分布間距離を任意の一部のクラスタを統計モデルに置き換えられた全てのモデルに対して算出し、分布間距離が最小となる置き換え後のモデルの検査プログラムを出力するシミュレーション結果解析部と、前記シミュレーション結果解析部の結果を画面表示するシミュレーション結果出力部と、を備えている」ことを特徴とする。
【0012】
即ち、第1の発明の特徴は、(1)開発対象システムのモデル検査を支援するモデル検査支援装置であって、検査モデルを複数のクラスタに分ける検査モデルクラスタリング部と、前記複数のクラスタの一部を統計モデルに置き換えるモデル置換部と、前記検査モデルと前記置き換えられたモデルに対して実行時間の分布を得るためのシミュレーションを実行するシミュレーション実行部と、前記シミュレーションの条件を与える検査式入力部と、前記検査モデルの実行時間分布と前記置き換えられたモデルの実行時間分布との分布間距離を任意の一部のクラスタを置き換えられた全てのモデルに対して算出し、分布間距離が最小となる置き換え後のモデルの検査プログラムを出力するシミュレーション結果解析部と、前記シミュレーション結果解析部の結果を画面表示するシミュレーション結果出力部と、を備えているモデル検査支援装置にある。
【0013】
(2)(1)において、前記シミュレーション結果出力部は、前記検査モデル、前記複数のクラスタ、前記シミュレーション結果解析部で算出された実行時間の分布間距離、クラスタに置き換えることによって削減される状態数、のうち任意の項目を表示することができる。
【0014】
(3)(1)において、前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換えを行わないクラスタまたは置き換えを行うクラスタを事前に指定することができる。
【0015】
(4)(1)において、前記モデル置換部で任意の1つのクラスタを前記統計モデルに置き換えることができる。
【0016】
(5)(1)において、前記モデル置換部で任意の複数クラスタを前記統計モデルに置き換えることができる。
【0017】
(6)(1)において、前記シミュレーション結果解析部では自動的に最終モデルを出力せず、前記シミュレーション結果出力部から出力された結果から前記統計モデルに置き換えるクラスタを選択できる置換部分選択部を備えていても良い。
【0018】
(7)(1)において、前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換え条件を指定できる条件入力部を備えていても良い。
【0019】
(8)(7)において、前記条件入力部は、同時に前記統計モデルに置き換えるクラスタの上限値を指定することができる。
【0020】
(9)(7)において、前記条件入力部は、前記モデル置換部で複数のクラスタを前記統計モデルに置き換える際に、置き換えの対象となるクラスタを、1つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が指定するしきい値以下となるクラスタ、1つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が小さい順に指定する順位以内となるクラスタ、のいずれかを指定できる。
【0021】
第2の発明の特徴は、(10)コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援プログラムであって、検査モデルを複数のクラスタに分割する検査モデルクラスタリング処理、前記複数のクラスタの一部のクラスタを前記統計モデルに置き換えるモデル置換処理、前記検査モデルと前記モデル置換処理で置き換えをしたモデルに対して実行時間分布を求めるシミュレーション実行処理、前記シミュレーション実行処理で得られた実行時間の分布間距離を算出するシミュレーション結果解析処理、および前記シミュレーション結果解析処理の結果を出力するシミュレーション結果出力処理を実行させるモデル検査支援プログラムにある。
【0022】
(11)(10)において、前記モデル置換処理は、1つまたは2つ以上のクラスタを同時に前記統計モデルに置き換えて行われる。
【0023】
(12)(10)において、前記モデル置換処理は、置き換え対象とするクラスタの条件を事前に指定しておいても良い。
【0024】
(13)(10)において、前記シミュレーション結果出力処理は、前記シミュレーション結果解析処理で分布間距離が最小となるモデルに対するモデル検査用の検査プログラムを出力する。
【0025】
(14)(10)において、前記シミュレーション結果出力処理は、分布間距離の一覧、または分布間距離と削減状態数の一覧を出力し、出力結果に基づいて選択したクラスタを統計モデルに置き換えたモデルに対するモデル検査用の検査プログラムを出力する。
【0026】
第3の発明の特徴は、(15)コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援方法であって、検査モデルを複数のクラスタに分割し、前記複数のクラスタの一部のクラスタを統計モデルに置き換え、前記検査モデルと置き換えをしたモデルに対して実行時間分布を求めるシミュレーションを実行して実行時間の分布間距離を算出し、分布間距離が最小となるクラスタを前記統計モデルへの置き換えが妥当なクラスタと判定し、前記統計モデルへ置き換えたモデルの検査プログラムを出力することを特徴とするモデル検査支援方法にある。
【発明の効果】
【0027】
本発明によれば、モデル検査における状態数を削減することができる。また、モデル検査におけるモデル抽象化による精度の劣化を抑えることができる。
【図面の簡単な説明】
【0028】
【図1】モデル検査支援プログラムを実行するモデル検査支援装置の全体構成図の例である。
【図2】実施例1における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図である。
【図3】状態遷移図で表される検査モデルの一例を示す図である。
【図4】図3で示した検査モデルがクラスタに分割されることを示す図である。
【図5】実施例1における制御部の動作の一例を示すフロー図である。
【図6】7つのクラスタに分割された検査モデルを示す図である。
【図7】検査モデルの実行時間分布の一例を示す図である。
【図8】検査モデルのうちの1つのクラスタを統計モデルに置き換えたモデルの実行時間分布の一例を示す図である。
【図9】検査モデルのうちの1つのクラスタを統計モデルに置き換えたモデルの実行時間分布の一例を示す図である。
【図10】検査モデルおよび検査モデルのうちの1つのクラスタを統計モデルに置き換えたモデルの実行時間分布(複数)を重ね合わせた図の一例である。
【図11】実施例1においてシミュレーション結果出力部から出力される表示画面の一例を示す図である。
【図12】実施例1においてシミュレーション結果表示部で表示される分布間距離の一覧の例を示す図である。
【図13】実施例2における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図である。
【図14】実施例2における制御部の動作の一例を示すフロー図である。
【図15】実施例2においてシミュレーション結果出力部から出力される表示画面の一例を示す図である。
【図16】実施例3における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図である。
【図17】実施例3における制御部の動作(前半)の一例を示すフロー図である。
【図18】実施例3における制御部の動作(後半)の一例を示すフロー図である。
【図19】実施例3においてシミュレーション結果表示部で表示される分布間距離の一覧の例を示す図である。
【図20】実施例がコンピュータプログラムとして実現される場合の構成の例を示す図である。
【発明を実施するための形態】
【0029】
以下、実施例を図面を用いて説明する。
【実施例1】
【0030】
図1は、実施例1におけるモデル検査支援プログラムを実行するモデル検査支援装置の全体構成図の例である。図1に示す装置1は、制御部2、記録部3を備え、入出力装置4と接続されている。装置1は、入出力装置4から入力された検査モデル7に対して、モデルの一部の統計モデル8への置き換えを実行する。例えば、装置1はコンピュータや専用のハードウェアである。
【0031】
制御部2は、検査モデル抽象化部5、妥当性判定部6を備えている。制御部2は、検査モデル抽象化部5、妥当性判定部6以外に、入出力装置4、図示しない外部記録装置などの周辺機器とのやり取りの制御を行う。また、制御部2はCPUやプログラマブルなFPGA、PLDなどのデバイスを用いることができる。
【0032】
検査モデル抽象化部5は、検査モデル7の一部を統計モデル8に置き換える。
【0033】
妥当性判定部6は、シミュレーションを実行することによって、検査モデル抽象化部5でのモデル置き換えの妥当性を判断し、モデル検査を行うための検査プログラム9を出力する。
【0034】
記録部3は、検査モデル7、統計モデル8、検査プログラム9、入出力装置4から入力される不図示の入力データや、ドライバ、データベースタブ、ネットワークタブなどが記録されている。また、記録部3は、例えばROM、RAM、ハードディスクなどのメモリである。また、記録部3は、変数値やパラメータ値などのデータを記録してもよいし、ワークエリアとして用いることもできる。
【0035】
図2は、検査モデル抽象化部5、妥当性判定部6の機能構成の一例を示すブロック図である。
【0036】
検査モデル抽象化部5は、検査モデルクラスタリング部51、モデル置換部52を備えている。
【0037】
検査モデルクラスタリング部51は、記録部3から取得した検査モデル7をクラスタリングによって、いくつかのクラスタに分割する。クラスタリングは、例えば、複数のサンプルを取り込み、それをまとめて符号化する、ベクトル量子化クラスタリング等の技法を用いて実施することができる。
【0038】
図3は、状態遷移図で表される検査モデル7の一例を示す。
【0039】
図4は、図3で示す検査モデル7に対して検査モデルクラスタリング部51でクラスタリングを実行することにより、点線で区切られた3つのクラスタに分けられる例を示す。
【0040】
モデル置換部52は、検査モデルクラスタリング部51によってクラスタに分割された検査モデル7に対して、任意の1つのクラスタを記録部3から取得した統計モデル8に置き換える。統計モデル8は、例えば、処理待ちを表す待ち行列モデルでもよく、各クラスタに適するモデルをユーザが用意する。
【0041】
妥当性判定部6は、検査式入力部61、シミュレーション実行部62、シミュレーション結果解析部63、シミュレーション結果出力部64を備えている。
【0042】
検査式入力部61は、シミュレーションの実行に必要なパラメータ値を与える。
【0043】
シミュレーション実行部62は、検査式入力部61から入力された検査式を基に実行するシミュレーションを決定し、記録部3から取得した検査モデル7およびモデル置換部52で一部を統計モデル8に置き換えられたモデルに対して、実行時間を算出するシミュレーションを複数回実行し、実行時間の分布を算出する。
【0044】
モデル置換部52におけるモデルの置き換えは、統計モデル8へ置き換えるクラスタがなくなるまで実行し、それぞれに対して、シミュレーション実行部62で実行時間を算出するシミュレーションを複数回実行し、実行時間の分布を算出する。モデル置換部52におけるモデルの置き換えは、検査モデルクラスタリング部51で生成された全てのクラスタについて実施してもよいし、モデルの置き換えを実施するクラスタ、または実施しないクラスタを事前に指定してもよい。
【0045】
シミュレーション結果解析部63は、記録部3から取得された検査モデル7の実行時間分布と、モデル置換部52で一部を統計モデル8に置き換えられたモデルの実行時間分布との間の分布間距離を算出し、分布間距離が最少となるモデルを置き換え妥当なモデルと判断し、置き換え妥当と判断されたモデルの検査プログラム9を出力する。出力された検査プログラム9は、外部のモデル検査装置またはモデル検査プログラムの入力として使用できる。
【0046】
ここではシミュレーション実行部62で実行時間分布を算出しているが、シミュレーション結果解析部63で実行時間分布を算出する構成としてもよい。
【0047】
シミュレーション結果出力部64は、シミュレーション結果解析部63で算出された実行時間の分布間距離の一覧を出力する。
【0048】
図5は、制御部2の動作の一例を示すフロー図である。
【0049】
ステップS501では、シミュレーション実行部62で記録部3から取得した検査モデル7を用いたシミュレーションを複数回実行し、実行時間の分布Aを得る。
ステップS502では、検査モデルクラスタリング部51で検査モデル7をクラスタに分割する。
【0050】
ステップS503では、検査モデルクラスタリング部51で生成されたクラスタのうち、統計モデル8に置き換えることによって抽象化するクラスタが存在するかどうかを判定する。抽象化するクラスタが存在する場合はステップS504に移行し、存在しない場合はステップS507に移行する。
【0051】
ステップS504では、モデル置換部52で、抽象化するクラスタのうちの任意の1つのクラスタCiを統計モデル8に置き換える。
【0052】
ステップS505では、モデル置換部52で一部を統計モデル8に置き換えられたモデルに対して、シミュレーション実行部62でシミュレーションを複数回実行し、実行時間の分布Biを得る。
【0053】
ステップS506では、シミュレーション結果解析部63において、ステップS501で得られた実行時間分布AとステップS505で得られた実行時間分布Biの分布間距離を算出する。
【0054】
ステップS507では、シミュレーション結果解析部63で算出された分布間距離が最少となる場合のモデルを統計モデル8への置き換えが妥当なモデルと判断し、置き換え妥当と判断されたモデルの検査プログラム9を出力し、処理を終了する。
【0055】
図6は、検査モデルクラスタリング部51でのクラスタリングにより、記録部3から取得された検査モデル7が7つのクラスタに分割された例を示す図であり、図中のノードに記載されたC1からC7は各クラスタ番号を表す。各ノードは1つの状態を表すものではなく、実際には、各クラスタに含まれる全ての状態遷移が含まれる。
【0056】
図7の(a)は図6と同等であり、図7の(b)は、同図(a)のモデルに対してシミュレーション実行部62で得られた実行時間分布の例を示す。図7(a)に示すモデルは、統計モデル8への置き換えは行われていない。
【0057】
図8(a)は、図6に示されるクラスタのうち、クラスタC2に対して統計モデル8への置き換えを実行することを示し、同図(b)は、クラスタC2を統計モデル8へ置き換えたモデルに対してシミュレーション実行部62でシミュレーションを実行し、得られた実行時間分布の例を示す。
【0058】
図9(a)は、図6に示されるクラスタのうち、クラスタC4に対して統計モデル8への置き換えを実行することを示し、同図(b)は、クラスタC4を統計モデル8へ置き換えたモデルに対してシミュレーション実行部62でシミュレーションを実行し、得られた実行時間分布の例を示す。
【0059】
図10は、統計モデル8への置き換えを実行する全てのクラスタに対してシミュレーション実行部62でシミュレーションを実行した結果として得られる実行時間分布を重ね合わせた図の例である。図の点線で示す分布は、例えば、統計モデル8への置き換えのない実行時間分布を表す。
【0060】
図11は、シミュレーション結果出力部64から出力される表示画面の一例を示す図であり、入力モデル表示部111、クラスタ表示部112、およびシミュレーション結果表示部113で構成される。入力モデル表示部111では、統計モデル8に置き換えられていない検査モデル7を表示し、クラスタ表示部112では、検査モデル7をクラスタに分割した結果を表示する。シミュレーション結果表示部113では、シミュレーション結果出力部64で出力される実行時間の分布図と、分布間距離の一覧を表示する。クラスタ表示部112およびシミュレーション結果表示部113において、統計モデル8に置き換えることで分布間距離が最小となるクラスタにマークを付けるなどしてもよい。図11に示す表示画面は一例であり、このうちの一部を表示する構成でもよい。
【0061】
図12は、シミュレーション結果表示部113で表示される分布間距離の一覧の例を示す。クラスタC2を統計モデル8に置き換えたときの分布間距離が最小であり、このとき、シミュレーション結果解析部63からは、クラスタC2を統計モデル8に置き換えたモデルの検査プログラム9が出力される。
【実施例2】
【0062】
先の実施例1では、シミュレーション結果解析部63で算出された分布間距離が最小となるモデルの検査プログラム9を自動的に出力するが、この実施例2では、クラスタごとの分布間距離の一覧を表示し、統計モデル8に置き換えるクラスタはユーザが選択する。実施例2におけるモデル検査支援プログラムを実行するモデル検査支援装置の全体構成図は、図1に示す実施例1における全体構成図と同様である。
【0063】
図13は、実施例2における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図であり、置換部分選択部65を備え、シミュレーション結果出力部64での処理の後に検査プログラム9が出力される点が、実施例1とは異なる。実施例1と同一の機能を持つ部位には同一の符号を付してその詳細の説明は省略する。
【0064】
シミュレーション結果解析部63は、記録部3から取得された検査モデル7の実行時間分布と、モデル置換部52で一部を統計モデル8に置き換えられたモデルの実行時間分布との間の分布間距離を算出する。ここでは、自動的なモデルの置き換えは実施しない。
【0065】
シミュレーション結果出力部64は、シミュレーション結果解析部63で算出された実行時間の分布間距離の一覧を出力し、置換部分選択部65で統計モデル8に置き換えるクラスタがユーザによって選択されるのを待つ。ユーザからの入力を受け付けると、選択されたクラスタを統計モデル8に置き換えたモデルの検査プログラム9を出力する。
【0066】
置換部分選択部65は、シミュレーション結果出力部64で出力された分布間距離の一覧から、統計モデル8へ置き換えるクラスタをユーザが選択する。
【0067】
図14は、実施例2における制御部2の動作の一例を示すフロー図である。実施例1の図5におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【0068】
ステップS1407では、シミュレーション結果解析部63で算出された分布間距離の一覧を表示する。
【0069】
ステップS1408では、ユーザによって選択されたクラスタを統計モデル8に置き換えたモデルの検査プログラム9を出力し、処理を終了する。
【0070】
図15は、実施例2におけるシミュレーション結果出力部64から出力される表示画面の一例を示す図であり、シミュレーション結果表示部113に表示される分布間距離の一覧にクラスタ選択欄が追加されている点が図11とは異なる。分布間距離の一覧には、各クラスタを統計モデルに置き換えることで削減される状態数も併せて表示してもよく、これにより、分布間距離による置き換え妥当性だけではなく、状態数削減効果を考慮した置き換えが可能となる。
【実施例3】
【0071】
上記実施例1、実施例2では、検査モデルクラスタリング部51で生成されたクラスタのうち1つを統計モデル8に置き換えていたが、実施例3では、複数のクラスタの置き換えを可能とする。具体的には、実施例2に示す動作で1つのクラスタを置き換えたモデルについて分布間距離を得た後、事前にユーザによって指定されたクラスタ選択条件を満たす複数クラスタの組合せに対して、統計モデル8への置き換え、実行時間分布の算出、および統計モデル8への置き換えをしない検査モデル7の実行時間分布との分布間距離の算出を実行し、その一覧から統計モデル8に置き換えるクラスタの組を決定する。実施例3におけるモデル検査支援プログラムを実行するモデル検査支援装置の全体構成図は、図1に示す実施例1における全体構成図と同様である。
【0072】
図16は、実施例3における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図であり、条件入力部53を備える点が、実施例2とは異なる。実施例2と同一の機能を持つ部位には同一の符号を付してその詳細の説明は省略する。
【0073】
条件入力部53では、同時に統計モデル8に置き換えるクラスタの最大数と、複数クラスタ選択の条件を入力する。ここで、複数クラスタ選択の条件とは、統計モデル8への置き換えの対象となるクラスタを指定するための条件であり、1つのクラスタのみを統計モデル8に置き換えた場合の分布間距離が事前にユーザの指定するしきい値以下となるクラスタ、1つのクラスタのみを統計モデル8に置き換えた場合の分布間距離が小さい順に事前にユーザの指定する順位以内となるクラスタ、あるいは全てのクラスタのいずれかを設定する。
【0074】
モデル置換部52は、検査モデルクラスタリング部51によってクラスタに分割された検査モデル7に対して、実施例1および実施例2同様に任意の1つのクラスタを記録部3から取得した統計モデル8に置き換えることに加えて、条件入力部53で入力された条件を満たす複数クラスタを記録部3から取得した統計モデル8に置き換える。
【0075】
図17および図18は、実施例3における制御部の動作の一例を示すフロー図である。実施例2の図14におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【0076】
ステップS1700では、条件入力部53で、ユーザが同時に統計モデル8に置き換えるクラスタの最大数Mと複数クラスタ選択の条件Tを入力する。
【0077】
ステップS1801では、条件入力部53で入力された条件を満たし、統計モデル8に置き換えることによって抽象化する複数クラスタの組合せが存在するかどうかを判定する。抽象化するクラスタが存在する場合はステップS1802に移行し、存在しない場合はステップS1805に移行する。
【0078】
ステップS1802では、モデル置換部52で、抽象化する任意の複数クラスタの組合せを統計モデル8に置き換える。
【0079】
ステップS1803では、ステップS1802で統計モデル8に置き換えたモデルに対して、シミュレーション実行部62でシミュレーションを複数回実行し、実行時間の分布Diを得る。
【0080】
ステップS1804では、シミュレーション結果解析部63において、ステップS501で得られた実行時間分布AとステップS1803で得られた実行時間分布Diの分布間距離を算出する。
【0081】
ステップS1805では、シミュレーション結果解析部63で算出された分布間距離の一覧を表示する。
【0082】
ステップS1806では、ユーザが統計モデル8に置き換えるクラスタを選択し、選択されたクラスタを統計モデル8に置き換えたモデルの検査プログラム9を出力し、処理を終了する。
図19は、実施例3におけるシミュレーション結果出力部64から出力される表示画面中のシミュレーション結果表示部113の一例を示す図であり、複数クラスタを置き換えた場合の結果が追加されている。また、各クラスタを統計モデル8に置き換えることで削減される状態数も併せて表示した例となっているが、必ずしも表示する必要はない。
【0083】
本実施例3によれば、1つのクラスタの置き換えと比較してより多くの状態数を削減することができる。
上記実施例1、実施例2、実施例3では、モデル検査装置とは独立する装置としての構成を示したが、モデル検査装置の一機能として実現する構成(本実施例がコンピュータプログラムとして実現される場合の構成)とすることも可能である。
【0084】
図20は、上記本発明の実施形態の装置を実現できるコンピュータのハードウェア構成の一例を示す図である。
【0085】
コンピュータのハードウェア200は、CPU201、通信インタフェース202、入出力インタフェース203、記録部204(ROM、RAM、ハードディスクドライブなど)、記録媒体読取装置205などを備えている。また、上記の各構成部は、バス206によってそれぞれ接続されている。
【0086】
CPU201は、記録部204に格納されている上記説明した検査モデルクラスタリング部、モデル置換部、シミュレーション実行部、シミュレーション結果解析部、シミュレーション結果出力部などで行う処理を実行する。
【0087】
通信インタフェース202は、必要に応じて、他のコンピュータとの間のLAN接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
【0088】
入出力インタフェース203には、入出力装置203a(図1の入出力装置4、マウス、キーボード、ディスプレイなど)が接続され、ユーザが入力した情報を受信し、バス206を介してCPU201に送信する。また、CPU201からの命令に従って、ディスプレイの画面上に操作情報などを表示する。
【0089】
記録部204には、CPU201が実行するプログラムやデータが記録されている。また、ワークエリアなどとして使用される。
【0090】
記録媒体読取装置205は、CPU201の制御にしたがった記録媒体205aに対するデータの読み書きを制御する。そして、記録媒体205a、記録媒体読取装置205の制御で書き込まれたデータを記憶したり、記録媒体205aに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体205aは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【0091】
このようなハードウェア構成を有するコンピュータを1台以上用いることによって、上記説明した各処理機能(実施例で説明した処理)が実現される。その場合、システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体205aに記録しておくことができる。
【0092】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体として販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにプログラムを転送することもできる。
【0093】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータはサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0094】
また、本発明は、上記した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0095】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【産業上の利用可能性】
【0096】
モデル検査において、検査対象となるモデルの一部を統計モデルに置き換えることにより抽象化し、検査中の状態数増加を抑え、検査不可能となることを防ぐ方法、プログラムおよび装置を提供することができる。
【符号の説明】
【0097】
1 装置
2 制御部
3 記録部
4 入出力装置
5 検査モデル抽象化部
6 妥当性判定部
7 検査モデル
8 統計モデル
9 検査プログラム
51 検査モデルクラスタリング部
52 モデル置換部
53 条件入力部
61 検査式入力部
62 シミュレーション実行部
63 シミュレーション結果解析部
64 シミュレーション結果出力部
65 置換部分選択部
111 入力モデル表示部
112 クラスタ表示部
113 シミュレーション結果表示部
200 ハードウェア
201 CPU
202 通信インタフェース
203 入出力インタフェース
203a 入出力装置
204 記録部
205 記録媒体読取装置
205a 記録媒体
206 バス

【特許請求の範囲】
【請求項1】
開発対象システムのモデル検査を支援するモデル検査支援装置であって、検査モデルを複数のクラスタに分ける検査モデルクラスタリング部と、前記複数のクラスタの一部を統計モデルに置き換えるモデル置換部と、前記検査モデルと前記置き換えられたモデルに対して実行時間の分布を得るためのシミュレーションを実行するシミュレーション実行部と、前記シミュレーションの条件を与える検査式入力部と、前記検査モデルの実行時間分布と前記置き換えられたモデルの実行時間分布との分布間距離を任意の一部のクラスタを置き換えられた全てのモデルに対して算出し、分布間距離が最小となる置き換え後のモデルの検査プログラムを出力するシミュレーション結果解析部と、前記シミュレーション結果解析部の結果を画面表示するシミュレーション結果出力部と、を備えていることを特徴とするモデル検査支援装置。
【請求項2】
前記シミュレーション結果出力部は、前記検査モデル、前記複数のクラスタ、前記シミュレーション結果解析部で算出された実行時間の分布間距離、クラスタに置き換えることによって削減される状態数、のうち任意の項目を表示することを特徴とする請求項1に記載のモデル検査支援装置。
【請求項3】
前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換えを行わないクラスタまたは置き換えを行うクラスタを事前に指定しておくことを特徴とする請求項1に記載のモデル検査支援装置。
【請求項4】
前記モデル置換部で任意の1つのクラスタを前記統計モデルに置き換えることを特徴とする請求項1に記載のモデル検査支援装置。
【請求項5】
前記モデル置換部で任意の複数クラスタを前記統計モデルに置き換えることを特徴とする請求項1に記載のモデル検査支援装置。
【請求項6】
前記シミュレーション結果解析部では自動的に最終モデルを出力せず、前記シミュレーション結果出力部から出力された結果から前記統計モデルに置き換えるクラスタをユーザが選択する置換部分選択部を備えることを特徴とする請求項1に記載のモデル検査支援装置。
【請求項7】
前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換え条件を指定する条件入力部を備えることを特徴とする請求項1に記載のモデル検査支援装置。
【請求項8】
前記条件入力部は、同時に前記統計モデルに置き換えるクラスタの上限値を指定することを特徴とする請求項7に記載のモデル検査支援装置。
【請求項9】
前記条件入力部は、前記モデル置換部で複数のクラスタを前記統計モデルに置き換える際に、置き換えの対象となるクラスタを、1つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が指定するしきい値以下となるクラスタ、1つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が小さい順に指定する順位以内となるクラスタ、のいずれかに指定することを特徴とする請求項7に記載のモデル検査支援装置。
【請求項10】
コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援プログラムであって、検査モデルを複数のクラスタに分割する検査モデルクラスタリング処理、前記複数のクラスタの一部のクラスタを前記統計モデルに置き換えるモデル置換処理、前記検査モデルと前記モデル置換処理で置き換えをしたモデルに対して実行時間分布を求めるシミュレーション実行処理、前記シミュレーション実行処理で得られた実行時間の分布間距離を算出するシミュレーション結果解析処理、および前記シミュレーション結果解析処理の結果を出力するシミュレーション結果出力処理を実行させることを特徴とするモデル検査支援プログラム。
【請求項11】
前記モデル置換処理は、1つまたは2つ以上のクラスタを同時に前記統計モデルに置き換えることを特徴とする請求項10に記載のモデル検査支援プログラム。
【請求項12】
前記モデル置換処理は、置き換え対象とするクラスタの条件を事前に指定することを特徴とする請求項10に記載のモデル検査支援プログラム。
【請求項13】
前記シミュレーション結果出力処理は、前記シミュレーション結果解析処理で分布間距離が最小となるモデルに対するモデル検査用の検査プログラムを出力することを特徴とする請求項10に記載のモデル検査支援プログラム。
【請求項14】
前記シミュレーション結果出力処理は、分布間距離の一覧、または分布間距離と削減状態数の一覧を出力し、出力結果に基づいて選択したクラスタを統計モデルに置き換えたモデルに対するモデル検査用の検査プログラムを出力することを特徴とする請求項10に記載のモデル検査支援プログラム。
【請求項15】
コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援方法であって、検査モデルを複数のクラスタに分割し、前記複数のクラスタの一部のクラスタを統計モデルに置き換え、前記検査モデルと置き換えをしたモデルに対して実行時間分布を求めるシミュレーションを実行して実行時間の分布間距離を算出し、分布間距離が最小となるクラスタを前記統計モデルへの置き換えが妥当なクラスタと判定し、前記統計モデルへ置き換えたモデルの検査プログラムを出力することを特徴とするモデル検査支援方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−89057(P2013−89057A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−229353(P2011−229353)
【出願日】平成23年10月19日(2011.10.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】