(57)【要約】      （修正有）【課題】モデルベース開発において、効率良くモデルを検査できる検査装置を提供する。【解決手段】モデルベース開発におけるモデルＭＬを検査する検査装置は、入力されるテストパターンＴＰが示す値を用いて第１シミュレーションを行う。第１シミュレーションが行われると生成される結果ＲＥＳを前回値ＶＡとして用いる第２シミュレーションを行うモデルを構築し、第２シミュレーションで用いられる前回値を変更する。前記変更では、変更に用いる値をモデルに含まれる分岐ロジックを解析して算出する又は変更に用いる値をあらかじめ設定される値とする。【選択図】図１
2017142554.tif 000002
【特許請求の範囲】
【請求項１】
モデルベース開発におけるモデルを検査する検査装置であって、
入力されるテストパターンが示す値を用いて第１シミュレーションを行い、かつ、前記第１シミュレーションが行われると生成される結果を前回値として用いる第２シミュレーションを行う前記モデルを構築するモデル構築部と、
前記第２シミュレーションで用いられる前記前回値を変更する変更部とを含み、
前記変更部は、前記変更に用いる値を前記モデルに含まれる分岐ロジックを解析して算出する又は前記変更に用いる値をあらかじめ設定される値とする検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査装置に関する。
【背景技術】
【０００２】
従来、大規模なソフトウェア部品をテストするのに、テストに必要なパラメータ値等を示すデータ等で構成されるテストパターンが用いられる。このテストパターンを生成するため、必要なテストパターンを絞り込む方法が、知られている。具体的には、まず、テスト情報管理サーバが、ソフトウェア部品を使用する使用環境において、設定する予定のそれぞれのパラメータ値をクライアントコンピュータから受け付ける。次に、テスト情報管理サーバは、受け付けたパラメータ値のうち、関連性のあるパラメータ値を組み合わせてテストパターンを生成する。そして、テスト情報管理サーバは、生成したテストパターンをクライアントコンピュータに送信する。このようにして、大規模なソフトウェア部品をテストするのに用いられるテストパターンをテスト情報管理サーバが生成する方法が知られている（例えば、特許文献１）。このような方法が用いられると、関連性のあるパラメータ値の組み合わせについてのみテストパターンが生成されるため、ソフトウェア部品のテストにおいて、テスト情報管理サーバは、必要なテストパターンを絞り込むことができる。そのため、効率の良いテストが実施できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−３２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の従来の技術では、テストパターンを絞り込んでいるにすぎないため、テストパターンが減っても、ソフトウェア開発等の上流工程で、開発するソフトウェアのシミュレーションを行うことができるモデルを構築して、ソフトウェアの開発を行う手法（以下「モデルベース開発」という。）において、１つのテストパターンに基づいて、シミュレーションが行われる回数は、減らせない場合が多い。そのため、上述の従来の技術では、シミュレーションが行われる回数が多いため、シミュレーション時間が長かったり、シミュレーションのループ回数が多くなったりする。
【０００５】
また、シミュレーションが行われる回数が多いと、それぞれのシミュレーションを成立させるためのデータ（以下「時系列テストパターン」という。）も、シミュレーションが行われる回数に合わせて、多くなる。このように、時系列テストパターンが多くなると、コンピュータが時系列テストパターンを生成できる確率が低くなる。そして、コンピュータが生成できない時系列テストパターンは、手作業で生成される。そのため、時系列テストパターンを作成する等の手作業が多くなる場合が多い。ゆえに、上述の従来の技術では、モデルベース開発においてモデルをテストして検査する検査装置が、モデルを効率良く検査できない場合がある。
【０００６】
そこで、上記課題に鑑み、モデルベース開発において、シミュレーションが行われる回数を減らしたり、手作業を少なくしたりして、効率良くモデルを検査できる検査装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、一実施形態において、モデルベース開発におけるモデルを検査する検査装置は、
入力されるテストパターンが示す値を用いて第１シミュレーションを行い、かつ、前記第１シミュレーションが行われると生成される結果を前回値として用いる第２シミュレーションを行う前記モデルを構築するモデル構築部と、
前記第２シミュレーションで用いられる前記前回値を変更する変更部と
を含み、
前記変更部は、前記変更に用いる値を前記モデルに含まれる分岐ロジックを解析して算出する又は前記変更に用いる値をあらかじめ設定される値とする。
【０００８】
本態様によれば、前記変更部によって、前記検査装置は、前記第１シミュレーションが行われると生成される結果を示す前記前回値を変更することができる。そのため、前記検査装置は、第１シミュレーションの結果、すなわち、前記前回値を用いる前記第２シミュレーションで用いられる値を任意の値にして、前記第２シミュレーションを行うことができる。
【０００９】
これまでは、検査において、シミュレーションを複数回行う場合には、それぞれのシミュレーションを成立させるため、時系列テストパターン等のデータを、それぞれ用意する必要がある。したがって、シミュレーションが行われる回数が多いと、時系列テストパターン等のデータが多く必要となる。そして、モデルベース開発では、ツール等の性質上、変更することが難しい値が、分岐条件における判断対象となる場合がある。このような値が検査に用いられると、値が所望の値となるまで、コンピュータは、シミュレーションを繰り返す必要がある。そのため、コンピュータがシミュレーションを繰り返すのに、更に時系列テストパターン等のデータをそれぞれ用意する必要があり、それぞれのデータを用意する作業等が増える。
【００１０】
これに対して、本態様では、変更部によって、前回値を変更することができるため、検査装置は、前記前回値が所望の値となるまで繰り返し行われるシミュレーションを省略することができる。また、シミュレーションの回数が少なくなれば、シミュレーションの回数に応じて、必要となる時系列テストパターン等のデータは、少なくできる。
【００１１】
そして、モデルの検査では、分岐条件を満たす条件下である場合と、そうでない場合とで、モデルが、仕様通りに分岐条件に基づいて実行する処理を切り替えるか否か等をチェックする限界値分析等が行われる場合が多い。このような限界値分析等において、前記前回値が、前記第１シミュレーションが行われると生成される値から境界値等に変更されると、検査において必要性が少ないシミュレーションが省略できる。また、前記検査装置は、前記前回値を前記第１シミュレーションが行われると生成される値から境界値等にするための時系列テストパターンデータ等を生成する必要を少なくできる。そのため、ユーザによる手作業でテストパターン等を生成させる作業を少なくすることができる。したがって、検査装置は、モデルの検査において、シミュレーションが行われる回数を少なくしたり、ユーザによる手作業を少なくすることができるため、モデルベース開発において、効率良くモデルを検査することができる。
【発明の効果】
【００１２】
本実施の形態によれば、モデルベース開発において、効率良くモデルを検査できる検査装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る検査装置によるモデルの検査例を示す全体図である。
【図２】本発明の一実施形態に係る検査装置によって検査されるモデルの一例を示すブロック図である。
【図３】本発明の一実施形態に係る検査装置によって検査されるモデルの別の一例を示すブロック図である。
【図４】本発明の一実施形態に係る検査装置によるモデルの第２検査例を示す全体図である。
【図５】本発明の一実施形態に係る検査装置によるモデルの第３検査例を示す全体図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して発明を実施するための形態について説明する。
【００１５】
図１は、本発明の一実施形態に係る検査装置によるモデルの検査例を示す全体図である。図示する例は、検査装置がテストパターンＴＰに基づいてモデルＭＬを検査するための構成例を示す。具体的には、検査は、モデルをシミュレーションすることで実現される。すなわち、検査装置は、いわゆるモデルベース開発におけるモデルを検査対象とする。
【００１６】
なお、モデルベース開発は、図示するように、開発するソフトウェアの仕様等を示すモデルＭＬが構築されると、検査装置は、モデルＭＬをシミュレーションすることができる。このように、シミュレーションが行われると、検査装置は、モデルＭＬが示す仕様等に基づいて開発されるソフトウェアが実行された場合と同じ程度の出力結果を出力することができる。なお、モデルベース開発は、例えば、ＭＡＴＬＡＢ（登録商標）／Ｓｉｍｕｌｉｎｋ（登録商標）等のツールを用いて実現される。以下、ＭＡＴＬＡＢ（登録商標）／Ｓｉｍｕｌｉｎｋ（登録商標）を用いて構築されるモデルを例にして説明する。この例では、モデルは、ソフトウェアにおいて行われる処理の種類等を示す複数のブロックをつないで構築される。
【００１７】
検査では、まず、検査装置に、テストパターンＴＰのデータが入力される。このテストパターンＴＰは、モデルＭＬをシミュレーションするためのパラメータ等を示す。具体的には、テストパターンＴＰは、関数における引数又はグローバル変数に代入される値等である。
【００１８】
また、検査対象となるモデルＭＬは、制御ロジックＣＴＬを有する。なお、制御ロジックＣＴＬが行う処理の種類等は、ユーザによって設定される。この制御ロジックＣＬは、入力されるテストパターンＴＰ等によって設定される条件でシミュレーションが実行される。このように、シミュレーションが実行されると、検査装置は、出力結果ＲＥＳを出力することができる。
【００１９】
なお、出力結果ＲＥＳに基づいて、モデルＭＬにバグ等がなく、仕様を満たすようにモデルが構築されていると判断される場合には、検査装置は、モデルＭＬをコンパイルして、プログラムソースコード等を生成してもよい。例えば、生成されるプログラムソースコードは、Ｃ言語等の高水準言語等で記載されたソースコードである。
【００２０】
また、モデルＭＬのシミュレーションが実行されると、シミュレーション結果に基づいて生成される状態変数等の値（以下「前回値ＶＡ」という。）があるとする。すなわち、前回値ＶＡは、前回のシミュレーションによる演算結果等を示す値である。次に、モデルＭＬは、前回値ＶＡに基づいて処理を行うとする。具体的には、モデルＭＬは、例えば、前回値ＶＡの値をあらかじめ設定される閾値等と比較して、所定の条件を満たしているか否か判断する分岐処理を行う。つまり、前回値ＶＡは、シミュレーションの結果によって変化し、モデルＭＬは、前回値ＶＡの値によって実行する演算処理を切り替える。なお、前回値ＶＡは、例えば、カウンタ値又はタイマ値等である。
【００２１】
以下、テストパターンが示す値を用いて検査装置によって行われるシミュレーションを「第１シミュレーション」という。一方で、前回値ＶＡを用いて検査装置によって行われるシミュレーション、すなわち、第１シミュレーションが行われた後に行われるシミュレーションを「第２シミュレーション」という。
【００２２】
このように、前回値ＶＡの値によってモデルＭＬが行う処理が異なる場合には、検査では、前回値ＶＡが変化した際に、処理が仕様通りに切り替わるか否かが検査される。すなわち、検査では、前回値ＶＡに係るいわゆる境界値分析（「限界値分析」ともいう。）が行われる。したがって、検査では、境界値分析等を行うため、検査装置は、以下のようにして前回値ＶＡを変更する。
【００２３】
検査装置は、変更部の例である変更ロジックＣＨＬを有する。図示するように、変更ロジックＣＨＬは、制御ロジックＣＴＬが生成する前回値ＶＡを所定の値になるように変更する。このように、変更ロジックＣＨＬがあると、検査装置は、外部から入力される値、すなわち、任意の値に前回値ＶＡを変更することができる。
【００２４】
また、検査装置は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータである。すなわち、検査装置は、例えば、以下のようなハードウェア構成である。具体的には、検査装置は、モデルＭＬ及びテストパターンＴＰ等を入力するためのインタフェース又はキーボード等の入力装置を有する。また、検査装置は、モデルを検査する処理を実現するための演算及び制御を行う演算装置並びに制御装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等を有する。さらに、検査装置は、ネットワークを介して、外部装置と接続するためのネットワークＩ／Ｆ（ｉｎｔｅｒｆａｃｅ）等を有する。さらにまた、検査装置は、検査に用いられるデータ等を記憶する主記憶装置及び補助記憶装置等の記憶装置を有する。他にも、検査装置は、シミュレーション結果等を表示するディスプレイ等の出力装置を有する。
【００２５】
例えば、検査装置が、以下のようなモデルＭＬを検査する例で説明する。
【００２６】
図２は、本発明の一実施形態に係る検査装置によって検査されるモデルの一例を示すブロック図である。図示する例では、モデルＭＬは、定数を加える「Ａｄｄ」及び出力を切り替える「Ｓｗｉｔｃｈ」等の処理を行う制御ロジックＣＴＬを有するモデルである。検査装置には、モデルＭＬを構築するため、モデルＭＬにおいてどのような種類の処理が行われるか等を設定する操作がユーザによって入力される。
【００２７】
図示するように、まず、制御ロジックＣＴＬによって、第１シミュレーションが実行されると、前回値ＶＡが、生成される。この例では、前回値ＶＡの値を「Ｂ」とする。例えば、図示するような加算変更ロジックＣＨＬ１をモデルＭＬが有すると、検査装置は、前回値ＶＡ、すなわち、「Ｂ」にあらかじめ設定される「ＯＦＦＳＥＴ」を加算して前回値ＶＡを「Ａ」に変更することができる。
【００２８】
このように、検査装置は、加算変更ロジックＣＨＬ１によって、第１シミュレーションの結果、生成される前回値ＶＡの「Ｂ」を「Ａ」に変更することができるため、検査装置は、第２シミュレーションを「Ａ」の値で実行することができる。
【００２９】
また、図示するような構成では、「ＯＦＦＳＥＴ」を「０」と設定すると、モデルＭＬは、「Ａ＝Ｂ＋０」とする。したがって、このように設定すると、モデルＭＬにおいて、「ＯＦＦＳＥＴ」を加算する構成である、「Ａｄｄ１」及び「Ｃｏｎｓｔａｎｔ２」等は、意味をなさない構成であると判断されるようにできる。このようにすると、モデルＭＬに基づいて、プログラムソースコードを生成するコンパイルでは、コンパイラは、最適化機能によって、「ＯＦＦＳＥＴ」を加算する構成等を削除する場合が多い。そのため、コンパイルされて生成されるプログラムソースコードによる処理では、前回値を変更する処理による処理負荷が小さい。このように、処理負荷の小さいプログラムソースコードを生成しやすい構成で、検査装置は、検査を行うことができる。
【００３０】
なお、前回値ＶＡは、加算以外の方法で変更されてもよい。例えば、前回値ＶＡは、以下のようにして乗算で変更されてもよい。
【００３１】
図３は、本発明の一実施形態に係る検査装置によって検査されるモデルの別の一例を示すブロック図である。図２と比較すると、図３は、加算変更ロジックＣＨＬ１が乗算変更ロジックＣＨＬ２となる点が異なる。すなわち、図２に示す例では、検査装置は、加算変更ロジックＣＨＬ１によって、前回値ＶＡを「Ａ＝Ｂ＋ＯＦＦＳＥＴ」と加算して変更する。一方で、図３に示す例では、検査装置は、乗算変更ロジックＣＨＬ２によって乗算を行う。具体的には、検査装置は、乗算変更ロジックＣＨＬ２によって、前回値ＶＡを「Ａ＝Ｂ×ＧＡＩＮ」と乗算して変更する。なお、図示するモデルでは、「Ｐｒｏｄｕｃｔ」によって乗算が行われる。このように、検査装置は、乗算によって前回値ＶＡを変更してもよい。
【００３２】
また、検査装置は、減算、除算、ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）等による置換又はこれらの組み合わせ等で、前回値ＶＡを変更してもよい。
【００３３】
なお、検査装置は、あらかじめ入力される定数、すなわち固定値を前回値ＶＡに加算又は乗算等して前回値ＶＡを変更するに限られない。例えば、検査装置は、前回値ＶＡの影響を受ける分岐処理等を解析して以下のように変更に用いる値を決定してもよい。
【００３４】
図４は、本発明の一実施形態に係る検査装置によるモデルの第２検査例を示す全体図である。図示する全体図は、図１と比較すると、変更ロジックＣＨＬが用いる値が、制御ロジックＣＴＬが有する分岐ロジックＢＩＬを解析して決定される構成である点が異なる。なお、分岐ロジックＢＩＬは、図２及び図３に示す例では、「Ｒｅｌａｔｉｏｎａｌ  Ｏｐｅｒａｔｏｒ」等の関係演算子によって実現される処理である。すなわち、分岐ロジックＢＩＬは、閾値等と比較して、分岐ロジックＢＩＬに入力される値が、所定の値以上、所定の値以下、所定の値より大きい、所定の値より小さい又は所定の値と等しいか否かを判断する。
【００３５】
例えば、制御ロジックＣＴＬが、ＰＩＤ制御等において、「Ｉ項（積分項）が１０００である場合」には、所定の処理（以下「第１処理」という。）を行う仕様であるとする。一方で、それ以外、すなわち、「Ｉ項が１０００以外の値である場合」には、制御ロジックＣＴＬが、第１処理とは異なる処理（以下「第２処理」という。）を行う仕様であるとする。
【００３６】
このような仕様の場合には、検査では、前回値ＶＡを例えば、「０」、「９９９」、「１０００」及び「１００１」と変化させる境界値分析が行われるのが望ましい。つまり、前回値ＶＡが「０」、「９９９」及び「１００１」であると、制御ロジックＣＴＬが第２処理を行うか否かが、出力結果ＲＥＳ等に基づいて検査される。さらに、前回値ＶＡが「１０００」であると、制御ロジックＣＴＬが第１処理を行うか否かが、出力結果ＲＥＳ等に基づいて検査される。この例における「１０００」のように、分岐ロジックＢＩＬが行う処理を切り替える値が設定される場合がある。このような境界値分析等が行われる場合には、変更ロジックＣＨＬは、前回値ＶＡが「１０００」又は「１０００」の前後の値となるように変更する。
【００３７】
このように、検査装置は、分岐ロジックＢＩＬを解析して、「１０００」等のように境界値を抽出する。そして、検査装置は、境界値又は境界値の前後の値となるように、前回値ＶＡを変更する。このようにすると、検査装置は、演算ロジックＣＡＬ及び分岐ロジックＢＩＬに係る境界値分析を行うことができる。
【００３８】
モデルベース開発では、前回値等を利用してシミュレーションを行うモデルが構築される場合がある。しかし、モデルベース開発では、例えば、図２に示す「Ｕｎｉｔ  Ｄｅｌａｙ」のようにブロック化されていると、前回値を変えるのが難しい場合がある。このような場合には、例えば、「ある条件が１００回続いた場合」等の分岐条件を含むモデルでは、境界値分析としては、初期値である「０」の前回値の次に、「１００」及び「１００」の前後の値として、「９９」、「１００」及び「１０１」等の前回値を用いて、検査装置は、検査を行う。そのため、「ある条件を１００回」成立させるようなテストパターン、すなわち、時系列テストパターンデータを生成する必要等がある。このようにすると、限界値分析としては、「０」乃至「１０１」のテストのうち、「１」乃至「９８」のテストは、無駄となる場合が多く、テストパターンを生成する処理及び検査における処理負荷が大きくなる場合がある。そこで、無駄が少ないテストパターンをユーザが手作業で作成する場合等がある。このように、テストパターンを作成する手作業の工程等があると、テストパターンを作成するのに時間がかかるため、モデルを検査する効率が悪化する場合がある。
【００３９】
一方で、本発明に係る実施形態のように、検査装置は、変更部の例である変更ロジック等によって、前回値を変更する。このようにすると、限界値分析において、無駄となる値を省略することができる。例えば、上記の例では、検査装置は、「０」が行われた次に、前回値を「９９」とする変更を行うことができる。そのため、検査装置は、前回値として「１」乃至「９８」を用いるシミュレーションを省略できるため、シミュレーションが行われる回数等が少なくできる。このようにして、検査装置は、モデルベース開発において、効率良くモデルを検査できる。
【００４０】
他にも、比較例として、図２における「Ｕｎｉｔ  Ｄｅｌａｙ」ブロックの初期値等を変更する方法が考えられる。しかし、この方法は、検査対象を編集してしまうため、検査方法としては、望ましくない場合が多い。一方で、本発明に係る実施形態では、検査装置は、検査対象となるモデルを変えることなく検査することができる。
【００４１】
また、以下のように、モデルが分岐処理を行わない場合がある。
【００４２】
図５は、本発明の一実施形態に係る検査装置によるモデルの第３検査例を示す全体図である。図５は、図４と比較すると、分岐ロジックＢＩＬがない点が異なる。図示するような構成であっても、前回値ＶＡがある特定の値であるという前提条件下で、演算ロジックＣＡＬが検査される場合がある。このような場合において、検査装置が前提条件となるような時系列テストパターンデータを生成するのが難しい場合がある。
【００４３】
時系列テストパターンデータは、例えば、シミュレーションごとに用意される。つまり、１回のシミュレーションに、１つの時系列テストパターンデータが必要となる場合がある。
【００４４】
なお、時系列テストパターンデータは、シミュレーションを行うのに、必要な環境等を設定するデータ等である。そのため、シミュレーション回数、すなわち、ループ回数が多いと、時系列テストパターンデータが多く必要となる。検査装置等のコンピュータは、時系列テストパターンデータが多くなると、なかには、生成できない時系列テストパターンデータがある。又は、１つの時系列テストパターンデータが生成されるのに時間がかかる場合には、時系列テストパターンデータが多くなると、全体の処理時間が膨大となり、すべての時系列テストパターンデータをコンピュータに生成させるのが事実上、不可能になる場合もある。このように、シミュレーションを行うのに必要となるデータが多くなると、シミュレーションを行うためのデータをコンピュータに生成させるのが難しくなる場合が多い。そして、コンピュータが生成できないデータは、手作業によって生成されるため、シミュレーションが行われる回数が多いと、手作業が多くなり、検査の効率が悪くなる場合が多い。
【００４５】
一方で、本発明に係る実施形態のように、検査装置は、変更部の例である変更ロジック等によって、前回値を変更する。このようにすると、検査装置は、時系列テストパターンデータを生成しない又は少ない時系列テストパターンデータで、前提条件の環境を作ることができる。そのため、検査装置は、１周期分のテストパターンで、モデルを検査することができる。
【００４６】
例えば、「Ｉ項が１０００である」との前提条件下で検査が行われるとする。この例では、検査装置は、「前回値＝前回値＋１０００」とすると、１周期で、前提条件を満たす環境を作ることができる。
【００４７】
なお、この「１０００」の値、すなわち、変更部が変更に用いる値は、例えば、図４に示すように、モデルＭＬに分岐ロジックＢＩＬが含まれる場合には、分岐ロジックを検査装置が解析して算出される値である。また、変更部が変更に用いる値は、あらかじめ検査装置に設定される値等でもよい。
【００４８】
このようにして、検査装置は、モデルベース開発において、効率良くモデルを検査できる。
【００４９】
以上、本発明を実施するための形態について詳述したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【００５０】
ＶＡ  前回値
ＭＬ  モデル
ＴＰ  テストパターン
ＲＥＳ  出力結果
ＣＨＬ  変更ロジック（変更部の例）
ＣＴＬ  制御ロジック（モデル構築部の例）
【図１】
2017142554.tif 000003
【図２】
2017142554.tif 000004
【図３】
2017142554.tif 000005
【図４】
2017142554.tif 000006
【図５】
2017142554.tif 000007