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