(57)【要約】【課題】モデルベース開発におけるモデルの検証を容易に行う。【解決手段】ブロックと結線とにより対象処理を記述したモデルを取得する取得部（Ｓ２００）と、２回以上にわたりモデルに基づき対象処理を連続的に実行するシミュレーション処理を、異なる条件の下で複数回にわたり行う実行部（Ｓ２１０）と、各条件下でのシミュレーション処理の結果に基づきモデルからフィードバックループを抽出する抽出部（Ｓ２２０〜Ｓ２３５）と、抽出されたフィードバックループを出力する出力部（Ｓ２４０）と、を備え、異なる条件の下でのシミュレーション処理は、対象処理の入力値と、対象処理において用いられるデータの精度と、のうちの少なくとも一方が異なっていること、を特徴とする設計支援装置。【選択図】図３
2017027341.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた処理手順を示すブロックと、前記ブロック間のデータの入出力を示す結線とにより対象処理を記述したモデルを取得する取得部（Ｓ２００）と、
Ｎ回（Ｎは２以上の整数）にわたり前記モデルに基づき前記対象処理を連続的に実行するシミュレーション処理を、異なる条件の下で複数回にわたり行う実行部（Ｓ２１０）と、
前記ブロックである始点ブロックと、前記始点ブロックの出力値に基づき処理を行う前記ブロックであって、当該ブロックでの処理に基づく出力値が前記始点ブロックに入力される１又は複数の関連ブロックとから構成されるフィードバックループを、それぞれの前記条件の下での前記シミュレーション処理の結果に基づき前記モデルから抽出する抽出部（Ｓ２２０〜Ｓ２３５）と、
前記抽出部により抽出された前記フィードバックループを出力する出力部（Ｓ２４０）と、を備え、
異なる前記条件の下で行われるそれぞれの前記シミュレーション処理は、前記対象処理の入力値と、前記対象処理において用いられる全部又は一部のデータの精度と、のうちの少なくとも一方が異なっていること、
を特徴とする設計支援装置（１）。
【請求項２】
請求項１に記載の設計支援装置において、
いずれかの前記条件の下での前記シミュレーション処理においてｎ回目（ｎは１以上Ｎ以下の整数）に実行された前記対象処理における前記ブロックの出力値と、他の前記条件の下での前記シミュレーション処理においてｎ回目に実行された前記対象処理における該ブロックの出力値との差分を、誤差とし、
前記実行部は、前記シミュレーション処理において、前記入力値を予め定められた値に固定し、且つ、前記モデルを構成するそれぞれの前記ブロックの状態を維持しながら、Ｎ回にわたり前記対象処理を連続的に実行し、
前記抽出部は、それぞれの前記ブロックの出力値について、各回に実行された前記対象処理における前記誤差を算出すると共に、それぞれの前記ブロックの出力値についての各回の前記誤差の相違に基づき、前記フィードバックループを抽出すること、
を特徴とする設計支援装置。
【請求項３】
請求項２に記載の設計支援装置において、
前記実行部は、異なる前記条件の下で行われるそれぞれの前記シミュレーション処理として、前記対象処理において用いられるデータの全部又は一部の精度が異なっている複数の前記シミュレーション処理を実行すること、
を特徴とする設計支援装置。
【請求項４】
請求項１から請求項３のうちのいずれか１項に記載の設計支援装置において、
前記出力部は、前記抽出部により抽出された前記フィードバックループと他の部分とを判別可能な状態で前記モデルを表示することで、該フィードバックループを出力すること、
を特徴とする設計支援装置。
【請求項５】
予め定められた処理手順を示すブロックと、前記ブロック間のデータの入出力を示す結線とにより対象処理を記述したモデルを取得する取得部（Ｓ２００）と、
Ｎ回（Ｎは２以上の整数）にわたり前記モデルに基づき前記対象処理を連続的に実行するシミュレーション処理を、異なる条件の下で複数回にわたり行う実行部（Ｓ２１０）と、
前記ブロックである始点ブロックと、前記始点ブロックの出力値に基づき処理を行う前記ブロックであって、当該ブロックでの処理に基づく出力値が前記始点ブロックに入力される１又は複数の関連ブロックとから構成されるフィードバックループを、それぞれの前記条件の下での前記シミュレーション処理の結果に基づき前記モデルから抽出する抽出部（Ｓ２２０〜Ｓ２３５）と、
前記抽出部により抽出された前記フィードバックループを出力する出力部（Ｓ２４０）としてコンピュータを動作させる設計支援ツールであって、
異なる前記条件の下で行われるそれぞれの前記シミュレーション処理は、前記対象処理の入力値と、前記対象処理において用いられる全部又は一部のデータの精度と、のうちの少なくとも一方が異なっていること、
を特徴とする設計支援ツール。
【請求項６】
請求項１から請求項４のうちのいずれか１項に記載の設計支援装置、或いは、請求項５に記載の設計支援ツールを用いて前記フィードバックループが抽出された前記モデルに基づき作成されたプログラム。
【請求項７】
請求項６に記載されたプログラムにより動作する電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置等に関する。
【背景技術】
【０００２】
基本ソフトウェアに設けられた抽象化層（ハードウェアに依存した仕様を吸収するための部位）の処理シーケンスに基づきテストケースを自動生成し、該テストケースに基づき抽象化層をテストするテストツールが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２１８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、モデルベース開発においては、形式的手法を用いてテストパターンを自動生成してモデルの検証を行うことが知られているが、このような場合、モデルの複雑化に伴い自動生成や検証作業の負荷が大幅に増加する。これに対し、モデルにおける複雑度の高い部分を抽象化する等して負荷を低減することが考えられるが、該部分は開発者自身が見つけ出さなければならない。そして、大規模且つ複雑なモデルからこのような部分を漏れなく見つけ出すのは、極めて困難である。
【０００５】
本発明は、モデルベース開発におけるモデルの検証を容易に行うこと目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面は、予め定められた処理手順を示すブロックと、ブロック間のデータの入出力を示す結線とにより対象処理を記述したモデルを取得する取得部と、Ｎ回（Ｎは２以上の整数）にわたりモデルに基づき対象処理を連続的に実行するシミュレーション処理を、異なる条件の下で複数回にわたり行う実行部と、ブロックである始点ブロックと、始点ブロックの出力値に基づき処理を行うブロックであって、当該ブロックでの処理に基づく出力値が始点ブロックに入力される１又は複数の関連ブロックとから構成されるフィードバックループを、それぞれの条件の下でのシミュレーション処理の結果に基づきモデルから抽出する抽出部と、抽出部により抽出されたフィードバックループを出力する出力部と、を備え、異なる条件の下で行われるそれぞれのシミュレーション処理は、対象処理の入力値と、対象処理において用いられる全部又は一部のデータの精度と、のうちの少なくとも一方が異なっていること、を特徴とする設計支援装置に関する。
【０００７】
フィードバックループは複雑度が高いため、効率的にモデルの検証を行うためには、フィードバックループに対し何等かの対策を講じる必要がある。
また、Ｎ回にわたりモデルが示す対象処理を連続的に実行するシミュレーション処理を、用いられるデータの精度や入力値が異なる複数の条件下で行った場合、フィードバックループを構成するブロックの出力値は、他のブロックの出力値とは異なる傾向で変化する。このため、各条件下でのシミュレーション結果から特定される各ブロックの出力値の変化に基づき、フィードバックループを抽出可能となる。
【０００８】
そして、上記構成によれば、ユーザは、モデルから抽出されたフィードバックループを把握可能となるため、目視によりフィードバックループを見つけ出す必要が無くなる。このため、モデルベース開発におけるモデルの検証を容易に行うことが可能となる。
【０００９】
また、本発明の一側面は、いずれかの条件の下でのシミュレーション処理においてｎ回目（ｎは１以上Ｎ以下の整数）に実行された対象処理におけるブロックの出力値と、他の条件の下でのシミュレーション処理においてｎ回目に実行された対象処理における該ブロックの出力値との差分を、誤差とし、実行部は、シミュレーション処理において、入力値を予め定められた値に固定し、且つ、モデルを構成するそれぞれのブロックの状態を維持しながら、Ｎ回にわたり対象処理を連続的に実行し、抽出部は、それぞれのブロックの出力値について、各回に実行された対象処理における誤差を算出すると共に、それぞれのブロックの出力値についての各回の誤差の相違に基づき、フィードバックループを抽出する。
【００１０】
このような構成によれば、各条件下で行われるシミュレーション処理では、入力値を固定し、且つ、ブロックの状態を維持しながらＮ回にわたり対象処理が実行される。これにより、フィードバックループを構成するブロックの出力値の上記誤差は、対象処理の実行回数の増加に伴い、他のブロックの出力値の上記誤差とは異なる傾向で変化する。
【００１１】
このため、各条件下でのシミュレーション処理の結果から特定される各ブロックの出力値についての各回の上記誤差の相違に基づきフィードバックループを抽出することで、より精度良くフィードバックループを抽出可能となる。
【００１２】
また、本発明の一側面は、上述した取得部と、実行部と、抽出部と、出力部としてコンピュータを動作させる設計支援ツールに関するものである。
このような設計支援ツールによれば、上述した設計支援装置と同様、モデルベース開発におけるモデルの検証を容易に行うことが可能となる。
【００１３】
また、本発明の一側面は、上述した設計支援装置、或いは、設計支援ツールを用いてフィードバックループが抽出されたモデルに基づき作成されたプログラムに関するものである。
【００１４】
また、本発明の一側面は、上述したプログラムにより動作する電子装置に関するものである。
このようなプログラムや電子装置によれば、モデルベース開発におけるモデルの検証を容易に行うことが可能となるため、開発コストを抑えることや、品質を向上させることができる。
【００１５】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１６】
【図１】本実施形態のＰＣの構成を示すブロック図と、モデルのフィードバックループの説明図である。
【図２】第１，第２条件のシミュレーションを行った際に同一結線に生じる誤差の変化を示す表である。
【図３】本実施形態の抽出処理のフローチャートである。
【図４】抽出処理の対象となるモデルの一例である。
【図５】フィードバックループの候補となった結線の強調表示の一例を示す説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明が適用された実施形態について、図面を用いて説明する。
［構成について］
本実施形態のＰＣ１は、ディスプレイ１０，ＨＤＤ２０，ＣＰＵ３０，ＲＯＭ４０，ＲＡＭ５０，入力装置６０等を備える（図１（ａ））。
【００１８】
ディスプレイ１０は、ＣＰＵ３０から受けた映像信号を、ユーザに対して映像として表示する。
入力装置６０は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をＣＰＵ３０に出力する。
【００１９】
ＲＡＭ５０は読み出し、書き込み可能な揮発性メモリであり、ＲＯＭ４０は読み出し専用の不揮発性メモリであり、ＨＤＤ２０は読み出し、書き込み可能な不揮発性メモリである。ＲＯＭ４０，ＨＤＤ２０には、ＣＰＵ３０が読み出して実行するプログラム等が予め記憶されている。
【００２０】
ＲＡＭ５０は、ＣＰＵ３０がＲＯＭ４０，ＨＤＤ２０に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域や、作業用のデータを一時的に保存するための記憶領域等として用いられる。
【００２１】
ＣＰＵ３０は、ＯＳをＨＤＤ２０から読み出して実行し、ＨＤＤ２０に記録されている各種プログラムをＯＳ上のプロセスとして実行する。また、このプロセスにおいて、ＣＰＵ３０は必要に応じて入力装置６０から信号の入力を受け付け、ディスプレイ１０に映像信号を出力し、ＲＡＭ５０，ＨＤＤ２０に対してデータの読み出し／書き込みの制御を行う。
【００２２】
また、ＰＣ１には設計支援ツールがインストールされている。設計支援ツールは、ＨＤＤ２０に保存され、ＯＳ上のプロセスとして実行されるアプリケーションの１つである。ＰＣ１は、設計支援ツールを動作させることで、モデルの作成や検証等を行う設計支援装置として稼動する。なお、この設計支援装置は、車載装置等といった電子装置を制御する組み込みシステム向けのプログラム開発に用いることが考えられるが、これに限定されることは無く、ＰＣ等の電子装置で動作するアプリケーション等を含むあらゆる用途のプログラム開発に用いることができる。
【００２３】
設計支援装置は、入力装置６０に対する操作に従いモデルを作成すると共に、モデルからソースコードを生成する。ここで、モデルとは、ソースコードよりも記述が簡易になり、かつ人による可読性を高くする目的で定められたモデル言語仕様に基づいて作成されるプログラムの一表現形態である。
【００２４】
なお、モデルの一例として、Ｓｉｍｕｌｉｎｋ（登録商標）によって作成されるＳｉｍｕｌｉｎｋモデルを挙げることができる。Ｓｉｍｕｌｉｎｋ（登録商標）モデルを、Ｍａｔｌａｂ（登録商標）上で動作するＲｅａｌ  Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐ（登録商標）に入力することにより、該モデルに対応するソースコードが生成される。
【００２５】
本実施形態におけるモデルは、特定の処理手順（ＣＰＵにより実行可能な処理の記述）を示すブロックと呼ばれる機能単位の組合せとして記述され、モデルを構成するブロックの間には、ブロック間のデータの入出力、及び、対応する処理手順の順序を示す結線が配されている。結線は、ブロックに繋がっている（無論、ブロックに繋がること無くブロックの間に配されていても良い）。また、結線は矢印として構成されており、矢印の向きによりデータが出力される向きが示される。つまり、ブロックは、結線を挟んで他のブロックと連なった状態で配され、結線により、当該結線を挟むブロック同士のデータの入出力等が示される。
【００２６】
また、設計支援装置は、モデルを検証する機能を有している。具体的には、形式的手法によりモデルを解析し、テストパターンを自動生成すると共に、該テストパターンを用いてモデルのテストを行う（無論、ＰＣ１にインストールされた他のアプリや、テストを行うためのアプリがインストールされた他のＰＣ等により同様にしてモデルを検証しても良い）。
【００２７】
そして、このような検証を行う場合、モデルの構造が複雑になるとテストパターンが増加し、テストパターンの自動生成の負荷やテスト結果の検証作業の負荷が大幅に増加する。
【００２８】
具体的には、例えば、ある処理での出力を該処理の入力に戻すフィードバック処理が知られているが、モデルによりこのようなフィードバック処理を記述すると、テストパターンの自動生成等の負荷が増加する。
【００２９】
フィードバック処理を記述したモデル（フィードバックループ）は、ブロックである始点ブロックと、始点ブロックの出力値に基づき処理を行うブロックであって、当該ブロックでの処理に基づく出力値が始点ブロックに入力される１又は複数の関連ブロックとから構成される。
【００３０】
始点ブロックは、１又は複数の関連ブロックに対し結線を介して直接的に出力値を出力すると共に、１又は複数の関連ブロックからの出力値が結線を介して直接的に入力される。しかし、直接的に始点ブロックに結線を介して繋がっているブロックのみが関連ブロックに該当するとは限らない。他のブロックと複数の結線を介して始点ブロックに繋がっているブロックであっても、始点ブロックからの出力値の変化に応じてその出力値が変わる場合があり、且つ、その出力値の変化に応じて始点ブロックの出力値が変わる場合があるブロックは、関連ブロックに該当する。
【００３１】
つまり、フィードバックループでは、先行して当該フィードバックループで行われた処理の出力値を参照して新たな処理が行われ、今回の処理での出力値は次回以降の処理にて参照される。このため、フィードバックループのテストの際には、このような出力値の参照の繰り返しを考慮して各ブロックの出力を全て検証する必要があり、当該部分が移行し得る状態数が増える。これにより、テストパターンの自動生成の負荷やテスト結果の検証作業の負荷が大幅に増加する。
【００３２】
これに対し、本実施形態の設計支援装置は、異なる条件の下で複数回にわたりモデルのシミュレーション処理を行い、各条件下でのシミュレーション処理の結果に基づきフィードバックループを抽出する。これにより、例えば、フィードバックループをより抽象化された構成に置き換えたり、フィードバックループのテストを省略したりすることが可能となり、その結果、モデルの検証を行う際の処理負荷や作業負荷を抑え、効果的且つ効率的に検証を行うことができる。
【００３３】
詳しく説明すると、シミュレーション処理では、モデルにより記述された処理（対象処理）が、Ｎ回（Ｎは２以上の整数）にわたり連続的に実行される。これらの対象処理は、当該モデルの入力値（換言すれば、当該対象処理の入力値）を固定した状態で実行される。また、これらの対象処理は、各ブロックの状態を維持しながら実行される（換言すれば、対象処理の実行後、各ブロックで用いられる変数の値を維持した状態で次の回の対象処理が実行される）。
【００３４】
また、設計支援装置は、低い精度のデータが用いられる低精度条件でのシミュレーション処理（低精度シミュレーション処理）と、低精度シミュレーション処理よりも高い精度のデータが用いられる高精度条件でのシミュレーション処理（高精度シミュレーション処理）を実行する。
【００３５】
さらに、一方のシミュレーション処理においてｎ回目（ｎは１以上Ｎ以下の整数）に実行された対象処理における結線を介して出力される出力値と、他方のシミュレーション処理においてｎ回目に実行された対象処理における該結線を介して出力される出力値との差分を、誤差とする。
【００３６】
そして、各結線について、各シミュレーション処理での各実行サイクル（各回の対象処理の実行時）における誤差を算出し、各結線についての各実行サイクルの誤差の相違に基づきフィードバックループを抽出する。
【００３７】
より具体的には、設計支援装置は、フィードバックループを抽出するモデルをコピーし、用いられるデータの精度が異なる２つのモデルを生成する。一例として、一方のモデルにて用いられる全変数のデータ型を整数型にし、他方のモデルにて用いられる全変数のデータ型を単精度浮動小数点形式にしても良い。また、例えば、各モデルで用いられる全変数のデータサイズを異なるものとすることで、データの精度を相違させても良い。そして、一例としてＮ＝３に設定し、整数型の変数が用いられたモデルによる低精度シミュレーション処理と、単精度浮動小数点形式の変数が用いられたモデルに基づく高精度シミュレーション処理とを行う。
【００３８】
この時、各シミュレーション処理の結果に相違が生じ易くなるよう、入力値を調整するのが好適である。具体的には、低精度シミュレーション処理では整数型の変数が用いられ、高精度シミュレーション処理では単精度浮動小数点形式の変数が用いられるのであれば、入力値を小数にすることが考えられる。このような場合、高精度シミュレーション処理の入力値は小数の固定値に、低精度シミュレーション処理の入力値は整数の固定値になり、各シミュレーション処理の結果に相違が出易くなる。
【００３９】
ここで、モデル１００からフィードバックループ１１０を抽出する場合を例に挙げて説明する（図１（ｂ））。モデル１００においては、加算ブロック１０３，遅延ブロック１０６，結線１０５，１０７によりフィードバックループ１１０が構成されており、加算ブロック１０３は始点ブロックに、遅延ブロック１０６は関連ブロックに相当する。
【００４０】
モデル１００のシミュレーション処理における各実行サイクルでは、入力ブロック１０１からの結線１０２により、加算ブロック１０３には変数Ｘが入力される。加算ブロック１０３では、変数Ｘと、遅延ブロック１０６からの出力値とが加算され、加算結果は、結線１０４を介して変数Ｙとして出力ブロック１０８に出力されると共に、結線１０５を介して遅延ブロック１０６に出力される。そして、遅延ブロック１０６は、加算ブロック１０３から入力された値を保持し、次の実行サイクルで、結線１０７を介して保持している出力値を加算ブロック１０３に出力する。
【００４１】
モデル１００では、入力ブロック１０１から加算ブロック１０３に出力される変数Ｘが、モデル１００の入力値になる。モデル１００に基づき、入力値Ｘを５．４，Ｎ＝３として、低精度シミュレーション処理及び高精度シミュレーション処理を行ったとする（無論、低精度シミュレーション処理では変数は全て整数型となるため、入力値Ｘとして５が設定される）。
【００４２】
図２におけるＹは、各シミュレーション処理での結線１０４を介した出力値を示している。なお、Ｙ１〜３は、それぞれ、１〜３回目の実行サイクルでのＹの値を意味する。そして、各シミュレーション処理で得られたＹ１〜Ｙ３の差分の絶対値が誤差となる。
【００４３】
図２が示すように、結線１０４の誤差は、実行サイクルが進行するにつれ（換言すれば、実行期間が長くなるにつれ）拡大する。設計支援装置は、このような傾向で誤差が増加する結線を、フィードバックループを構成する結線と推定する（換言すれば、フィードバックループを構成する結線とみなす）。
【００４４】
なお、上述した低精度，高精度シミュレーション処理では、精度の異なるデータを用いた状態で行われるが、単に入力値を異ならせた状態でシミュレーション処理を実行することで、同様にしてフィードバックループを抽出することもできる。
【００４５】
具体的には、モデル１００からフィードバックループを抽出する場合であれば、モデル１００における全変数のデータ型を単精度浮動小数点形式にし、入力値Ｘが５である条件と、入力値Ｘが５．４である条件の下で、同様にしてシミュレーション処理を行っても良い。このような場合であっても、結線１０４の誤差は同様の傾向で変化するため、これに基づきフィードバックループを抽出できる。
【００４６】
［処理について］
次に、モデルからフィードバックループを抽出し、ユーザに提示する抽出処理について説明する（図３参照）。本処理は、設計支援装置として動作するＰＣ１にて、ユーザからの指示に応じて開始される。
【００４７】
Ｓ２００では、設計支援装置として動作するＰＣ１のＣＰＵ３０は、ユーザからの指示に応じて抽出処理の対象となるモデルを取得し、ＲＡＭ５０に保存する。なお、該モデルは、例えば、設計支援装置により作成されたものであっても良いし、ＨＤＤ２０やＰＣ１に接続されたＵＳＢメモリ等の記憶装置に保存されているものであっても良いし、ネットワークを介して外部から取得したものであっても良い。
【００４８】
なお、図４（ａ）のモデル３００は、抽出処理の対象となるモデルの一例を示している。モデル３００は、Ａ〜Ｐブロック３０１〜３１６と、結線３０１ａ〜３１５ａとを有しており、Ｊ，Ｍ，Ｏブロック３１０，３１３，３１５，結線３１０ａ，３１３ｂ，３１５ａにより構成される部分が、フィードバックループ３２０に相当する。なお、Ｊブロック３１０が始点ブロックに、Ｍ，Ｏブロック３１３，３１５が関連ブロックに相当する。
【００４９】
Ｓ２０５では、ＣＰＵ３０は、取得したモデルのコピーを生成し、元のモデルを低精度シミュレーション処理に用いると共に、コピーしたモデルを高精度シミュレーション処理に用いるようにする。
【００５０】
具体的には、例えば、元のモデルにおける全変数のデータ型を整数型とすると共に、コピーしたモデルにおける全変数のデータ型を単精度浮動小数点形式としても良い。また、例えば、元のモデルにおける全変数のデータ型を単精度浮動小数点形式とすると共に、コピーしたモデルにおける全変数のデータ型を倍精度浮動小数点形式としても良い。
【００５１】
また、各モデルにおける一部のデータについてのみ、精度を異なるものとしても良い。具体的には、例えば、ブロック間のデータの入出力に用いられる変数（換言すれば、結線を介して入出力される変数）のデータ型を異なるものとしても良いし、各ブロックの内部で用いられる変数のデータ型を異なるものとしても良い。
【００５２】
続くＳ２１０では、ＣＰＵ３０は、低精度シミュレーション処理と高精度シミュレーション処理とを実行する。そして、各シミュレーション処理における各実行サイクルで各結線を介して出力される出力値を特定し、Ｓ２１５に移行する。
【００５３】
Ｓ２１５では、ＣＰＵ３０は、各結線の出力値について、各シミュレーション処理における各実行サイクルでの誤差を算出し、Ｓ２２０に移行する。
Ｓ２２０では、ＣＰＵ３０は、モデルを構成する結線のうち、出力値の誤差の傾向のチェックが完了していないいずれかの結線を選択し、Ｓ２２５に移行する。
【００５４】
Ｓ２２５では、ＣＰＵ３０は、選択中の結線についての誤差が、実行サイクルの進行に伴い増加する傾向にあるか否かを判定する。具体的には、例えば、実行サイクルの１回の進行に伴い所定の割合以上誤差が増加する期間が一定以上継続した場合には、誤差が増加傾向であるとみなしても良い。そして、肯定判定が得られた場合には（Ｓ２２５：Ｙｅｓ）、Ｓ２３０に移行し、否定判定が得られた場合には（Ｓ２２５：Ｎｏ）、Ｓ２３５に移行する。
【００５５】
Ｓ２３０では、ＣＰＵ３０は、選択中の結線を、フィードバックループを構成する結線の候補（候補結線）として登録し、Ｓ２３５に移行する。なお、モデル３００について抽出処理が行われた場合には、結線３１０ａ，３１３ａ，３１３ｂ，３１４ａ，３１５ａが、候補結線として登録される（図４（ｂ）参照）。
【００５６】
Ｓ２３５では、ＣＰＵ３０は、モデルを構成する全ての結線のチェックが終了したか否かを判定し、肯定判定が得られた得らえた場合には（Ｓ２３５：Ｙｅｓ）、Ｓ２４０に移行すると共に、否定判定が得られた場合には（Ｓ２３５：Ｎｏ）、Ｓ２２０に移行する。
【００５７】
Ｓ２４０では、ＣＰＵ３０は、候補結線を強調表示した状態で、本処理の対象となったモデルをディスプレイ１０に表示する。具体的には、例えば、候補結線を太くした状態でモデル全体を表示しても良いし（図５）、候補結線を他の部分とは異なる色にした状態でモデル全体を表示しても良い。そして、ＣＰＵ３０は、本処理を終了する。
【００５８】
なお、候補結線に加え、候補結線を介して出力されるデータの出力の出力元となるブロックを強調表示しても良いし、候補結線に替えて該ブロックを強調表示しても良い。
また、ＣＰＵ３０は、この他にも、候補結線や候補結線を介して出力されるデータの出力の出力元となるブロックを、音声によりユーザに報知しても良いし、候補結線等を強調表示した状態のモデルを紙等に印刷することでユーザに報知しても良い。また、候補結線等を示す情報を、データとしてＨＤＤ２０等に記憶したり、外部に出力しても良い。
【００５９】
また、抽出処理によりフィードバックループを抽出し、抽出結果に基づきテストを行ったモデルに基づき、車載装置等といった電子装置を制御する組み込みシステム向けのプログラムを作成することが考えられる。無論、これに限定されること無く、該モデルに基づき、ＰＣ等の電子装置で動作するアプリケーション等を含むあらゆる用途のプログラムを作成することが考えられる。また、該モデルに基づき作成されたプログラムにより動作する車載装置等といった電子装置を構成することが考えられる。
【００６０】
［効果］
以上詳述した本実施形態の設計支援装置によれば、以下の効果が得られる。
（１）フィードバックループは複雑度が高いため、効率的にモデルの検証を行うためには、フィードバックループに対し何等かの対策を講じる必要がある。
【００６１】
これに対し、異なる条件下でモデルが示す対象処理を実行した場合、各条件下での対象処理の実行結果を比較すると、同一の結線を介して出力される出力値（同一のブロックの出力値）に誤差が生じる場合がある。
【００６２】
そして、各条件下で行われるシミュレーション処理では、入力値を固定し、且つ、ブロックの状態を維持しながらＮ回にわたり対象処理が実行される。こうすることにより、フィードバックループを構成する結線を介して出力される出力値の上記誤差は、実行サイクルの進行に伴い、フィードバックループを構成しない他の結線を介して出力される出力値の上記誤差とは異なる傾向で変化する。
【００６３】
このため、本実施形態の設計支援装置のように、各結線を介して出力される出力値についての各実行サイクルの上記誤差の相違に基づきフィードバックループを抽出することで、精度良くフィードバックループを抽出可能となる。これにより、ユーザは、目視によりフィードバックループを見つけ出す必要が無くなるため、モデルベース開発におけるモデルの検証を容易に行うことが可能となる。
【００６４】
（２）また、本実施形態の設計支援装置では、用いられるデータの精度が低い低精度条件下と、用いられるデータの精度が高い高精度条件下でシミュレーション処理が行われる。これにより、フィードバックループを構成する結線を介して出力される出力値についての上記誤差の変化の傾向と、他の結線を介して出力される出力値についての上記誤差の変化の傾向との違いがより明確に表れる。このため、より精度良くフィードバックループを抽出可能となる。
【００６５】
（３）また、本実施形態の設計支援装置は、抽出したフィードバックループをユーザに報知強調表示した状態でモデルを表示する。これにより、ユーザは、容易且つ確実にフィードバックループを把握可能となる。
【００６６】
［他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。
【００６７】
（１）本実施形態の抽出処理では、誤差がシミュレーション処理の実行サイクルの進行に伴い増加する傾向にある結線を、候補結線として登録している。しかしながら、これに限らず、異なる傾向で誤差が変化する結線（例えば、実行サイクルの進行に伴い誤差が一定以上の振幅で変動する結線等）を、候補結線として登録しても良い。このような場合であっても、同様の効果を得ることができる。
【００６８】
（２）本実施形態の抽出処理では、モデルにて用いられるデータの精度が異なる低精度シミュレーション処理と高精度シミュレーション処理とが行われ、各シミュレーション処理における結線の誤差に基づきフィードバックループが抽出される。
【００６９】
しかしながら、これに限らず、取得したモデルに基づき、２通りの入力値を設定した状態でシミュレーション処理を実行すると共に、同様にして各結線の誤差を算出しても良い。換言すれば、モデルにて用いられるデータの精度を変えること無く、入力値を異ならせた状態でシミュレーション処理を実行しても良い。そして、同様にして、結線を介して出力される出力値の誤差の傾向に基づきフィードバックループを抽出しても良い。このような構成を有する場合であっても、同様の効果を得ることができる。
【００７０】
（３）本実施形態の抽出処理では、モデルにて用いられるデータの精度が異なる２種類のシミュレーション処理が実行される。
しかしながら、これに限らず、用いられるデータの精度が異なる３種類以上のシミュレーション処理を実行しても良い。具体的には、例えば、用いられる変数のデータ型を整数型とした第１シミュレーション処理と、該変数のデータ型を単精度浮動小数点形式とした第２シミュレーション処理と、該変数のデータ型を倍精度浮動小数点形式とした第３シミュレーション処理とを実行しても良い。そして、これらのシミュレーション処理のうちの２つからなる組み合わせを合計３つ生成すると共に、各組合せについて同様にして結線について誤差を算出し、各組合せにおける誤差の変化に基づき、同様にしてフィードバックループを抽出しても良い。
【００７１】
また、例えば、モデルの入力値の異なる３種類以上のシミュレーション処理を実行し、同様にしてフィードバックループを抽出しても良い。また、例えば、モデルにて用いられるデータの精度とモデルの入力値の双方が異なる２種類以上のシミュレーション処理を実行し、同様にしてフィードバックループを抽出しても良い。
【００７２】
このような構成を有する場合であっても、同様の効果を得ることができる。
（４）本実施形態の抽出処理では、モデルを構成する全ての結線を対象として各実行サイクルにおける誤差の変化の傾向をチェックしているが、これに限らず、一部の結線についてはチェックを省略しても良い。全ての結線についてチェックを行わなくても、一部の候補結線を強調表示した状態でモデルを表示することで、フィードバックループを凡そ把握することができる。
【００７３】
（５）上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００７４】
（６）上述した設計支援装置や設計支援ツールの他、当該設計支援装置を構成要素とするシステム、設計支援ツールを記録した媒体、設計支援装置により行われる抽出処理に相当する方法等、種々の形態で本発明を実現することもできる。
【００７５】
［特許請求の範囲との対応］
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
【００７６】
抽出処理のＳ２００が取得部の一例に、Ｓ２１０が実行部の一例に、Ｓ２２０〜Ｓ２３５が抽出部の一例に、Ｓ２４０が出力部の一例に相当する。
【符号の説明】
【００７７】
１…ＰＣ、２…サーバ、５…ネットワーク、１０…ディスプレイ、２０…ＨＤＤ、３０…ＣＰＵ、４０…ＲＯＭ、５０…ＲＡＭ、６０…入力装置。
【図１】
2017027341.tif 000003
【図２】
2017027341.tif 000004
【図３】
2017027341.tif 000005
【図４】
2017027341.tif 000006
【図５】
2017027341.tif 000007