(57)【要約】【課題】動作ソフトウエアの開発の手間を軽減することが可能となるシミュレーションシステム、及びシミュレーションプログラムを提供すること。【解決手段】  模擬対象を模擬するシミュレーションシステムであって、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬するＥＣＵ部１００及びＥＣＵ部３００を備え、ＥＣＵ部１００及びＥＣＵ部３００は、オペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬しており、ＥＣＵ部１００及びＥＣＵ部３００は、相互に並列的に動作する複数の模擬対象の動作を模擬し、また、模擬対象に対する動作ソフトウエアの動作試験を、ＥＣＵ部１００及びＥＣＵ部３００を用いて模擬的に行い、また、マイクロコンピュータの動作を模擬する。【選択図】図１
2019179284.tif 000002
【特許請求の範囲】
【請求項１】
模擬対象を模擬するシミュレーションシステムであって、
前記模擬対象を動作させるための動作ソフトウエアに対する前記模擬対象の動作を模擬する模擬手段、を備え、
前記模擬手段は、オペレーティングシステムの少なくとも一部の機能を用いて前記模擬対象の動作を模擬する、
シミュレーションシステム。
【請求項２】
前記模擬手段は、相互に並列的に動作する複数の前記模擬対象の動作を模擬する、
請求項１に記載のシミュレーションシステム。
【請求項３】
前記模擬対象に対する前記動作ソフトウエアの動作試験を模擬的に行う試験手段、を備える、
請求項１又は２に記載のシミュレーションシステム。
【請求項４】
前記模擬対象は、マイクロコンピュータによって実現される、
請求項１から３の何れか一項に記載のシミュレーションシステム。
【請求項５】
模擬対象を模擬するシミュレーションプログラムであって、
コンピュータを、
前記模擬対象を動作させるための動作ソフトウエアに対する前記模擬対象の動作を模擬する模擬手段、として機能させ、
前記模擬手段は、オペレーティングシステムの少なくとも一部の機能を用いて前記模擬対象の動作を模擬する、
シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム、及びシミュレーションプログラムに関する。
【背景技術】
【０００２】
従来、組み込みシステムとして用いられるマイクロコンピュータが知られていた（例えば、特許文献１）。この特許文献１のマイクロコンピュータを含めて、一般的なマイクコンピュータを利用するためには、ミドルウエアやアプリケーションソフトウエア等の様々なソフトウエアを開発し、開発したソフトウエアを実装して動作させる必要があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２１９２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、マイクロコンピュータを動作させるためのソフトウエアの開発が手間となっていた。すなわち、当該ソフトウエアを開発するためには、例えば、ソフトウエアの動作試験等を行うために、開発環境を構築する必要があったが、この開発環境の構築のためには、当該ソフトウエアを動作するための実際のマイクロコンピュータ（評価用のマイクロコンピュータ等を含む）を用意して当該マイクロコンピュータが実際に動作する環境を構築する必要があり、多大な時間と労力が必要となっていた。
【０００５】
本発明は、上記に鑑みてなされたものであって、動作ソフトウエアの開発の手間を軽減することが可能となるシミュレーションシステム、及びシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、請求項１に記載のシミュレーションシステムは、模擬対象を模擬するシミュレーションシステムであって、前記模擬対象を動作させるための動作ソフトウエアに対する前記模擬対象の動作を模擬する模擬手段、を備え、前記模擬手段は、オペレーティングシステムの少なくとも一部の機能を用いて前記模擬対象の動作を模擬する。
【０００７】
請求項２に記載のシミュレーションシステムは、請求項１に記載のシミュレーションシステムにおいて、前記模擬手段は、相互に並列的に動作する複数の前記模擬対象の動作を模擬する。
【０００８】
請求項３に記載のシミュレーションシステムは、請求項１又は２に記載のシミュレーションシステムにおいて、前記模擬対象に対する前記動作ソフトウエアの動作試験を模擬的に行う試験手段、を備える。
【０００９】
請求項４に記載のシミュレーションシステムは、請求項１から３の何れか一項に記載のシミュレーションシステムにおいて、前記模擬対象は、マイクロコンピュータによって実現される。
【００１０】
請求項５に記載のシミュレーションプログラムは、模擬対象を模擬するシミュレーションプログラムであって、コンピュータを、前記模擬対象を動作させるための動作ソフトウエアに対する前記模擬対象の動作を模擬する模擬手段、として機能させ、前記模擬手段は、オペレーティングシステムの少なくとも一部の機能を用いて前記模擬対象の動作を模擬する。
【発明の効果】
【００１１】
請求項１に記載のシミュレーションシステムによれば、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬する模擬手段を備えることにより、例えば、マイクロコンピュータの如き動作ソフトウエアによって動作させる実体を用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、模擬手段はオペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬することにより、例えば、模擬対象の動作を模擬するために既存のオペレーティングシステム（例えば、リナックス（登録商標）、ウィンドウズ（登録商標）、又はＵＮＩＸ（登録商標）等）を利用することができるので、新たにゼロから模擬対象の動作を模擬するソフトウエア等を開発する必要がなく、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。
【００１２】
請求項２に記載のシミュレーションシステムによれば、模擬手段が相互に並列的に動作する複数の模擬対象の動作を模擬することにより、例えば、複数の相互に並列的に動作する模擬対象（一例としては、マイクロコンピュータを用いて実現される複数のエレクトロニックコントロールユニット（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）、あるいは、当該マイクロコンピュータを用いて実現されるＥＣＵ内の複数のコア等）を模擬することができるので、多様な動作ソフトウエアを開発する手間を軽減することが可能となる。
【００１３】
請求項３に記載のシミュレーションシステムによれば、動作ソフトウエアの動作試験を模擬的に行うことにより、例えば、模擬対象を実際に用いることなく、動作ソフトウエアのデバグ等を行うことができるので、動作ソフトウエアを開発する手間を一層軽減することが可能となる。
【００１４】
請求項４に記載のシミュレーションシステムによれば、模擬対象がマイクロコンピュータによって実現されることにより、例えば、マイクロコンピュータを実際に用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。
【００１５】
請求項５に記載のシミュレーションプログラムによれば、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬する模擬手段を備えることにより、例えば、マイクロコンピュータの如き動作ソフトウエアによって動作させる実体を用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、模擬手段はオペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬することにより、例えば、模擬対象の動作を模擬するために既存のオペレーティングシステム（例えば、リナックス（登録商標）、ウィンドウズ（登録商標）、又はＵＮＩＸ（登録商標）等）を利用することができるので、新たにゼロから模擬対象の動作を模擬するソフトウエア等を開発する必要がなく、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、例えば、評価環境（マイクロコンピュータ実機の調達を含む）における投資が不要になるので、コスト削減を図ることが可能となる。また、例えば、ＥＣＵ開発の上流工程（たとえば設計段階）といった早期の段階でアプリケーションの動作を確認することができるので、開発効率を向上させることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係る計算機を例示するブロック図である。
【図２】計算機内で用いられる情報の構造を示す図である。
【図３】シミュレーション処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明に係るシミュレーションシステム、及びシミュレーションプログラムの実施の形態について図面を参照しつつ詳細に説明する。ただし、実施の形態によって本発明が限定されるものではない。
【００１８】
本発明に係るシミュレーションシステムは、模擬対象を模擬するシステムであり、具体的には、シミュレーションを行うシステムであり、例えば、シミュレーションを行う専用システム、あるいは、汎用的に用いられるシステム（一例としては、汎用コンピュータ、サーバコンピュータ、あるいは、ネットワーク上に分散配置された複数のコンピュータ（つまり、いわゆるクラウドコンピュータ）等）に対して、シミュレーションプログラムをインストールしてシミュレーションを行う機能を実装することにより実現されるシステム等を含む概念である。また、シミュレーションシステムは、例えば、模擬手段を備え、任意で、試験手段を備える。
【００１９】
ここで、「模擬対象」とは、シミュレーションシステムを用いて模擬する対象であり、具体的には、任意のハードウエア又はソフトウエア自体、あるいは、当該ハードウエア又はソフトウエアにより実現される機能（ハードウエア又はソフトウエア、あるいは、システム）であり、例えば、マイクロコンピュータ（以下、単に「マイコン」とも称する）自体、１つ以上のマイコンによって実現されるハードウエア又はソフトウエア等を含む概念であり、一例としては、後述するＥＣＵや当該ＥＣＵ内のコア等を含む概念である。
【００２０】
また、「模擬手段」とは、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬する手段であり、具体的には、オペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬する手段であり、例えば、相互に並列的に動作する複数の模擬対象の動作を模擬する手段等を含む概念である。
【００２１】
また、「動作ソフトウエア」とは、模擬対象を動作せるためのソフトウエアであり、例えば、マイコンで実行されるアプリケーションソフトウエアの全部又は一部、あるいは、オペレーティングシステム（ＯＳ）（つまり、ミドルウエア）の全部又は一部等を含む概念である。
【００２２】
また、模擬対象の動作を模擬するために用いられる「オペレーティングシステム」とは、任意の基本ソフトウエアであり、具体的には、模擬対象で動作するＯＳと同じＯＳ、あるいは、模擬対象で動作するＯＳとは異なるＯＳ等を含む概念であり、例えば、模擬対象であるマイコンで実際に動作するＯＳとは異なる任意のＯＳ等を含む概念であり、一例としては、リナックス（登録商標）、ウィンドウズ（登録商標）、及びＵＮＩＸ（登録商標）等を含む概念である。
【００２３】
また、「相互に並列的に動作する複数の模擬対象」とは、例えば、マイコンを用いて実現される複数の機能（ハードウエア又はソフトウエア、あるいは、システム）であって、相互に並列的に動作する複数の機能等含む概念であり、一例としては、マイコンを車載装置の分野に適用する場合の、マイコンを用いて実現される複数のＥＣＵ、及びマイコンを用いて実現されるＥＣＵ内の複数のコア（マルチコアシステムにおける複数のコア）等を含む概念である。
【００２４】
また、「試験手段」とは、模擬対象に対する動作ソフトウエアの動作試験を模擬的に行う手段であり、例えば、実際の模擬対象を動作させるために用いられるソフトウエアである動作ソフトウエアが模擬対象にて正常に動作するか否かを、模擬手段によって実現させる仮想的な環境で試験する動作試験を行う手段である。この試験手段は、例えば、実際のマイコンが無い環境において、当該マイコンの少なくとも一部の機能を模擬手段で実現することにより（つまり、動作ソフトウエアに対するマイコンにより実現させる機能の動作を模擬する環境において）、動作ソフトウエアが想定通りに動作したか否かを判定する試験等を行う。
【００２５】
そして、以下に示す実施の形態では、車載装置の分野に適用する場合において、「シミュレーションシステム」がサーバコンピュータである計算機に対して、シミュレーションプログラムをインストールすることにより実現され、また、「模擬対象」がＥＣＵ及びコアであり、また、模擬対象の動作を模擬するために用いられる「オペレーティングシステム」がリナックス（登録商標）であり、また、「動作ソフトウエア」がアプリケーションソフトウエアである場合を例示して説明する。
【００２６】
（構成）
まず、本実施の形態に係る計算機について説明する。図１は、本発明の実施の形態に係る計算機を例示するブロック図である。
【００２７】
計算機９００は、サーバコンピュータであって、シミュレーションシステムであり、具体的には、不図示のＣＰＵ、当該ＣＰＵ上で解釈実行される各種のプログラム、及びプログラムや各種のデータを格納するためのＲＡＭの如き不図示の内部メモリを備えており、また、外部記録装置としてのハードディスク等を備えているものである。また、計算機９００は、例えば、オペレーティングシステムとしてリナックス（登録商標）が実装されており、また、シミュレーションシステムとしての後述する各部が実現されているものである。そして、この計算機９００は、マイコンを用いて実現されるシングルコアのＥＣＵ及びマルチコアのＥＣＵの２個のＥＣＵ等を模擬するものであり、例えば、ＥＣＵ部１００、３００、入出力インターフェース部４１、ログ情報格納部４２、試験制御部４３を備える。
【００２８】
なお、これらの各部については、計算機９００のリナックス（登録商標）によって少なくとも一部が実現されるが、特に、マルチコアであることをリナックス（登録商標）のスレッドを用いて実現し、また、当該マルチコアのコア間共有変数をリナックス（登録商標）のスレッド間の共有変数を用いて実現し、また、マイコンのリアルタイムＯＳのタスク切り替えをリナックス（登録商標）のコンテキストスイッチを用いて実現し、また、当該リアルタイムＯＳの割り込み処理をリナックス（登録商標）のシグナルにマッピングすることにより実現してもよい。なお、この実現手法は例示であり、公知の手法を含む他の任意の手法で実現してもよく、ここに例示していない各部については、公知の手法を含む任意の手法で実現してもよい。また、本実施の形態では、計算機９００のＣＰＵが、前述の模擬手段、及び試験手段に相当する。
【００２９】
（構成−ＥＣＵ部）
ＥＣＵ部１００、３００は、例えば、模擬対象であるＥＣＵを模擬するものである。なお、ＥＣＵ部１００、３００については、ＥＣＵ部１００がマルチコアであり、ＥＣＵ部３００がシングルコアであることを除いて、相互に同様に構成することができるので、特記する場合を除いてＥＣＵ部１００について説明する。
【００３０】
ＥＣＵ部１００は、コア部１、２を備える。なお、コア部１、２については相互に同様に構成することができるので、特記する場合を除いてコア部１について説明する。
【００３１】
（構成−ＥＣＵ部−コア部）
コア部１は、模擬対象であるコアを模擬するものであり、具体的には、ＥＣＵ部１００における独立して動作可能な１つの集合であり、例えば、テスト対象部１０を備える。
【００３２】
（構成−ＥＣＵ部−コア部−テスト対象部）
テスト対象部１０は、前述の試験手段による動作試験の対象となり得る部分であり、例えば、疑似マイコン抽象化部１１、プラットフォーム部１２、及びアプリケーション部１３を備える。
【００３３】
（構成−ＥＣＵ部−コア部−テスト対象部−疑似マイコン抽象化部）
疑似マイコン抽象化部１１は、マイコンの少なくとも一部の機能を模擬する部分あり、例えば、任意の規格（例えば、ＡＵＴＯＳＡＲ（ＡＵＴｏｍｏｔｉｖｅ  Ｏｐｅｎ  Ｓｙｓｔｅｍ  ＡＲｃｈｉｔｅｃｔｕｒｅ）等を含む任意の規格）に従って動作するマイコンのソフトウエア的な動作（つまり、任意の返値を返す等の動作等を含む）等を模擬するものである。
【００３４】
（構成−ＥＣＵ部−コア部−テスト対象部−プラットフォーム部）
プラットフォーム部１２は、マイコン上で動作するプラットフォーム（ミドルウエア）自体、あるいは、当該プラットフォームを模擬する部分を含んでおり、例えば、ログ出力部１２１、入出力部１２２、及び疑似ＲＴＯＳ部１２３を備える。
【００３５】
ログ出力部１２１は、動作試験の途中経過又は最終結果等を含むログ情報を出力するログ出力手段であり、入出力部１２２は、情報を入出力する入出力手段であり、例えば、アプリケーション部１３と疑似マイコン抽象化部１１との間の情報を入出力するものである。疑似ＲＴＯＳ部１２３は、マイコンで動作するリアルタイムＯＳを模擬する部分である。
【００３６】
（構成−ＥＣＵ部−コア部−テスト対象部−アプリケーション部）
アプリケーション部１３は、動作ソフトウエアであり、マイコンを用いて実現されるシステムとしての模擬対象であるＥＣＵ及びコアで動作するアプリケーション自体等を含む概念であり、一例としては、ユーザによって生成されたアプリケーションソフトウエアのソースコードによって実現されるものである。
【００３７】
（構成−入出力インターフェース部）
入出力インターフェース部４１は、模擬対象であるＥＣＵ及びコアを模擬する部分であり、具体的には、ＥＣＵ間又はコア間の電気配線を模擬するものである。
【００３８】
図２は、計算機内で用いられる情報の構造を示す図である。この入出力インターフェース部４１は、例えば、図２に示すＣＡＮ用情報や、ＤＩＯ用情報等を中継する。
【００３９】
「ＣＡＮ用情報」とは、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信プロトコルで通信される情報を含む情報であり、例えば、ヘッダ部、及びデータ部を備える。
【００４０】
ＣＡＮ用情報のヘッダ部は、実際のマイコンを用いて実現されるＥＣＵ及びコアの如き配線等が行われていない計算機９００において、ＣＡＮ通信プロトコルを模擬した通信を行うための情報であり、ＥＣＵ部を一意に識別するためのＥＣＵＩＤ、及びコア部を一意に識別するコアＩＤを含む情報である。なお、ここでの具体的なＥＣＵＩＤについては、例えば、ＥＣＵ部１００のＥＣＵＩＤとして「ＩＤ１００」が設定されており、また、ＥＣＵ部３００のＥＣＵＩＤとして「ＩＤ３００」が設定されていることとする。また、具体的なコアＩＤについては、コア部１のコアＩＤが「ＩＤ１」に設定されており、コア部２のコアＩＤが「ＩＤ２」に設定されていることとする。
【００４１】
ＣＡＮ用情報のデータ部は、実際のＥＣＵ及びコアにおけるＣＡＮ通信プロトコルで通信される情報であり、当該情報を一意に識別するＣＡＮＩＤ、及び当該情報自体であるＣＡＮデータを含む情報である。
【００４２】
「ＤＩＯ用情報」とは、ＥＣＵ及びコアのデジタル入出力のポートをオンオフする情報であり、例えば、ＣＡＮ用情報のヘッダ部と同様なヘッダ部、及びデータ部を備える。なお、ＤＩＯ用情報のデータ部は、実際のＥＣＵ及びコアにおけるデジタル入出力のポートをオンオフする情報であり、ポートを一意に識別するポートＩＤ、及び当該ポートのデジタル入出力をオンオフするＤＩＯデータを含む情報である。
【００４３】
（構成−ログ情報格納部）
ログ情報格納部４２は、動作試験の途中経過又は最終結果等を含むログ情報を格納する格納手段である。
【００４４】
（構成−試験制御部）
試験制御部４３は、動作試験を制御する試験制御手段であり、例えば、リナックス（登録商標）の各種機能を実行したり、あるいは、各種情報を監視したりして、動作試験を制御するものである。
【００４５】
（処理）
次に、このように構成される計算機９００によって実行されるシミュレーション処理について説明する。「シミュレーション処理」とは、マイコンを用いて実現されるＥＣＵ及びコアを模擬することによりテスト対象部（テスト対象部の少なくともの一部）について動作試験を行う処理である。図３は、シミュレーション処理のフローチャートである（以下の各処理の説明ではステップを「Ｓ」と略記する）。このシミュレーション処理を実行するタイミングは任意であり、例えば、動作試験の対象である動作ソフトウエアのソースコード、及び動作試験の具体的な内容を特定するテストシナリオ情報を、計算機９００の不図示の入力手段（例えば、キーボードやマウス等）を用いてユーザが入力した後に、計算機９００のＣＰＵが、このソースコード、及びテストシナリオ情報を受け付けた場合に、実行されることとし、実行を開始したところから説明する。
【００４６】
ここでは、例えば、各ＥＣＵ部又は各コア部のアプリケーション部を実現するアプリケーションソフトウエアのソースコードを、動作ソフトウエアのソースコードとして計算機９００に入力し、また、図２の「ＣＡＮＩＤ」＝「ＩＤ１１」及び「ＣＡＮデータ」＝「ＤＡＴＡ１」のＣＡＮ情報をＥＣＵ部１００のコア部１からＥＣＵ部３００に対して送信する動作試験（以下、ＥＣＵ間動作試験）を入力して、計算機９００のＣＰＵがこれらの情報を受け付けて、シミュレーション処理の実行を開始した場合を例示して説明する。
【００４７】
図３のＳＡ１において計算機９００のＣＰＵは、情報を受け付ける。具体的には任意であるが、例えば、シミュレーション処理を実行する場合にユーザによって入力された、動作試験の対象である動作ソフトウエアのソースコード、及びテストシナリオ情報を受け付ける。ここでは、例えば、各ＥＣＵ部又は各コア部のアプリケーション部を実現するアプリケーションソフトウエアのソースコード、及びＥＣＵ間動作試験を行うテストシナリオ情報を受け付ける。
【００４８】
図３のＳＡ２において計算機９００のＣＰＵは、情報をビルドする。具体的には任意であるが、例えば、図１の各部を生成するための各種情報が計算機９００のハードディスクに記録されていることとし、当該記録されている各種情報を取得し、また、ＳＡ１で受け付けたソースコード、及びシナリオ情報を取得した上で、従来と同様にしてコンパイル等を行って、これらの取得した情報を実行形式に変換することにより、ビルドする。ここでは、例えば、ビルドを行うことにより、図１のアプリケーション部１３が、前述の入力されたアプリケーションソフトウエアのソースコードに基づいて構成され、また、試験制御部４３が、ＣＡＮ情報を送信するＥＣＵ間動作試験を行うように構成されて、図１の各部が構成されることになる。
【００４９】
図３のＳＡ３において計算機９００のＣＰＵは、動作試験を実行する。具体的には任意であるが、例えば、ＳＡ１で受け付けたテストシナリオ情報に従って、各部を起動又は制御して動作試験を実行する。なお、この場合、図１のテスト対象部の各部は、基本的には、実際のＥＣＵ及びコアの対応する処理と同様な処理を行うが、特徴的な部分について特記する。
【００５０】
ここでは、例えば、ＥＣＵ間動作試験を行うが、一例としては、以下のように処理することを想定して試験を行う。想定について具体的には、前述のＳＡ２のビルドにて、ＥＣＵ部１００のコア部１における疑似マイコン抽象化部１１に対して、「ＥＣＵＩＤ」＝「ＩＤ１００」及び「コアＩＤ」＝「ＩＤ１」が割り当てられ、また、ＥＣＵ部１００のコア部２における疑似マイコン抽象化部に対して、「ＥＣＵＩＤ」＝「ＩＤ１００」及び「コアＩＤ」＝「ＩＤ２」が割り当てられ、また、ＥＣＵ部３００の疑似マイコン抽象化部に対して、「ＥＣＵＩＤ」＝「ＩＤ３００」が割り当てられることとして、各ＩＤを図２のヘッダ部として用いて試験を行うこととする。
【００５１】
まず、ＥＣＵ部１００のコア部１のアプリケーション部１３が、「ＣＡＮＩＤ」＝「ＩＤ１１」及び「ＣＡＮデータ」＝「ＤＡＴＡ１」をＥＣＵ部３００に送信する命令を実行する。この場合、プラットフォーム部１２の任意の処理を介して、疑似マイコン抽象化部１１が、送信先であるＥＣＵ部３００に対応する「ＥＣＵＩＤ」＝「ＩＤ３００」及び「コアＩＤ」＝「ＮＵＬＬ」（なお、ＥＣＵ部３００については、シングルコアに対応しているので、コアＩＤにてコア部を識別する必要がないので、「ＮＵＬＬ」とする）をＣＡＮ用情報のヘッダ部として生成し、生成したヘッダ部を前述の「ＣＡＮＩＤ」＝「ＩＤ１１」及び「ＣＡＮデータ」＝「ＤＡＴＡ１」に付加して、ＣＡＮ用情報を生成して、生成したＣＡＮ用情報を入出力インターフェース部４１に送信する。
【００５２】
次に、各ＥＣＵ部の疑似マイコン抽象化部は、自己に割り当てられている各ＩＤと合致するヘッダ部を有するＣＡＮ用情報を受信するが、ここでは、ＥＣＵ部３００の疑似マイコン抽象化部が、前述の入出力インターフェース部４１に送信されたＣＡＮ用情報を受信し、受信したＣＡＮ用情報からヘッダ部である「ＥＣＵＩＤ」＝「ＩＤ３００」及び「コアＩＤ」＝「ＮＵＬＬ」を除去する。この場合、ＥＣＵ部３００のプラットフォーム部の任意の処理を介して、ＥＣＵ部３００のアプリケーション部が、「ＣＡＮＩＤ」＝「ＩＤ１１」及び「ＣＡＮデータ」＝「ＤＡＴＡ１」を受信する。
【００５３】
そして、試験について具体的には、試験制御部４３が、前述の想定する各処理が行われたか否かを判定するが、例えば、ＥＣＵ部１００のコア部１のアプリケーション部１３の命令により、ＥＣＵ部１００のコア部１の疑似マイコン抽象化部１１が、「ＣＡＮＩＤ」＝「ＩＤ１１」及び「ＣＡＮデータ」＝「ＤＡＴＡ１」（以下、「例示のＣＡＮデータ」と称する）を送信したか否かを各部の状態を監視して判定し、また、ＥＣＵ部３００のアプリケーション部で、例示のＣＡＮデータを受信したか否かを各部の状態を監視して判定した上で、例示のＣＡＮデータを送信したものと判定し、且つ、例示のＣＡＮデータを受信したものと判定した場合に、アプリケーションソフトウエアのソースコードが正常であるものと判断し、また、例示のＣＡＮデータを送信しなかったものと判定した場合、あるいは、例示のＣＡＮデータを受信しなかったものと判定した場合に、アプリケーションソフトウエアのソースコードが正常でないものと判断し、これらの判断結果を動作試験の結果とする。
【００５４】
図３のＳＡ４において計算機９００のＣＰＵは、動作試験の結果を出力する。具体的には任意であるが、ＳＡ３の実行結果又は実行途中の任意の情報を取得し、取得した情報を計算機９００の不図示のディスプレイに表示出力する。詳細には、試験制御部４３が、ＳＡ３での判断結果である、「アプリケーションソフトウエアのソースコードが正常である」ことを取得し、当該取得した「アプリケーションソフトウエアのソースコードが正常である」ことに対応する「ＰＡＳＳ」等の文字情報を不図示のディスプレイに表示したり、あるいは、「アプリケーションソフトウエアのソースコードが正常でない」ことを取得し、当該取得した「アプリケーションソフトウエアのソースコードが正常でない」ことに対応する「ＦＡＩＬ」等の文字情報を不図示のディスプレイに表示したりしてもよい。この場合、更に、当該表示出力する情報をログ情報格納部４２に格納してもよく、このログ情報格納部４２には、動作試験の途中経過等も把握できるように、ＳＡ３での途中経過であるＣＡＮデータを送信したものと判定したか否か、あるいは、ＣＡＮデータを受信したものと判定したか否か等を特定する情報も格納してもよい。このようにして、実際のマイコンを用いることなく、動作試験を行うことが可能となる。これにて、シミュレーション処理を終了する。
【００５５】
（実施の形態の効果）
このように本実施の形態によれば、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬する計算機９００のＣＰＵを備えることにより、例えば、マイクロコンピュータの如き動作ソフトウエアによって動作させる実体を用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、計算機９００のＣＰＵはオペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬することにより、例えば、模擬対象の動作を模擬するために既存のオペレーティングシステム（例えば、リナックス（登録商標）を利用することができるので、新たにゼロから模擬対象の動作を模擬するソフトウエア等を開発する必要がなく、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。
【００５６】
また、計算機９００のＣＰＵが相互に並列的に動作する複数の模擬対象の動作を模擬することにより、例えば、複数の相互に並列的に動作する模擬対象（一例としては、マイクロコンピュータを用いて実現される複数のＥＣＵ、あるいは、当該マイクロコンピュータを用いて実現されるＥＣＵ内の複数のコア等）を模擬することができるので、多様な動作ソフトウエアを開発する手間を軽減することが可能となる。
【００５７】
また、動作ソフトウエアの動作試験を模擬的に行うことにより、例えば、模擬対象を実際に用いることなく、動作ソフトウエアのデバグ等を行うことができるので、動作ソフトウエアを開発する手間を一層軽減することが可能となる。
【００５８】
また、模擬対象がマイクロコンピュータによって実現されることにより、例えば、マイクロコンピュータを実際に用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。
【００５９】
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した本発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【００６０】
（解決しようとする課題や発明の効果について）
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏したりすることがある。
【００６１】
（分散や統合について）
また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散や統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散又は統合して構成できる。また、本出願における「装置」とは、単一の装置によって構成されたものに限定されず、複数の装置によって構成されたものを含む。
【００６２】
（形状、数値、構造、時系列について）
実施の形態や図面において例示した構成要素に関して、形状、数値、又は複数の構成要素の構造若しくは時系列の相互関係については、本発明の技術的思想の範囲内において、任意に改変及び改良することができる。
【００６３】
（情報の入力について）
また、上記実施の形態では、動作ソフトウエア及びテストシナリオ情報をユーザが入力する場合について説明したが、これに限らず、これらの各情報を任意のサーバ装置（例えば、リポジトリサーバ等）に格納しておき、このサーバ装置から自動的に読み出して実施の形態で説明したシミュレーション処理を実行してもよい。なお、ここでのサーバに格納する動作ソフトウエア及びテストシナリオ情報のデータ数については任意であり、例えば、単数であってもよく、あるいは、複数であってもよい。
【００６４】
（付記）
付記１のシミュレーションシステムは、模擬対象を模擬するシミュレーションシステムであって、前記模擬対象を動作させるための動作ソフトウエアに対する前記模擬対象の動作を模擬する模擬手段、を備え、前記模擬手段は、オペレーティングシステムの少なくとも一部の機能を用いて前記模擬対象の動作を模擬する。
【００６５】
付記２のシミュレーションシステムは、付記１に記載のシミュレーションシステムにおいて、前記模擬手段は、相互に並列的に動作する複数の前記模擬対象の動作を模擬する。
【００６６】
付記３のシミュレーションシステムは、付記１又は２に記載のシミュレーションシステムにおいて、前記模擬対象に対する前記動作ソフトウエアの動作試験を模擬的に行う試験手段、を備える。
【００６７】
付記４のシミュレーションシステムは、付記１から３の何れか一項に記載のシミュレーションシステムにおいて、前記模擬対象は、マイクロコンピュータによって実現される。
【００６８】
付記５に記載のシミュレーションプログラムは、模擬対象を模擬するシミュレーションプログラムであって、コンピュータを、前記模擬対象を動作させるための動作ソフトウエアに対する前記模擬対象の動作を模擬する模擬手段、として機能させ、前記模擬手段は、オペレーティングシステムの少なくとも一部の機能を用いて前記模擬対象の動作を模擬する。
【００６９】
（付記の効果）
付記１に記載のシミュレーションシステムによれば、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬する模擬手段を備えることにより、例えば、マイクロコンピュータの如き動作ソフトウエアによって動作させる実体を用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、模擬手段はオペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬することにより、例えば、模擬対象の動作を模擬するために既存のオペレーティングシステム（例えば、リナックス（登録商標）、ウィンドウズ（登録商標）、又はＵＮＩＸ（登録商標）等）を利用することができるので、新たにゼロから模擬対象の動作を模擬するソフトウエア等を開発する必要がなく、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。
【００７０】
付記２に記載のシミュレーションシステムによれば、模擬手段が相互に並列的に動作する複数の模擬対象の動作を模擬することにより、例えば、複数の相互に並列的に動作する模擬対象（一例としては、マイクロコンピュータを用いて実現される複数のＥＣＵ、あるいは、当該マイクロコンピュータを用いて実現されるＥＣＵ内の複数のコア等）を模擬することができるので、多様な動作ソフトウエアを開発する手間を軽減することが可能となる。
【００７１】
付記３に記載のシミュレーションシステムによれば、動作ソフトウエアの動作試験を模擬的に行うことにより、例えば、模擬対象を実際に用いることなく、動作ソフトウエアのデバグ等を行うことができるので、動作ソフトウエアを開発する手間を一層軽減することが可能となる。
【００７２】
付記４に記載のシミュレーションシステムによれば、模擬対象がマイクロコンピュータによって実現されることにより、例えば、マイクロコンピュータを実際に用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。
【００７３】
付記５に記載のシミュレーションプログラムによれば、模擬対象を動作させるための動作ソフトウエアに対する模擬対象の動作を模擬する模擬手段を備えることにより、例えば、マイクロコンピュータの如き動作ソフトウエアによって動作させる実体を用意する必要がないので、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、模擬手段はオペレーティングシステムの少なくとも一部の機能を用いて模擬対象の動作を模擬することにより、例えば、模擬対象の動作を模擬するために既存のオペレーティングシステム（例えば、リナックス（登録商標）、ウィンドウズ（登録商標）、又はＵＮＩＸ（登録商標）等）を利用することができるので、新たにゼロから模擬対象の動作を模擬するソフトウエア等を開発する必要がなく、動作ソフトウエアの開発環境を構築する手間を軽減することができ、動作ソフトウエアの開発の手間を軽減することが可能となる。また、例えば、評価環境（マイクロコンピュータ実機の調達を含む）における投資が不要になるので、コスト削減を図ることが可能となる。また、例えば、ＥＣＵ開発の上流工程（たとえば設計段階）といった早期の段階でアプリケーションの動作を確認することができるので、開発効率を向上させることが可能となる。
【符号の説明】
【００７４】
１  コア部
２  コア部
１０  テスト対象部
１１  疑似マイコン抽象化部
１２  プラットフォーム部
１３  アプリケーション部
２０  テスト対象部
３０  テスト対象部
４１  入出力インターフェース部
４２  ログ情報格納部
４３  試験制御部
１００  ＥＣＵ部
１２１  ログ出力部
１２２  入出力部
１２３  疑似ＲＴＯＳ部
３００  ＥＣＵ部
９００  計算機
【図１】
2019179284.tif 000003
【図２】
2019179284.tif 000004
【図３】
2019179284.tif 000005