(57)【要約】      （修正有）【課題】モデル検査システムでは、検査対象のモデルが大きくなり状態数が増大すると、コンピュータで扱える範囲を超えて処理しきれなくなる「状態爆発」と呼ばれる現象が発生する。そこで、非機能要求に関する性能の検査に時間を状態として含める必要のあるリアルタイム性を要する組み込み機器の開発でも状態爆発に陥らないモデル検査支援装置を提供する。【解決手段】コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援方法であって、検査モデル７を複数のクラスタに分割し、前記複数のクラスタの一部のクラスタを統計モデル８に置き換え、前記検査モデル７と置き換えをしたモデルに対して実行時間分布を求めるシミュレーションを実行して実行時間の分布間距離を算出し、分布間距離が最小となるクラスタを前記統計モデル８への置き換えが妥当なクラスタと判定し、前記統計モデル８へ置き換えたモデルの検査プログラムを出力する。【選択図】図２
2013089057.tif 000002
【特許請求の範囲】
【請求項１】
開発対象システムのモデル検査を支援するモデル検査支援装置であって、検査モデルを複数のクラスタに分ける検査モデルクラスタリング部と、前記複数のクラスタの一部を統計モデルに置き換えるモデル置換部と、前記検査モデルと前記置き換えられたモデルに対して実行時間の分布を得るためのシミュレーションを実行するシミュレーション実行部と、前記シミュレーションの条件を与える検査式入力部と、前記検査モデルの実行時間分布と前記置き換えられたモデルの実行時間分布との分布間距離を任意の一部のクラスタを置き換えられた全てのモデルに対して算出し、分布間距離が最小となる置き換え後のモデルの検査プログラムを出力するシミュレーション結果解析部と、前記シミュレーション結果解析部の結果を画面表示するシミュレーション結果出力部と、を備えていることを特徴とするモデル検査支援装置。
【請求項２】
前記シミュレーション結果出力部は、前記検査モデル、前記複数のクラスタ、前記シミュレーション結果解析部で算出された実行時間の分布間距離、クラスタに置き換えることによって削減される状態数、のうち任意の項目を表示することを特徴とする請求項１に記載のモデル検査支援装置。
【請求項３】
前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換えを行わないクラスタまたは置き換えを行うクラスタを事前に指定しておくことを特徴とする請求項１に記載のモデル検査支援装置。
【請求項４】
前記モデル置換部で任意の１つのクラスタを前記統計モデルに置き換えることを特徴とする請求項１に記載のモデル検査支援装置。
【請求項５】
前記モデル置換部で任意の複数クラスタを前記統計モデルに置き換えることを特徴とする請求項１に記載のモデル検査支援装置。
【請求項６】
前記シミュレーション結果解析部では自動的に最終モデルを出力せず、前記シミュレーション結果出力部から出力された結果から前記統計モデルに置き換えるクラスタをユーザが選択する置換部分選択部を備えることを特徴とする請求項１に記載のモデル検査支援装置。
【請求項７】
前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換え条件を指定する条件入力部を備えることを特徴とする請求項１に記載のモデル検査支援装置。
【請求項８】
前記条件入力部は、同時に前記統計モデルに置き換えるクラスタの上限値を指定することを特徴とする請求項７に記載のモデル検査支援装置。
【請求項９】
前記条件入力部は、前記モデル置換部で複数のクラスタを前記統計モデルに置き換える際に、置き換えの対象となるクラスタを、１つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が指定するしきい値以下となるクラスタ、１つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が小さい順に指定する順位以内となるクラスタ、のいずれかに指定することを特徴とする請求項７に記載のモデル検査支援装置。
【請求項１０】
コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援プログラムであって、検査モデルを複数のクラスタに分割する検査モデルクラスタリング処理、前記複数のクラスタの一部のクラスタを前記統計モデルに置き換えるモデル置換処理、前記検査モデルと前記モデル置換処理で置き換えをしたモデルに対して実行時間分布を求めるシミュレーション実行処理、前記シミュレーション実行処理で得られた実行時間の分布間距離を算出するシミュレーション結果解析処理、および前記シミュレーション結果解析処理の結果を出力するシミュレーション結果出力処理を実行させることを特徴とするモデル検査支援プログラム。
【請求項１１】
前記モデル置換処理は、１つまたは２つ以上のクラスタを同時に前記統計モデルに置き換えることを特徴とする請求項１０に記載のモデル検査支援プログラム。
【請求項１２】
前記モデル置換処理は、置き換え対象とするクラスタの条件を事前に指定することを特徴とする請求項１０に記載のモデル検査支援プログラム。
【請求項１３】
前記シミュレーション結果出力処理は、前記シミュレーション結果解析処理で分布間距離が最小となるモデルに対するモデル検査用の検査プログラムを出力することを特徴とする請求項１０に記載のモデル検査支援プログラム。
【請求項１４】
前記シミュレーション結果出力処理は、分布間距離の一覧、または分布間距離と削減状態数の一覧を出力し、出力結果に基づいて選択したクラスタを統計モデルに置き換えたモデルに対するモデル検査用の検査プログラムを出力することを特徴とする請求項１０に記載のモデル検査支援プログラム。
【請求項１５】
コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援方法であって、検査モデルを複数のクラスタに分割し、前記複数のクラスタの一部のクラスタを統計モデルに置き換え、前記検査モデルと置き換えをしたモデルに対して実行時間分布を求めるシミュレーションを実行して実行時間の分布間距離を算出し、分布間距離が最小となるクラスタを前記統計モデルへの置き換えが妥当なクラスタと判定し、前記統計モデルへ置き換えたモデルの検査プログラムを出力することを特徴とするモデル検査支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの性能を検査するモデル検査において、モデルの一部を統計モデルに置き換えることにより抽象化する技術に関する。
【背景技術】
【０００２】
今日、ソフトウェア組み込み機器においては、ハードウェアの技術革新により、より複雑な制御や機能をもつソフトウェアを組み込もうとするニーズが高まってきている。組み込み機器においては、複数の機器が協調して動作する必要があり、各機能の状態とその遷移系列で表現されるシステム仕様に誤りや矛盾がないかを確認してシステムを構築する必要がある。
【０００３】
システム仕様を検証する技術としてモデル検査技術があり、代表的なモデル検査ツールとしては、ＳＰＩＮ（例えば、非特許文献１参照）やＵＰＰＡＡＬ（例えば、非特許文献２参照）などが知られている。
【０００４】
一般に、モデル検査システムでは、検査対象のモデルが大きくなり状態数が増大すると、コンピュータで扱える範囲を超えてしまい処理しきれなくなる「状態爆発」と呼ばれる現象が発生するという問題がある。特に、リアルタイム性が求められる組み込み機器の開発において、非機能要求に関する性能の検査には時間を状態として含める必要があり、状態爆発に陥る可能性が高くなる。
【０００５】
検査する状態数を削減する技術として、特開２００９−１３４３６０号公報（特許文献１）がある。この公報には、［００１４］において、「検査対象システムの仕様を記述した設計モデルの検査を行うモデル検査システムであって、検査対象システムの仕様において状態が変化する要素の状態を示すためのモデル内変数である状態変数間の関連性をユーザに指定させる関連性指定手段と、ユーザに指定させた前記状態変数間の関連性を示す情報に基づいて、設計モデル上のシステムの状態数を削減する状態数削減手段とを備えたことを特徴とする」と記載されている。
【０００６】
しかしながら、特許文献１では、ユーザの指定する関連性が正しいかどうかを自動的に判定することができない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１３４３６０号公報
【非特許文献】
【０００８】
【非特許文献１】Ｇ．Ｊ．Ｈａｌｚｍａｎｎ著  「Ｔｈｅ  ＳＰＩＮ  ｍｏｄｅｌ  ｃｈｅｃｋｅｒ：  Ｐｒｉｍｅｒ  ａｎｄ  ｒｅｆｅｒｅｎｃｅ  ｍａｎｕａｌ」Ａｄｄｉｓｏｎ  Ｗｅｓｉｅｙ，  ２０００年
【非特許文献２】Ｇ．Ｂｅｈｒｍａｎｎ  ｅｔ．ａｌ  「Ａ  Ｔｕｔｏｒｉａｌ  ａｎ  ＵＰＰＡＡＬ」Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  ｔｈｅ  ４ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｃｈｏｏｌ  ｏｎ  Ｆｏｒｍａｌ  Ｍｅｔｈｏｄｓ  ｆｏｒ  ｔｈｅ  Ｄｅｓｉｇｎ  ｏｆ  Ｃｏｍｐｕｔｅｒ，  Ｃｏｍｍｕｎｉｃａｔｉｏｎ，  ａｎｄ  Ｓｏｆｔｗａｒｅ  Ｓｙｓｔｅｍｓ（ＳＦＭ−ＲＴ’０４）．  ＬＮＣＳ  ３１８５  ２００４年
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、モデル検査において、検査対象となるモデルの一部を統計モデルに置き換えることにより抽象化し、検査中の状態数増加を抑え、検査不可能となることを防ぐ方法、プログラムおよび装置を提供することにある。また、モデル検査で状態削減のために行うモデル抽象化において、抽象モデルへ置き換える部分をユーザが決めるのではなく、自動的に選択することにより、不適な抽象化による精度劣化を防ぐ方法、プログラムおよび装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【００１１】
本願は上記課題を解決する手段を複数含んでいるが、モデル検査支援装置の一例を挙げるならば、
「開発対象システムのモデル検査を支援するモデル検査支援装置であって、記録部から検査モデルと統計モデルを取得し、前記検査モデルを複数のクラスタに分ける検査モデルクラスタリング部と、前記検査モデルクラスタリング部で生成されたクラスタの一部を前記統計モデルに置き換えることでモデル検査に用いるモデルの状態数を削減するモデル置換部と、前記検査モデルと前記モデル置換部で前記統計モデルに置き換えられたモデルに対して実行時間の分布を得るためのシミュレーションを実行するシミュレーション実行部と、前記シミュレーション実行部で実行するシミュレーションの条件を与える検査式入力部と、前記記録部から取得した前記検査モデルの実行時間分布と前記モデル置換部で前記統計モデルに置き換えられたモデルの実行時間分布との分布間距離を任意の一部のクラスタを統計モデルに置き換えられた全てのモデルに対して算出し、分布間距離が最小となる置き換え後のモデルの検査プログラムを出力するシミュレーション結果解析部と、前記シミュレーション結果解析部の結果を画面表示するシミュレーション結果出力部と、を備えている」ことを特徴とする。
【００１２】
即ち、第１の発明の特徴は、（１）開発対象システムのモデル検査を支援するモデル検査支援装置であって、検査モデルを複数のクラスタに分ける検査モデルクラスタリング部と、前記複数のクラスタの一部を統計モデルに置き換えるモデル置換部と、前記検査モデルと前記置き換えられたモデルに対して実行時間の分布を得るためのシミュレーションを実行するシミュレーション実行部と、前記シミュレーションの条件を与える検査式入力部と、前記検査モデルの実行時間分布と前記置き換えられたモデルの実行時間分布との分布間距離を任意の一部のクラスタを置き換えられた全てのモデルに対して算出し、分布間距離が最小となる置き換え後のモデルの検査プログラムを出力するシミュレーション結果解析部と、前記シミュレーション結果解析部の結果を画面表示するシミュレーション結果出力部と、を備えているモデル検査支援装置にある。
【００１３】
（２）（１）において、前記シミュレーション結果出力部は、前記検査モデル、前記複数のクラスタ、前記シミュレーション結果解析部で算出された実行時間の分布間距離、クラスタに置き換えることによって削減される状態数、のうち任意の項目を表示することができる。
【００１４】
（３）（１）において、前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換えを行わないクラスタまたは置き換えを行うクラスタを事前に指定することができる。
【００１５】
（４）（１）において、前記モデル置換部で任意の１つのクラスタを前記統計モデルに置き換えることができる。
【００１６】
（５）（１）において、前記モデル置換部で任意の複数クラスタを前記統計モデルに置き換えることができる。
【００１７】
（６）（１）において、前記シミュレーション結果解析部では自動的に最終モデルを出力せず、前記シミュレーション結果出力部から出力された結果から前記統計モデルに置き換えるクラスタを選択できる置換部分選択部を備えていても良い。
【００１８】
（７）（１）において、前記モデル置換部で前記検査モデルの一部のクラスタを前記統計モデルに置き換える際に、置き換え条件を指定できる条件入力部を備えていても良い。
【００１９】
（８）（７）において、前記条件入力部は、同時に前記統計モデルに置き換えるクラスタの上限値を指定することができる。
【００２０】
（９）（７）において、前記条件入力部は、前記モデル置換部で複数のクラスタを前記統計モデルに置き換える際に、置き換えの対象となるクラスタを、１つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が指定するしきい値以下となるクラスタ、１つのクラスタのみを前記統計モデルに置き換えた場合の分布間距離が小さい順に指定する順位以内となるクラスタ、のいずれかを指定できる。
【００２１】
第２の発明の特徴は、（１０）コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援プログラムであって、検査モデルを複数のクラスタに分割する検査モデルクラスタリング処理、前記複数のクラスタの一部のクラスタを前記統計モデルに置き換えるモデル置換処理、前記検査モデルと前記モデル置換処理で置き換えをしたモデルに対して実行時間分布を求めるシミュレーション実行処理、前記シミュレーション実行処理で得られた実行時間の分布間距離を算出するシミュレーション結果解析処理、および前記シミュレーション結果解析処理の結果を出力するシミュレーション結果出力処理を実行させるモデル検査支援プログラムにある。
【００２２】
（１１）（１０）において、前記モデル置換処理は、１つまたは２つ以上のクラスタを同時に前記統計モデルに置き換えて行われる。
【００２３】
（１２）（１０）において、前記モデル置換処理は、置き換え対象とするクラスタの条件を事前に指定しておいても良い。
【００２４】
（１３）（１０）において、前記シミュレーション結果出力処理は、前記シミュレーション結果解析処理で分布間距離が最小となるモデルに対するモデル検査用の検査プログラムを出力する。
【００２５】
（１４）（１０）において、前記シミュレーション結果出力処理は、分布間距離の一覧、または分布間距離と削減状態数の一覧を出力し、出力結果に基づいて選択したクラスタを統計モデルに置き換えたモデルに対するモデル検査用の検査プログラムを出力する。
【００２６】
第３の発明の特徴は、（１５）コンピュータによって、開発対象システムのモデル検査を支援するモデル検査支援方法であって、検査モデルを複数のクラスタに分割し、前記複数のクラスタの一部のクラスタを統計モデルに置き換え、前記検査モデルと置き換えをしたモデルに対して実行時間分布を求めるシミュレーションを実行して実行時間の分布間距離を算出し、分布間距離が最小となるクラスタを前記統計モデルへの置き換えが妥当なクラスタと判定し、前記統計モデルへ置き換えたモデルの検査プログラムを出力することを特徴とするモデル検査支援方法にある。
【発明の効果】
【００２７】
本発明によれば、モデル検査における状態数を削減することができる。また、モデル検査におけるモデル抽象化による精度の劣化を抑えることができる。
【図面の簡単な説明】
【００２８】
【図１】モデル検査支援プログラムを実行するモデル検査支援装置の全体構成図の例である。
【図２】実施例１における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図である。
【図３】状態遷移図で表される検査モデルの一例を示す図である。
【図４】図３で示した検査モデルがクラスタに分割されることを示す図である。
【図５】実施例１における制御部の動作の一例を示すフロー図である。
【図６】７つのクラスタに分割された検査モデルを示す図である。
【図７】検査モデルの実行時間分布の一例を示す図である。
【図８】検査モデルのうちの１つのクラスタを統計モデルに置き換えたモデルの実行時間分布の一例を示す図である。
【図９】検査モデルのうちの１つのクラスタを統計モデルに置き換えたモデルの実行時間分布の一例を示す図である。
【図１０】検査モデルおよび検査モデルのうちの１つのクラスタを統計モデルに置き換えたモデルの実行時間分布（複数）を重ね合わせた図の一例である。
【図１１】実施例１においてシミュレーション結果出力部から出力される表示画面の一例を示す図である。
【図１２】実施例１においてシミュレーション結果表示部で表示される分布間距離の一覧の例を示す図である。
【図１３】実施例２における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図である。
【図１４】実施例２における制御部の動作の一例を示すフロー図である。
【図１５】実施例２においてシミュレーション結果出力部から出力される表示画面の一例を示す図である。
【図１６】実施例３における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図である。
【図１７】実施例３における制御部の動作（前半）の一例を示すフロー図である。
【図１８】実施例３における制御部の動作（後半）の一例を示すフロー図である。
【図１９】実施例３においてシミュレーション結果表示部で表示される分布間距離の一覧の例を示す図である。
【図２０】実施例がコンピュータプログラムとして実現される場合の構成の例を示す図である。
【発明を実施するための形態】
【００２９】
以下、実施例を図面を用いて説明する。
【実施例１】
【００３０】
図１は、実施例１におけるモデル検査支援プログラムを実行するモデル検査支援装置の全体構成図の例である。図１に示す装置１は、制御部２、記録部３を備え、入出力装置４と接続されている。装置１は、入出力装置４から入力された検査モデル７に対して、モデルの一部の統計モデル８への置き換えを実行する。例えば、装置１はコンピュータや専用のハードウェアである。
【００３１】
制御部２は、検査モデル抽象化部５、妥当性判定部６を備えている。制御部２は、検査モデル抽象化部５、妥当性判定部６以外に、入出力装置４、図示しない外部記録装置などの周辺機器とのやり取りの制御を行う。また、制御部２はＣＰＵやプログラマブルなＦＰＧＡ、ＰＬＤなどのデバイスを用いることができる。
【００３２】
検査モデル抽象化部５は、検査モデル７の一部を統計モデル８に置き換える。
【００３３】
妥当性判定部６は、シミュレーションを実行することによって、検査モデル抽象化部５でのモデル置き換えの妥当性を判断し、モデル検査を行うための検査プログラム９を出力する。
【００３４】
記録部３は、検査モデル７、統計モデル８、検査プログラム９、入出力装置４から入力される不図示の入力データや、ドライバ、データベースタブ、ネットワークタブなどが記録されている。また、記録部３は、例えばＲＯＭ、ＲＡＭ、ハードディスクなどのメモリである。また、記録部３は、変数値やパラメータ値などのデータを記録してもよいし、ワークエリアとして用いることもできる。
【００３５】
図２は、検査モデル抽象化部５、妥当性判定部６の機能構成の一例を示すブロック図である。
【００３６】
検査モデル抽象化部５は、検査モデルクラスタリング部５１、モデル置換部５２を備えている。
【００３７】
検査モデルクラスタリング部５１は、記録部３から取得した検査モデル７をクラスタリングによって、いくつかのクラスタに分割する。クラスタリングは、例えば、複数のサンプルを取り込み、それをまとめて符号化する、ベクトル量子化クラスタリング等の技法を用いて実施することができる。
【００３８】
図３は、状態遷移図で表される検査モデル７の一例を示す。
【００３９】
図４は、図３で示す検査モデル７に対して検査モデルクラスタリング部５１でクラスタリングを実行することにより、点線で区切られた３つのクラスタに分けられる例を示す。
【００４０】
モデル置換部５２は、検査モデルクラスタリング部５１によってクラスタに分割された検査モデル７に対して、任意の１つのクラスタを記録部３から取得した統計モデル８に置き換える。統計モデル８は、例えば、処理待ちを表す待ち行列モデルでもよく、各クラスタに適するモデルをユーザが用意する。
【００４１】
妥当性判定部６は、検査式入力部６１、シミュレーション実行部６２、シミュレーション結果解析部６３、シミュレーション結果出力部６４を備えている。
【００４２】
検査式入力部６１は、シミュレーションの実行に必要なパラメータ値を与える。
【００４３】
シミュレーション実行部６２は、検査式入力部６１から入力された検査式を基に実行するシミュレーションを決定し、記録部３から取得した検査モデル７およびモデル置換部５２で一部を統計モデル８に置き換えられたモデルに対して、実行時間を算出するシミュレーションを複数回実行し、実行時間の分布を算出する。
【００４４】
モデル置換部５２におけるモデルの置き換えは、統計モデル８へ置き換えるクラスタがなくなるまで実行し、それぞれに対して、シミュレーション実行部６２で実行時間を算出するシミュレーションを複数回実行し、実行時間の分布を算出する。モデル置換部５２におけるモデルの置き換えは、検査モデルクラスタリング部５１で生成された全てのクラスタについて実施してもよいし、モデルの置き換えを実施するクラスタ、または実施しないクラスタを事前に指定してもよい。
【００４５】
シミュレーション結果解析部６３は、記録部３から取得された検査モデル７の実行時間分布と、モデル置換部５２で一部を統計モデル８に置き換えられたモデルの実行時間分布との間の分布間距離を算出し、分布間距離が最少となるモデルを置き換え妥当なモデルと判断し、置き換え妥当と判断されたモデルの検査プログラム９を出力する。出力された検査プログラム９は、外部のモデル検査装置またはモデル検査プログラムの入力として使用できる。
【００４６】
ここではシミュレーション実行部６２で実行時間分布を算出しているが、シミュレーション結果解析部６３で実行時間分布を算出する構成としてもよい。
【００４７】
シミュレーション結果出力部６４は、シミュレーション結果解析部６３で算出された実行時間の分布間距離の一覧を出力する。
【００４８】
図５は、制御部２の動作の一例を示すフロー図である。
【００４９】
ステップＳ５０１では、シミュレーション実行部６２で記録部３から取得した検査モデル７を用いたシミュレーションを複数回実行し、実行時間の分布Ａを得る。
ステップＳ５０２では、検査モデルクラスタリング部５１で検査モデル７をクラスタに分割する。
【００５０】
ステップＳ５０３では、検査モデルクラスタリング部５１で生成されたクラスタのうち、統計モデル８に置き換えることによって抽象化するクラスタが存在するかどうかを判定する。抽象化するクラスタが存在する場合はステップＳ５０４に移行し、存在しない場合はステップＳ５０７に移行する。
【００５１】
ステップＳ５０４では、モデル置換部５２で、抽象化するクラスタのうちの任意の１つのクラスタＣｉを統計モデル８に置き換える。
【００５２】
ステップＳ５０５では、モデル置換部５２で一部を統計モデル８に置き換えられたモデルに対して、シミュレーション実行部６２でシミュレーションを複数回実行し、実行時間の分布Ｂｉを得る。
【００５３】
ステップＳ５０６では、シミュレーション結果解析部６３において、ステップＳ５０１で得られた実行時間分布ＡとステップＳ５０５で得られた実行時間分布Ｂｉの分布間距離を算出する。
【００５４】
ステップＳ５０７では、シミュレーション結果解析部６３で算出された分布間距離が最少となる場合のモデルを統計モデル８への置き換えが妥当なモデルと判断し、置き換え妥当と判断されたモデルの検査プログラム９を出力し、処理を終了する。
【００５５】
図６は、検査モデルクラスタリング部５１でのクラスタリングにより、記録部３から取得された検査モデル７が７つのクラスタに分割された例を示す図であり、図中のノードに記載されたＣ１からＣ７は各クラスタ番号を表す。各ノードは１つの状態を表すものではなく、実際には、各クラスタに含まれる全ての状態遷移が含まれる。
【００５６】
図７の（ａ）は図６と同等であり、図７の（ｂ）は、同図（ａ）のモデルに対してシミュレーション実行部６２で得られた実行時間分布の例を示す。図７（ａ）に示すモデルは、統計モデル８への置き換えは行われていない。
【００５７】
図８（ａ）は、図６に示されるクラスタのうち、クラスタＣ２に対して統計モデル８への置き換えを実行することを示し、同図（ｂ）は、クラスタＣ２を統計モデル８へ置き換えたモデルに対してシミュレーション実行部６２でシミュレーションを実行し、得られた実行時間分布の例を示す。
【００５８】
図９（ａ）は、図６に示されるクラスタのうち、クラスタＣ４に対して統計モデル８への置き換えを実行することを示し、同図（ｂ）は、クラスタＣ４を統計モデル８へ置き換えたモデルに対してシミュレーション実行部６２でシミュレーションを実行し、得られた実行時間分布の例を示す。
【００５９】
図１０は、統計モデル８への置き換えを実行する全てのクラスタに対してシミュレーション実行部６２でシミュレーションを実行した結果として得られる実行時間分布を重ね合わせた図の例である。図の点線で示す分布は、例えば、統計モデル８への置き換えのない実行時間分布を表す。
【００６０】
図１１は、シミュレーション結果出力部６４から出力される表示画面の一例を示す図であり、入力モデル表示部１１１、クラスタ表示部１１２、およびシミュレーション結果表示部１１３で構成される。入力モデル表示部１１１では、統計モデル８に置き換えられていない検査モデル７を表示し、クラスタ表示部１１２では、検査モデル７をクラスタに分割した結果を表示する。シミュレーション結果表示部１１３では、シミュレーション結果出力部６４で出力される実行時間の分布図と、分布間距離の一覧を表示する。クラスタ表示部１１２およびシミュレーション結果表示部１１３において、統計モデル８に置き換えることで分布間距離が最小となるクラスタにマークを付けるなどしてもよい。図１１に示す表示画面は一例であり、このうちの一部を表示する構成でもよい。
【００６１】
図１２は、シミュレーション結果表示部１１３で表示される分布間距離の一覧の例を示す。クラスタＣ２を統計モデル８に置き換えたときの分布間距離が最小であり、このとき、シミュレーション結果解析部６３からは、クラスタＣ２を統計モデル８に置き換えたモデルの検査プログラム９が出力される。
【実施例２】
【００６２】
先の実施例１では、シミュレーション結果解析部６３で算出された分布間距離が最小となるモデルの検査プログラム９を自動的に出力するが、この実施例２では、クラスタごとの分布間距離の一覧を表示し、統計モデル８に置き換えるクラスタはユーザが選択する。実施例２におけるモデル検査支援プログラムを実行するモデル検査支援装置の全体構成図は、図１に示す実施例１における全体構成図と同様である。
【００６３】
図１３は、実施例２における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図であり、置換部分選択部６５を備え、シミュレーション結果出力部６４での処理の後に検査プログラム９が出力される点が、実施例１とは異なる。実施例１と同一の機能を持つ部位には同一の符号を付してその詳細の説明は省略する。
【００６４】
シミュレーション結果解析部６３は、記録部３から取得された検査モデル７の実行時間分布と、モデル置換部５２で一部を統計モデル８に置き換えられたモデルの実行時間分布との間の分布間距離を算出する。ここでは、自動的なモデルの置き換えは実施しない。
【００６５】
シミュレーション結果出力部６４は、シミュレーション結果解析部６３で算出された実行時間の分布間距離の一覧を出力し、置換部分選択部６５で統計モデル８に置き換えるクラスタがユーザによって選択されるのを待つ。ユーザからの入力を受け付けると、選択されたクラスタを統計モデル８に置き換えたモデルの検査プログラム９を出力する。
【００６６】
置換部分選択部６５は、シミュレーション結果出力部６４で出力された分布間距離の一覧から、統計モデル８へ置き換えるクラスタをユーザが選択する。
【００６７】
図１４は、実施例２における制御部２の動作の一例を示すフロー図である。実施例１の図５におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【００６８】
ステップＳ１４０７では、シミュレーション結果解析部６３で算出された分布間距離の一覧を表示する。
【００６９】
ステップＳ１４０８では、ユーザによって選択されたクラスタを統計モデル８に置き換えたモデルの検査プログラム９を出力し、処理を終了する。
【００７０】
図１５は、実施例２におけるシミュレーション結果出力部６４から出力される表示画面の一例を示す図であり、シミュレーション結果表示部１１３に表示される分布間距離の一覧にクラスタ選択欄が追加されている点が図１１とは異なる。分布間距離の一覧には、各クラスタを統計モデルに置き換えることで削減される状態数も併せて表示してもよく、これにより、分布間距離による置き換え妥当性だけではなく、状態数削減効果を考慮した置き換えが可能となる。
【実施例３】
【００７１】
上記実施例１、実施例２では、検査モデルクラスタリング部５１で生成されたクラスタのうち１つを統計モデル８に置き換えていたが、実施例３では、複数のクラスタの置き換えを可能とする。具体的には、実施例２に示す動作で１つのクラスタを置き換えたモデルについて分布間距離を得た後、事前にユーザによって指定されたクラスタ選択条件を満たす複数クラスタの組合せに対して、統計モデル８への置き換え、実行時間分布の算出、および統計モデル８への置き換えをしない検査モデル７の実行時間分布との分布間距離の算出を実行し、その一覧から統計モデル８に置き換えるクラスタの組を決定する。実施例３におけるモデル検査支援プログラムを実行するモデル検査支援装置の全体構成図は、図１に示す実施例１における全体構成図と同様である。
【００７２】
図１６は、実施例３における検査モデル抽象化部、妥当性判定部の機能構成の一例を示すブロック図であり、条件入力部５３を備える点が、実施例２とは異なる。実施例２と同一の機能を持つ部位には同一の符号を付してその詳細の説明は省略する。
【００７３】
条件入力部５３では、同時に統計モデル８に置き換えるクラスタの最大数と、複数クラスタ選択の条件を入力する。ここで、複数クラスタ選択の条件とは、統計モデル８への置き換えの対象となるクラスタを指定するための条件であり、１つのクラスタのみを統計モデル８に置き換えた場合の分布間距離が事前にユーザの指定するしきい値以下となるクラスタ、１つのクラスタのみを統計モデル８に置き換えた場合の分布間距離が小さい順に事前にユーザの指定する順位以内となるクラスタ、あるいは全てのクラスタのいずれかを設定する。
【００７４】
モデル置換部５２は、検査モデルクラスタリング部５１によってクラスタに分割された検査モデル７に対して、実施例１および実施例２同様に任意の１つのクラスタを記録部３から取得した統計モデル８に置き換えることに加えて、条件入力部５３で入力された条件を満たす複数クラスタを記録部３から取得した統計モデル８に置き換える。
【００７５】
図１７および図１８は、実施例３における制御部の動作の一例を示すフロー図である。実施例２の図１４におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【００７６】
ステップＳ１７００では、条件入力部５３で、ユーザが同時に統計モデル８に置き換えるクラスタの最大数Ｍと複数クラスタ選択の条件Ｔを入力する。
【００７７】
ステップＳ１８０１では、条件入力部５３で入力された条件を満たし、統計モデル８に置き換えることによって抽象化する複数クラスタの組合せが存在するかどうかを判定する。抽象化するクラスタが存在する場合はステップＳ１８０２に移行し、存在しない場合はステップＳ１８０５に移行する。
【００７８】
ステップＳ１８０２では、モデル置換部５２で、抽象化する任意の複数クラスタの組合せを統計モデル８に置き換える。
【００７９】
ステップＳ１８０３では、ステップＳ１８０２で統計モデル８に置き換えたモデルに対して、シミュレーション実行部６２でシミュレーションを複数回実行し、実行時間の分布Ｄｉを得る。
【００８０】
ステップＳ１８０４では、シミュレーション結果解析部６３において、ステップＳ５０１で得られた実行時間分布ＡとステップＳ１８０３で得られた実行時間分布Ｄｉの分布間距離を算出する。
【００８１】
ステップＳ１８０５では、シミュレーション結果解析部６３で算出された分布間距離の一覧を表示する。
【００８２】
ステップＳ１８０６では、ユーザが統計モデル８に置き換えるクラスタを選択し、選択されたクラスタを統計モデル８に置き換えたモデルの検査プログラム９を出力し、処理を終了する。  
図１９は、実施例３におけるシミュレーション結果出力部６４から出力される表示画面中のシミュレーション結果表示部１１３の一例を示す図であり、複数クラスタを置き換えた場合の結果が追加されている。また、各クラスタを統計モデル８に置き換えることで削減される状態数も併せて表示した例となっているが、必ずしも表示する必要はない。
【００８３】
本実施例３によれば、１つのクラスタの置き換えと比較してより多くの状態数を削減することができる。
上記実施例１、実施例２、実施例３では、モデル検査装置とは独立する装置としての構成を示したが、モデル検査装置の一機能として実現する構成（本実施例がコンピュータプログラムとして実現される場合の構成）とすることも可能である。
【００８４】
図２０は、上記本発明の実施形態の装置を実現できるコンピュータのハードウェア構成の一例を示す図である。
【００８５】
コンピュータのハードウェア２００は、ＣＰＵ２０１、通信インタフェース２０２、入出力インタフェース２０３、記録部２０４（ＲＯＭ、ＲＡＭ、ハードディスクドライブなど）、記録媒体読取装置２０５などを備えている。また、上記の各構成部は、バス２０６によってそれぞれ接続されている。
【００８６】
ＣＰＵ２０１は、記録部２０４に格納されている上記説明した検査モデルクラスタリング部、モデル置換部、シミュレーション実行部、シミュレーション結果解析部、シミュレーション結果出力部などで行う処理を実行する。
【００８７】
通信インタフェース２０２は、必要に応じて、他のコンピュータとの間のＬＡＮ接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
【００８８】
入出力インタフェース２０３には、入出力装置２０３ａ（図１の入出力装置４、マウス、キーボード、ディスプレイなど）が接続され、ユーザが入力した情報を受信し、バス２０６を介してＣＰＵ２０１に送信する。また、ＣＰＵ２０１からの命令に従って、ディスプレイの画面上に操作情報などを表示する。
【００８９】
記録部２０４には、ＣＰＵ２０１が実行するプログラムやデータが記録されている。また、ワークエリアなどとして使用される。
【００９０】
記録媒体読取装置２０５は、ＣＰＵ２０１の制御にしたがった記録媒体２０５ａに対するデータの読み書きを制御する。そして、記録媒体２０５ａ、記録媒体読取装置２０５の制御で書き込まれたデータを記憶したり、記録媒体２０５ａに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体２０５ａは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【００９１】
このようなハードウェア構成を有するコンピュータを１台以上用いることによって、上記説明した各処理機能（実施例で説明した処理）が実現される。その場合、システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体２０５ａに記録しておくことができる。
【００９２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体として販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにプログラムを転送することもできる。
【００９３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータはサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９４】
また、本発明は、上記した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【産業上の利用可能性】
【００９６】
モデル検査において、検査対象となるモデルの一部を統計モデルに置き換えることにより抽象化し、検査中の状態数増加を抑え、検査不可能となることを防ぐ方法、プログラムおよび装置を提供することができる。
【符号の説明】
【００９７】
１  装置
２  制御部
３  記録部
４  入出力装置
５  検査モデル抽象化部
６  妥当性判定部
７  検査モデル
８  統計モデル
９  検査プログラム
５１  検査モデルクラスタリング部
５２  モデル置換部
５３  条件入力部
６１  検査式入力部
６２  シミュレーション実行部
６３  シミュレーション結果解析部
６４  シミュレーション結果出力部
６５  置換部分選択部
１１１  入力モデル表示部
１１２  クラスタ表示部
１１３  シミュレーション結果表示部
２００  ハードウェア
２０１  ＣＰＵ
２０２  通信インタフェース
２０３  入出力インタフェース
２０３ａ  入出力装置
２０４  記録部
２０５  記録媒体読取装置
２０５ａ  記録媒体
２０６  バス
【図１】
2013089057.tif 000003
【図２】
2013089057.tif 000004
【図３】
2013089057.tif 000005
【図４】
2013089057.tif 000006
【図５】
2013089057.tif 000007
【図６】
2013089057.tif 000008
【図７】
2013089057.tif 000009
【図８】
2013089057.tif 000010
【図９】
2013089057.tif 000011
【図１０】
2013089057.tif 000012
【図１１】
2013089057.tif 000013
【図１２】
2013089057.tif 000014
【図１３】
2013089057.tif 000015
【図１４】
2013089057.tif 000016
【図１５】
2013089057.tif 000017
【図１６】
2013089057.tif 000018
【図１７】
2013089057.tif 000019
【図１８】
2013089057.tif 000020
【図１９】
2013089057.tif 000021
【図２０】
2013089057.tif 000022