(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】等価検証方法、および等価検証プログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20221115BHJP
【FI】
G06F11/36 196
(21)【出願番号】P 2019227216
(22)【出願日】2019-12-17
【審査請求日】2021-12-13
(73)【特許権者】
【識別番号】000233055
【氏名又は名称】株式会社日立ソリューションズ
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】下澤 昌史
(72)【発明者】
【氏名】清水 亮介
【審査官】関口 明紀
(56)【参考文献】
【文献】特開2000-284990(JP,A)
【文献】特開2018-190349(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/07、11/28-11/36
(57)【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する等価検証装置が実行する等価検証方法であって、
前記等価検証方法は、
前記プロセッサが、
対象制御装置が制御装置群との間で送受信したデータおよび当該データの送受信時間を記録した第1ログに基づいて、前記対象制御装置の機能を実現する第1ソフトウェアに関する第1シミュレーションを実行することにより、前記対象制御装置が前記制御装置群との間で送受信したデータおよび当該データの送受信時間の各々にソフトウェア実行時間を記録した第2ログを生成する第1生成処理と、
前記第1生成処理によって生成された第2ログに基づいて、前記第1ソフトウェアと同一機能を実現する第2ソフトウェアに関する第2シミュレーションを実行することにより、前記ソフトウェア実行時間に前記対象制御装置が前記制御装置群の中の送信先制御装置に送信したことを示す送信データを生成する第2生成処理と、
前記第2生成処理によって生成された送信データと、前記ソフトウェア実行時間に前記対象制御装置が前送信先制御装置に送信したことを示す前記第2ログ内の送信データと、を照合し、照合結果を出力する照合処理と、
を実行することを特徴とする等価検証方法。
【請求項2】
請求項1に記載の等価検証方法であって、
前記第2ソフトウェアは、前記第1ソフトウェアをリファクタリングしたソフトウェアである、
ことを特徴とする等価検証方法。
【請求項3】
請求項1に記載の等価検証方法であって、
前記照合処理では、前記プロセッサは、前記両送信データに差分がない判定した場合、前記照合結果として前記両送信データに差分がないことを示す情報を出力する、
ことを特徴とする等価検証方法。
【請求項4】
請求項1に記載の等価検証方法であって、
前記照合処理では、前記プロセッサは、両送信データに差分があると判定した場合、前記照合結果として前記両送信データに差分があることを示す情報を出力する、
ことを特徴とする等価検証方法。
【請求項5】
請求項1に記載の等価検証方法であって、
前記第2生成処理では、前記プロセッサは、前記送信データと、前記照合結果と、を関連付けた第3ログを生成する、
ことを特徴とする等価検証方法。
【請求項6】
請求項5に記載の等価検証方法であって、
前記第2生成処理では、前記プロセッサは、前記照合結果が前記両送信データに差分があることを示す情報である場合、前記照合結果の件数を出力する、
ことを特徴とする等価検証方法。
【請求項7】
請求項5に記載の等価検証方法であって、
前記プロセッサは、前記制御装置群の各々の制御装置と、前記対象制御装置から前記制御装置に送信されるデータに含まれる信号の名称と、を対応付けた対応情報にアクセス可能であり、
前記第2生成処理では、前記プロセッサは、前記照合結果が前記両送信データに差分があることを示す情報である場合、前記対応情報を参照して、前記送信データに対応する特定の信号の名称を取得し、前記送信データと前記照合結果と前記特定の信号の名称とを関連付けて前記第3ログを生成する、
ことを特徴とする等価検証方法。
【請求項8】
請求項7に記載の等価検証方法であって、
前記対応情報は、さらに、前記信号が示す値のデータ内位置を対応付けており、
前記第2生成処理では、前記プロセッサは、前記対応情報を参照して、前記送信データが示す値が位置する特定のデータ内位置と、前記特定の信号の名称と、を取得し、前記送信データと前記照合結果と前記特定の信号の名称と前記特定のデータ内位置とを関連付けて前記第3ログを生成する、
ことを特徴とする等価検証方法。
【請求項9】
プロセッサに、
対象制御装置が制御装置群との間で送受信したデータおよび当該データの送受信時間を記録した第1ログに基づいて、前記対象制御装置の機能を実現する第1ソフトウェアに関する第1シミュレーションを実行することにより、前記対象制御装置が前記制御装置群との間で送受信したデータおよび当該データの送受信時間の各々にソフトウェア実行時間を記録した第2ログを生成する第1生成処理と、
前記第1生成処理によって生成された第2ログに基づいて、前記第1ソフトウェアと同一機能を実現する第2ソフトウェアに関する第2シミュレーションを実行することにより、前記ソフトウェア実行時間に前記対象制御装置が前記制御装置群の中の送信先制御装置に送信したことを示す送信データを生成する第2生成処理と、
前記第2生成処理によって生成された送信データと、前記ソフトウェア実行時間に前記対象制御装置が前送信先制御装置に送信したことを示す前記第2ログ内の送信データと、を照合し、照合結果を出力する照合処理と、
を実行させるための等価検証プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、等価検証を実行する等価検証方法、および等価検証プログラムに関する。
【背景技術】
【0002】
車載ネットワーク(車両内ネットワークとも呼ばれる)は、車両に搭載される機器の制御に用いられるネットワークである。具体的には、たとえば、車載ネットワークは、ACC(Adaptive Cruise Control)システムやエンジンといった車両自体を制御する車両制御系ネットワークと、ドアやスイッチ、ステアリングといった車体を制御するボディ系ネットワークと、ディスプレイやオーディオ、エアコン、カーナビゲーションといった情報系の機器を制御する情報系ネットワークと、という3系統のネットワークを有する。3系統のネットワークは、各ネットワーク内のECU(Electronic Control Unit)のような制御装置を介して相互に接続されて、ECUの高度化と配線の複雑化に対応するため、CAN(Controller Area Network)、LIN(Local Interconnect Network)、FlexRayといった通信規格に基づいてデータ通信される。
【0003】
車載ネットワークログとは、車載ネットワークから得られるログデータである。車載ネットワークは車種により異なるため、当然、車載ネットワークログも車種により異なる。具体的には、たとえば、たとえば、ECUのID、パラメータの割り当て、受信周期が車種により異なる。
【0004】
車載ネットワークの等価検証およびリグレッションテストでは、車載ネットワークに実装されるソフトウェアの変更前と変更後とで同じ車両ネットワーク信号を入力として、出力に違いが無いかが検証される。
【0005】
特許文献1のソフトウェア設計支援装置は、モデルベース開発で設計したモデルを記録したモデルデータ記憶部と、ソフトウェア要件記憶部とから、モデルのどの部分に要件が割り当てられているかをトレース分析部で分析し、分析結果と、リファクタリングで着目する要件を指定する分析要件入力部からリファクタリング実行部でリファクタリングを実施する。リファクタリングの結果、およびモデルデータ記憶部にあるモデルと、シミュレーション入力記憶部に保持された入力データと、から、シミュレーション実行及び結果比較部で、シミュレーションを実施し、結果に差分がないことを確認した上で、結果表示部でリファクタリングによる変更部分を強調表示する。
【0006】
特許文献2のソースコード等価性検証装置は、変更前ソースコードと変更前ソースコードを変更した変更後ソースコードとを対象に、それぞれ記号実行計算する記号実行計算部、記号実行計算部の記号実行計算結果である記号実行サマリに基づいて、変更前ソースコードと変更後ソースコードとの、同じ入力に対して同じ出力が得られることである等価性を検証するための等価性検証式を生成する等価性検証式生成部、等価性検証式生成部で生成された等価性検証式を検証する等価性検証式検証部、等価性検証式検証部における検証結果を用いて検証結果レポートを生成する検証結果生成部を有する。
【0007】
特許文献3の情報処理装置は、ログ差分生成部とログ比較部とを有する。ログ差分生成部は、変更前のソースコードである第1のソースコードから生成される第1のプログラムを実行して得られるログと変更後のソースコードである第2のソースコードから生成される第2のプログラムを実行して得られるログとの間で発生すると推定される差分を、第1のソースコードと第2のソースコードとの差分に基づいて推定ログ差分として生成する。ログ比較部は、第1のプログラムを実行して得られたログと第2のプログラムを実行して得られたログとの差分を実行ログ差分として抽出し、推定ログ差分と実行ログ差分とを比較する。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2016‐42317号公報
【文献】国際公開WO2016/038741号
【文献】国際公開WO2018/122990号
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した従来技術では、車載ネットワークログはハードウェア的な実機の要因から時間軸情報のズレが生じ、その影響により出力結果も完全に一致することは不可能である。その結果、人による目視確認が必須となり、多大な工数が必要となる。
【0010】
本発明は、等価検証の効率化を図ることを目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の一側面となる等価検証方法は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する等価検証装置が実行する等価検証方法であって、前記等価検証方法は、前記プロセッサが、対象制御装置が制御装置群との間で送受信したデータおよび当該データの送受信時間を記録した第1ログに基づいて、前記対象制御装置の機能を実現する第1ソフトウェアに関する第1シミュレーションを実行することにより、前記対象制御装置が前記制御装置群との間で送受信したデータおよび当該データの送受信時間の各々にソフトウェア実行時間を記録した第2ログを生成する第1生成処理と、前記第1生成処理によって生成された第2ログに基づいて、前記第1ソフトウェアと同一機能を実現する第2ソフトウェアに関する第2シミュレーションを実行することにより、前記ソフトウェア実行時間に前記対象制御装置が前記制御装置群の中の送信先制御装置に送信したことを示す送信データを生成する第2生成処理と、前記第2生成処理によって生成された送信データと、前記ソフトウェア実行時間に前記対象制御装置が前送信先制御装置に送信したことを示す前記第2ログ内の送信データと、を照合し、照合結果を出力する照合処理と、を実行することを特徴とする。
【発明の効果】
【0012】
本発明の代表的な実施の形態によれば、等価検証の効率化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、等価検証装置のハードウェア構成例を示すブロック図である。
【
図2】
図2は、等価検証装置による等価検証例を示す説明図である。
【
図3】
図3は、車載ネットワークログファイルの一例を示す説明図である。
【
図4】
図4は、送受信IDデータバッファの一例を示す説明図である。
【
図5】
図5は、車載ネットワークシミュレーションログファイルの一例を示す説明図である。
【
図6】
図6は、車載ネットワーク台帳の一例を示す説明図である。
【
図7】
図7は、車載ネットワーク差分結果ログファイルの一例を示す説明図である。
【
図8】
図8は、不一致信号リスト結果ファイルの一例を示す説明図である。
【
図9】
図9は、車載ネットワークログ再生処理1の事前設定例を示す説明図である。
【
図10】
図10は、車載ネットワークログ再生処理1の一例を示すフローチャートである。
【
図11】
図11は、ステップS1001の具体例を示す説明図である。
【
図12】
図12は、ステップS1002の具体例1を示す説明図である。
【
図13】
図13は、ステップS1003の具体例1(前半)を示す説明図である。
【
図14】
図14は、ステップS1003の具体例1(後半)を示す説明図である。
【
図15】
図15は、ステップS1005の具体例を示す説明図である。
【
図16】
図16は、ステップS1006の具体例を示す説明図である。
【
図17】
図17は、ステップS1002の具体例2を示す説明図である。
【
図18】
図18は、ステップS1003の具体例2(前半)を示す説明図である。
【
図19】
図19は、ステップS1003の具体例2(後半)を示す説明図である。
【
図20】
図20は、車載ネットワークログ再生処理2の一例を示すフローチャートである。
【
図21】
図21は、ステップS2001の具体例を示す説明図である。
【
図22】
図22は、ステップS2002の具体例1を示す説明図である。
【
図23】
図23は、ステップS2003の具体例1(前半)を示す説明図である。
【
図24】
図24は、ステップS2003の具体例1(後半)を示す説明図である。
【
図25】
図25は、差分比較モジュールによる差分比較処理の一例を示すフローチャートである。
【
図26】
図26は、ステップS2501~S2503の具体例1を示す説明図である。
【
図27】
図27は、ステップS2501~S2503の具体例2を示す説明図である。
【
図28】
図28は、ステップS2006の具体例を示す説明図である。
【
図29】
図29は、ステップS2007の具体例を示す説明図である。
【
図30】
図30は、ステップS2002の具体例2を示す説明図である。
【
図31】
図31は、ステップS2003の具体例2(前半)を示す説明図である。
【
図32】
図32は、ステップS2003の具体例2(後半)を示す説明図である。
【
図33】
図33は、ステップS2501、S2502、S2504の具体例を示す説明図である。
【
図34】
図34は、ステップS2505の具体例1を示す説明図である。
【
図35】
図35は、ステップS2505の具体例2を示す説明図である。
【発明を実施するための形態】
【0014】
<等価検証装置のハードウェア構成例>
図1は、等価検証装置100のハードウェア構成例を示すブロック図である。等価検証装置100は、プロセッサ101と、記憶デバイス102と、入力デバイス103と、出力デバイス104と、通信インターフェース(通信IF)105と、を有する。プロセッサ101、記憶デバイス102、入力デバイス103、出力デバイス104、および通信IF105は、バス106により接続される。プロセッサ101は、等価検証装置100を制御する。記憶デバイス102は、プロセッサ101の作業エリアとなる。また、記憶デバイス102は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス102としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス103は、データを入力する。入力デバイス103としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス104は、データを出力する。出力デバイス104としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF105は、ネットワークと接続し、データを送受信する。
【0015】
また、記憶デバイス102は、車載ネットワークログファイル121と、車載ネットワークシミュレーションログファイル122と、車載ネットワーク台帳123と、車載ネットワーク差分結果ログファイル124と、不一致信号リスト結果ファイル125と、を記憶する。
【0016】
車載ネットワークログファイル121は、車両110のECU群111から取得されたデータである。車載ネットワークログファイル121は、たとえば、CANの規格に基づいたデータである。車載ネットワークシミュレーションログファイル122、車載ネットワーク差分結果ログファイル124、および不一致信号リスト結果ファイル125は、等価検証装置により生成されるデータである。車載ネットワーク台帳123は、車載ネットワークを流れる信号の仕様を規定するテーブルであり、あらかじめ設定される。車載ネットワーク台帳123は、等価検証装置100外で等価検証装置100がアクセス可能な他のコンピュータの記憶デバイス102に記憶されてもよい。
【0017】
また、記憶デバイス102は、送受信IDデータバッファ130を有する。送受信IDデータバッファは、変更前ECUソフトウェア141および変更後ECUソフトウェア142が受信したり送信したりするデータを一時的に保持する記憶領域である。変更前ECUソフトウェア141および変更後ECUソフトウェア142を区別しない場合には、単に、ECUソフトウェア140と表記する。
【0018】
また、記憶デバイス102は、変更前ECUソフトウェア141、変更後ECUソフトウェア142、車載ネットワークログ再生モジュール150、および差分比較モジュール160を記憶する。変更前ECUソフトウェア141は、等価検証対象となるECUの機能を実現するソフトウェアである。変更後ECUソフトウェア142は、変更前ECUソフトウェア141をリファクタリングしたソフトウェアである。したがって、変更後ECUソフトウェア142は、変更前ECUソフトウェア141と同一機能を実現するが、コードや変数が異なっている。また、たとえば、変更前ECUソフトウェア141のある機能がスパゲッティコードで記述されているが、変更後ECUソフトウェア142では当該ある機能が関数化されている。
【0019】
車載ネットワークログ再生モジュール150は、車載ネットワークログファイル121を再生するソフトウェアモジュールである。車載ネットワークログ再生モジュール150の詳細な処理内容は、
図9および
図20で後述する。差分比較モジュール160は、同一ECUから送信されるデータを比較して差分があるか否かを判定するモジュールである。差分比較モジュール160の詳細な処理内容は、
図21で後述する。
【0020】
<等価検証例>
図2は、等価検証装置100による等価検証例を示す説明図である。等価検証装置100は、第1シミュレーション環境201と、第2シミュレーション環境202と、を構築する。第1シミュレーション環境201は、変更前ECUソフトウェア141を実行し、第2シミュレーション環境202は、変更後ECUソフトウェア142を実行する。
【0021】
第1シミュレーション環境201で用いられる送受信IDデータバッファ130および車載ネットワークログ再生モジュール150をそれぞれ、送受信IDデータバッファ131および車載ネットワークログ再生モジュール151と表記する。第2シミュレーション環境202で用いられる送受信IDデータバッファ130および車載ネットワークログ再生モジュール150をそれぞれ、送受信IDデータバッファ132および車載ネットワークログ再生モジュール152と表記する。
【0022】
第1シミュレーション環境201において、車載ネットワークログ再生モジュール151は、車載ネットワークログファイル121を取得し、変更前ECUソフトウェア141に渡す。変更前ECUソフトウェア141は、車載ネットワークログ再生モジュール151からの受信データを送受信IDデータバッファ131に書き込み、変更前ECUソフトウェア141が生成した送信データを送受信IDデータバッファ131に書き込む。車載ネットワークログ再生モジュール151は、送受信IDデータバッファ131から読み込んだデータにシミュレーション実行時間を付与して、車載ネットワークシミュレーションログファイル122として出力する。
【0023】
第2シミュレーション環境202において、車載ネットワークログ再生モジュール152は、車載ネットワークシミュレーションログファイル122を取得し、変更後ECUソフトウェア142に渡す。変更後ECUソフトウェア142は、車載ネットワークログ再生モジュール152からの受信データを送受信IDデータバッファ132に書き込み、変更後ECUソフトウェア142が生成した送信データを送受信IDデータバッファ132に書き込む。車載ネットワークログ再生モジュール152は、送受信IDデータバッファ132から読み込んだ送信データを車載ネットワーク差分結果ログファイル124に書き出す。
【0024】
差分比較モジュール160は、車載ネットワーク差分結果ログファイル124に書き出した送信データと、変更後ECUソフトウェア142が生成した送信データと、を比較する。一致していれば照合結果は「OK」となり、不一致であれば照合結果は「NG」となる。このように、両シミュレーション環境201,202から時間情報のズレが吸収された送信データが取得される。この時間情報のズレが吸収された両送信データを照合した差分結果を出力することにより、人による確認工数が削減される。
【0025】
なお、
図2では、等価検証装置100は、第1シミュレーション環境201に変更前ECUソフトウェア141を構築し、第2シミュレーション環境202に変更後ECUソフトウェア142を構築したが、第1シミュレーション環境201に変更後ECUソフトウェア142を構築し、第2シミュレーション環境202に変更前ECUソフトウェア141を構築してもよい。たとえば、変更後ECUソフトウェア142が、変更前ECUソフトウェア141よりも改悪された場合に有効である。
【0026】
<各種データ>
図1に示した車載ネットワークログファイル121、車載ネットワークシミュレーションログファイル122、車載ネットワーク台帳123、車載ネットワーク差分結果ログファイル124、不一致信号リスト結果ファイル125、および送受信IDデータバッファ130について、
図3~
図8を用いて説明する。
【0027】
図3は、車載ネットワークログファイル121の一例を示す説明図である。車載ネットワークログファイル121は、フィールドとして、送受信時間301と、ID302と、送信/受信303と、データ304と、を有する。同一行の各フィールドの値の組み合わせが、車載ネットワークを流れる1つの送信データまたは受信データの車載ネットワークログを規定するエントリとなる。
【0028】
送受信時間301は、値として、その車載ネットワークログを送信または受信した時刻を記憶するフィールドである。なお、以降、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、送受信時間301の値を、送受信時間301と表記する。
【0029】
ID302は、値として、その車載ネットワークログを示すデータを送信または受信したECUの識別情報を記憶するフィールドである。送信/受信303は、値として、その車載ネットワークログを示すデータを、ECUソフトウェア140の機能を実現する等価検証対象のECUが送信したか受信したかを示す情報を記憶するフィールドである。「送信」であれば、そのエントリは、等価検証対象のECUがID302で特定されるECUに送信したデータであり、「受信」であれば、そのエントリは、等価検証対象のECUがID302で特定されるECUから受信したデータである。データ304は、値として、その車載ネットワークログを示すデータの値とその位置(1Byte、2Byte、…、NByte)をバイト単位で記憶するフィールドである。
【0030】
図4は、送受信IDデータバッファ130の一例を示す説明図である。送受信IDデータバッファ130は、フィールドとして、ID302と、送信/受信303と、データ長401と、データ402と、を有する。同一行の各フィールドの値の組み合わせが、送受信IDデータを規定するエントリとなる。データ長401は、その送受信IDデータの長さを示す。データ402は、値として、その送受信IDデータの値とその位置(1Byte、2Byte、…、NByte)をバイト単位で記憶するフィールドである。
【0031】
図5は、車載ネットワークシミュレーションログファイル122の一例を示す説明図である。車載ネットワークシミュレーションログファイル122は、車載ネットワークログファイル121と同一フィールド301~304を有する。ただし、各フィールド301~304の値は、第1シミュレーション環境201の車載ネットワークログ再生モジュール151からの出力結果となる。同一行の各フィールドの値の組み合わせが、車載ネットワークを流れる1つの送信データまたは受信データの車載ネットワークシミュレーションログを規定するエントリとなる。
【0032】
図6は、車載ネットワーク台帳123の一例を示す説明図である。車載ネットワーク台帳123は、フィールドとして、ID302と、送受信周期601と、位置602と、ビット幅603と、信号名604と、ファクタ605と、単位606と、最大値607と、最小値608と、を有する。同一行の各フィールドの値の組み合わせが、信号名604で特定される1つの信号の仕様を規定するエントリとなる。
【0033】
ID302は、ECUを一意に特定する識別情報であるため、当該ECUが受信可能な信号が複数あれば、1つのID302は複数のエントリに含まれる。送受信周期601は、値として、そのECUがその信号を含むデータを送信または受信する周期を記憶するフィールドである。位置602は、フィールドとして、その信号がその信号を含む受信データのどの位置602(バイト位置およびビット位置)に格納されているかを示す位置情報を記憶するフィールドである。
【0034】
ビット幅603は、値として、その信号を含む受信データ内でのその信号を示すビット列の幅を記憶するフィールドである。信号名604は、値として、その信号の種類をあらわす名称を記憶するフィールドである。
【0035】
ファクタ605は、値として、信号の物理値を正規化するための数値である。たとえば、信号の物理値の単位606が[km/s]で、かつ、第2シミュレーション環境202から[m/s]で当該物理量を出力させたい場合に、車載ネットワーク台帳123の当該信号のファクタ605に「0.001」が設定される。これにより、物理量の正規化が可能となる。したがって、第2シミュレーション環境202からは、[km/s]ではなく[m/s]の単位606で物理量のデータが出力される。
【0036】
単位606は、値として、その信号をあらわす物理量の測定基準(rpm、%、m/sなど)を記憶するフィールドである。最大値607は、値として、その信号が採りうる最大の値(上限値)を記憶するフィールドである。最小値608は、値として、その信号が採りうる最小の値(下限値)を記憶するフィールドである。
【0037】
図7は、車載ネットワーク差分結果ログファイル124の一例を示す説明図である。車載ネットワーク差分結果ログファイル124は、フィールドとして、照合結果701と、送受信時間301と、ID302と、送信/受信303と、出力データ702と、入力データ703と、不一致信号名704と、を有する。同一行の各フィールドの値の組み合わせが、1つの車載ネットワーク差分結果ログを規定するエントリとなる。
【0038】
照合結果701は、送信データ(送信/受信303が「送信」)のエントリの出力データ702と入力データ703との比較した結果である。一致していれば照合結果701は「OK」となり、不一致であれば照合結果701は「NG」となる。
【0039】
出力データ702は、変更後ECUソフトウェア142の実行結果である。入力データ703は、車載ネットワークシミュレーションログファイル122から読み出された特定の送受信時間内のデータ(読込データ)である。ID302および位置602が同じ出力データ702と入力データ703とが比較される。
【0040】
不一致信号名704は、照合結果701が「NG」である信号の名称である。具体的には、たとえば、不一致信号名704は、車載ネットワーク台帳123における、照合結果701が「NG」であるID302と同一で、かつ、出力データ702(または入力データ703)の位置が位置602に対応するエントリの信号名である。
【0041】
図8は、不一致信号リスト結果ファイル125の一例を示す説明図である。不一致信号リスト結果ファイル125は、NGデータ件数801と、不一致信号リスト802と、を含む。NGデータ件数801は、車載ネットワーク差分結果ログファイル124において照合結果701が「NG」となったエントリ数である。不一致信号リスト802は、車載ネットワーク差分結果ログファイル124において照合結果701が「NG」となった各エントリからID302、位置602、ビット幅603、および信号名604を抽出したリストである。
【0042】
<車載ネットワークログ再生処理1>
つぎに、
図9~
図19を用いて、車載ネットワークログ再生処理1について説明する。車載ネットワークログ再生処理1は、たとえば、プロセッサ101が、第1シミュレーション環境201の車載ネットワークログ再生モジュール151に実行させる処理である。
【0043】
図9は、車載ネットワークログ再生処理1の事前設定例を示す説明図である。(A)は、車載ネットワークログ再生処理1に適用される車載ネットワークログファイル121の一例を示す。なお、1Byteデータ304は、データ304の1Byteの位置の値である。車載ネットワークログファイル121は、変更前ECUソフトウェア141で使用される。
【0044】
(B)は、送受信IDデータバッファ131の記憶内容例を示す。ID302および送信/受信303には、車載ネットワークログファイル121のID302および送信/受信303が記録される。データ402の初期値は、“0”とする。
【0045】
図10は、車載ネットワークログ再生処理1の一例を示すフローチャートである。プロセッサは、前回ECUソフトウェア実行時間に初期値を設定し、ECUソフトウェア実行時間に、当該初期値とECUソフトウェア実行周期時間とを加算した値を設定する(ステップS1001)。ステップS1001を具体例を挙げて説明する。
【0046】
図11は、ステップS1001の具体例を示す説明図である。ECUソフトウェア実行周期時間1100を、たとえば、10[ms]とする。前回ECUソフトウェア実行時間1101は、変更前ECUソフトウェア141による前回の実行時間である。初回の場合、前回が存在しないため、初期値として、たとえば、0.001[s]が設定される。
図9(A)に示した車載ネットワークログファイル121内の先頭エントリの送受信時間301である0.001021[s]を初期値にしてもよい。なお、当該初期値は、先頭エントリの送受信時間301以下の値とする。
【0047】
また、プロセッサ101は、前回ECUソフトウェア実行時間1101(の初期値)と、ECUソフトウェア実行周期時間1100と、を加算して、ECUソフトウェア実行時間1102を算出する。このようにして、前回ECUソフトウェア実行時間1101の初期値と、ECUソフトウェア実行時間1102とが設定される。
【0048】
図10に戻り、プロセッサ101は、車載ネットワークログファイル121から、送受信時間301が、前回ECUソフトウェア実行時間1101よりも大きく、かつ、ECUソフトウェア実行時間1102以下の範囲内のデータを読み込む(ステップS1002)。ステップS1002を具体例を挙げて説明する。
【0049】
図12は、ステップS1002の具体例1を示す説明図である。車載ネットワークログファイル121から、送受信時間301が、前回ECUソフトウェア実行時間1101である0.001[s]よりも大きく、かつ、ECUソフトウェア実行時間1102である0.011[s]以下の範囲内のエントリが、読込データ1200として読み込まれる。
【0050】
図10に戻り、プロセッサ101は、読込データ1200が受信データであれば、送受信IDデータバッファ内の受信データに設定して、車載ネットワークシミュレーションログファイル122へ書き込む。また、プロセッサ101は、読込データ1200が送信データであれば、送受信IDデータバッファ131内の送信データで読込データ1200の送信データを上書きし、車載ネットワークシミュレーションログファイル122へ書き込む(ステップS1003)。ステップS1003を具体例を挙げて説明する。
【0051】
図13は、ステップS1003の具体例1(前半)を示す説明図である。プロセッサ101は、読込データ1200のうち送信/受信303が「受信」であるエントリの1Byteデータ304(受信データ)を、送受信IDデータバッファ131におけるID302および送信/受信303が一致するエントリの1Byteデータ402に上書きする。
【0052】
図13の例では、送受信IDデータバッファ131のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「00」が、読込データ1200のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「01」に上書きされる。
【0053】
送受信IDデータバッファのID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「00」が、読込データ1200のID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「10」に上書きされる。
【0054】
送受信IDデータバッファのID302が「CCC」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「00」が、読込データ1200のID302が「CCC」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「02」に上書きされる。
【0055】
また、プロセッサ101は、読込データ1200のうち送信/受信303が「送信」であるエントリの1Byteデータ304(送信データ)を、送受信IDデータバッファ131におけるID302および送信/受信303が一致するエントリの1Byteデータ402で上書きする。上書き後の読込データ1200を、読込データ1300とする。
【0056】
図13の例では、読込データのID302が「XXX」でかつ送信/受信303が「送信」であるエントリの1Byteデータ304の値「20」が、送受信IDデータバッファのID302が「XXX」でかつ送信/受信303が「送信」であるエントリの1Byteデータ402の値「00」に上書きされる。
【0057】
読込データのID302が「YYY」でかつ送信/受信303が「送信」であるエントリの1Byteデータ304の値「00」が、送受信IDデータバッファのID302が「YYY」でかつ送信/受信303が「送信」であるエントリの1Byteデータ402の値「00」に上書きされる。
【0058】
これにより、読込データ1200内の受信データが送受信IDデータバッファ131に設定され、読込データ1200内の送信データが送受信IDデータバッファ131内の送信データで上書きされる。
【0059】
図14は、ステップS1003の具体例1(後半)を示す説明図である。プロセッサ101は、読込データ1300を、車載ネットワークシミュレーションログファイル122に書き込む。また、プロセッサ101は、車載ネットワークシミュレーションログファイル122に書き込まれたエントリの送受信時間301に、ECUソフトウェア実行時間1102である0.011[s]を書き込む。これにより、読込データ1200の送受信時間のズレが、ECUソフトウェア実行時間1102に吸収される。
【0060】
図10に戻り、プロセッサ101は、車載ネットワークログファイル121に未処理のログがあるか否かを判断する(ステップS1004)。未処理のログとは、ステップS1002で読み込まれていない車載ネットワークログである。
【0061】
未処理のログがある場合(ステップS1004:Yes)、ステップS1005に移行し、未処理のログがない場合(ステップS1001:No)、車載ネットワークログ再生処理1が終了する。
図12では、読込データ1200として読み込まれていないエントリが車載ネットワークログファイル121にまだ存在するため、ステップS1005に移行する。
【0062】
ステップS1005では、プロセッサ101は、変更前ECUソフトウェア141を実行する(ステップS1005)。ステップS1005を具体例を挙げて説明する。
【0063】
図15は、ステップS1005の具体例を示す説明図である。プロセッサ101は、送受信IDデータバッファ131の受信データを読み込んで、変更前ECUソフトウェア141の1周期分を実行する。具体的には、たとえば、プロセッサ101は、送受信IDデータバッファの送信/受信303が「受信」であるエントリの1Byteデータ402(“01”、“10”、“02”)を、それぞれ同エントリのID302(AAA,BBB,CCC)からの受信データとして読み込む。
【0064】
プロセッサ101は、変更前ECUソフトウェア141の実行結果を送受信IDデータバッファに書き込む。変更前ECUソフトウェア141の実行結果は、変更前ECUソフトウェア141内部の送信データであり、ここでは、たとえば、ID302がXXX、YYYのECUに送信される1Byteデータ(“30”、“00”)とする。したがって、プロセッサ101は、ID302がXXX、YYYのエントリの1Byteデータ402に、“30”および“00”を書き込む。
【0065】
図10に戻り、プロセッサ101は、前回ECUソフトウェア実行時間1101およびECUソフトウェア実行時間1102をそれぞれ更新し(ステップS1006)、ステップS1002に戻る。ステップS1006を具体例を挙げて説明する。
【0066】
図16は、ステップS1006の具体例を示す説明図である。(A)は、前回ECUソフトウェア実行時間1101の更新例を示す。すなわち、次回の変更前ECUソフトウェア141の実行では、ECUソフトウェア実行時間1102が前回ECUソフトウェア実行時間1101になる。プロセッサ101は、前回ECUソフトウェア実行時間1101をECUソフトウェア実行時間1102で更新する。たとえば、前回ECUソフトウェア実行時間1101が0.001[s]で、ECUソフトウェア実行時間1102が0.011[s]であれば、更新後の前回ECUソフトウェア実行時間1601は、0.011[s]になる。
【0067】
(B)は、ECUソフトウェア実行時間1102の更新例を示す。プロセッサ101は、ECUソフトウェア実行時間1102にECUソフトウェア実行周期時間1100を加算することにより、ECUソフトウェア実行時間1102の値を、0.011[s]から0.021[s]に更新する。更新後のECUソフトウェア実行時間1102をECUソフトウェア実行時間1602とする。
【0068】
これにより、ステップS1002では、プロセッサ101は、車載ネットワークログファイル121から、送受信時間301が、前回ECUソフトウェア実行時間1601よりも大きく、かつ、ECUソフトウェア実行時間1602以下の範囲内のデータを読み込むことになる。
【0069】
図17は、ステップS1002の具体例2を示す説明図である。車載ネットワークログファイル121から、送受信時間301が、前回ECUソフトウェア実行時間1601である0.011[s]よりも大きく、かつ、ECUソフトウェア実行時間1602である0.021[s]以下の範囲内のエントリが、読込データ1700として読み込まれる。
【0070】
図18は、ステップS1003の具体例2(前半)を示す説明図である。プロセッサ101は、読込データ1700のうち送信/受信303が「受信」であるエントリの1Byteデータ304(受信データ)を、送受信IDデータバッファ131におけるID302および送信/受信303が一致するエントリの1Byteデータ402に上書きする。
【0071】
図18の例では、送受信IDデータバッファ131のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「01」が、読込データ1700のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「05」に上書きされる。
【0072】
送受信IDデータバッファのID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「10」が、読込データ1700のID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「20」に上書きされる。
【0073】
また、プロセッサ101は、読込データ1700のうち送信/受信303が「送信」であるエントリの1Byteデータ304(送信データ)を、送受信IDデータバッファ131におけるID302および送信/受信303が一致するエントリの1Byteデータ402で上書きする。上書き後の読込データ1700を、読込データ1800とする。
【0074】
図18の例では、読込データ1700のID302が「XXX」、送信/受信303が「送信」であるエントリの1Byteデータ304の値「20」が、送受信IDデータバッファ131のID302が「XXX」、送信/受信303が「送信」であるエントリの1Byteデータ402の値「30」に上書きされる。
【0075】
これにより、読込データ1700内の受信データが送受信IDデータバッファ131に設定され、読込データ1700内の送信データが送受信IDデータバッファ131内の送信データで上書きされる。
【0076】
図19は、ステップS1003の具体例2(後半)を示す説明図である。プロセッサ101は、読込データ1800を、車載ネットワークシミュレーションログファイル122に書き込む。また、プロセッサ101は、車載ネットワークシミュレーションログファイル122に書き込まれたエントリの送受信時間301に、ECUソフトウェア実行時間1602である0.021[s]を書き込む。これにより、読込データ1700の送受信時間のズレが、ECUソフトウェア実行時間1602に吸収される。
【0077】
図17では、読込データ1200,1700として読み込まれていないエントリが車載ネットワークログに存在しないため(ステップS1004:No)、車載ネットワークログ再生処理1が終了する。
【0078】
<車載ネットワークログ再生処理2>
つぎに、
図20~
図35を用いて、車載ネットワークログ再生処理2について説明する。車載ネットワークログ再生処理2は、たとえば、プロセッサ101が、第2シミュレーション環境202の車載ネットワークログ再生モジュール152に実行させる処理である。送受信IDデータバッファ132の初期状態は、
図9(B)と同じである。
【0079】
図20は、車載ネットワークログ再生処理2の一例を示すフローチャートである。プロセッサ101は、ステップS1001と同様、前回ECUソフトウェア実行時間に初期値を設定し、ECUソフトウェア実行時間に、当該初期値とECUソフトウェア実行周期時間とを加算した値を設定する(ステップS2001)。ステップS2001を具体例を挙げて説明する。
【0080】
図21は、ステップS2001の具体例を示す説明図である。車載ネットワークログ再生処理1と同様、ECUソフトウェア実行周期時間1100を、たとえば、10[ms]とする。前回ECUソフトウェア実行時間2101は、変更後ECUソフトウェア142による前回の実行時間である。初回の場合、前回が存在しないため、初期値として、たとえば、車載ネットワークログ再生処理1と同じ0.001[s]が設定される。車載ネットワークログ再生処理1と同じ値であれば、
図9(A)に示した車載ネットワークログファイル121内の先頭エントリの送受信時間301である0.001021[s]を初期値にしてもよい。なお、当該初期値は、先頭エントリの送受信時間301以下の値とする。
【0081】
また、プロセッサ101は、前回ECUソフトウェア実行時間2101(の初期値)と、ECUソフトウェア実行周期時間1100と、を加算して、ECUソフトウェア実行時間2102を算出する。このようにして、前回ECUソフトウェア実行時間2101の初期値と、ECUソフトウェア実行時間2102とが設定される。
【0082】
図20に戻り、プロセッサ101は、車載ネットワークシミュレーションログファイル122から、送受信時間301が、前回ECUソフトウェア実行時間2101よりも大きく、かつ、ECUソフトウェア実行時間2102以下の範囲内のデータを読み込む(ステップS2002)。ステップS2002を具体例を挙げて説明する。
【0083】
図22は、ステップS2002の具体例1を示す説明図である。車載ネットワークログファイル121から、送受信時間301が、前回ECUソフトウェア実行時間2101である0.001[s]よりも大きく、かつ、ECUソフトウェア実行時間2102である0.011[s]以下の範囲内のエントリが、読込データ2200として読み込まれる。
【0084】
図20に戻り、プロセッサ101は、読込データ2200のうち受信データを、送受信IDデータバッファ132内の受信データに設定して、車載ネットワーク差分結果ログファイル124の出力データ702へ書き込む。ステップS2003を具体例を挙げて説明する。
【0085】
図23は、ステップS2003の具体例1(前半)を示す説明図である。プロセッサ101は、読込データ2200のうち送信/受信303が「受信」であるエントリの1Byteデータ304(受信データ)を、送受信IDデータバッファ132におけるID302および送信/受信303が一致するエントリの1Byteデータ402に上書きする。
【0086】
図23の例では、送受信IDデータバッファ132のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「00」が、読込データ2200のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「01」に上書きされる。
【0087】
送受信IDデータバッファ132のID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「00」が、読込データ2200のID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「10」に上書きされる。
【0088】
送受信IDデータバッファ132のID302が「CCC」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「00」が、読込データ2200のID302が「CCC」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「02」に上書きされる。これにより、読込データ2200内の受信データが送受信IDデータバッファ132に設定される。
【0089】
図24は、ステップS2003の具体例1(後半)を示す説明図である。プロセッサ101は、読込データ2200を、車載ネットワーク差分結果ログファイル124のID302、送信/受信303および出力データ702に書き込む。また、プロセッサ101は、車載ネットワーク差分結果ログファイル124に書き込まれたエントリの送受信時間301に、ECUソフトウェア実行時間2102である0.011[s]を書き込む。これにより、読込データ1200の送受信時間301が、車載ネットワーク差分結果ログファイル124の送受信時間301と一致する。
図20に戻り、プロセッサ101は、差分比較モジュール160を呼び出す(ステップS2004)。
【0090】
図25は、差分比較モジュール160による差分比較処理の一例を示すフローチャートである。プロセッサ101は、読み込んだ送信データと、送受信IDデータバッファ132内の送信データとを、ID302をキーとして比較する(ステップS2501)。差分がない場合(ステップS2502:No)、読み込んだ送信データを車載ネットワーク差分結果ログファイル124の出力データ702に書き出し、該当エントリの照合結果701に「OK」を書き込み(ステップS2503)、
図20のステップS2005に移行する。ステップS2501~S2503を具体例を挙げて説明する。
【0091】
図26は、ステップS2501~S2503の具体例1を示す説明図である。読み込んだ送信データとは、読込データ2200のうち、送信/受信303が「送信」であるエントリが示すデータである。具体的には、たとえば、プロセッサ101は、ID302の値「XXX」をキーにして、読込データ2200内の送信データを示すエントリ2601と、送受信IDデータバッファ132内の送信データを示すエントリ2602とを比較する(ステップS2501)。
【0092】
この場合、エントリ2601の1Byteデータ304とエントリ2602の1Byteデータ402とは一致する(ステップS2502:No)。したがって、プロセッサ101は、車載ネットワーク差分結果ログファイル124のID302、送信/受信303および出力データ702に、一致した送信データを書き込み、かつ、当該書き込んだエントリの照合結果701に「OK」を書き込む。また、プロセッサ101は、車載ネットワーク差分結果ログファイル124に書き込まれたエントリの送受信時間に、ECUソフトウェア実行時間2102である0.011[s]を書き込む(ステップS2503)。
【0093】
図27は、ステップS2501~S2503の具体例2を示す説明図である。
図26と同様、プロセッサ101は、ID302の値「YYY」をキーにして、読込データ2200内の送信データを示すエントリ2701と、送受信IDデータバッファ132内の送信データを示すエントリ2702とを比較する(ステップS2501)。
【0094】
この場合、エントリ2701の1Byteデータ304とエントリ2702の1Byteデータ402とは一致する(ステップS2502:No)。したがって、プロセッサ101は、車載ネットワーク差分結果ログファイル124のID302、送信/受信303および出力データ702に、一致した送信データを書き込み、かつ、当該書き込んだエントリの照合結果701に「OK」を書き込む。また、プロセッサ101は、車載ネットワーク差分結果ログファイル124に書き込まれたエントリの送受信時間301に、ECUソフトウェア実行時間2102である0.011[s]を書き込む(ステップS2503)。
【0095】
図20に戻り、プロセッサ101は、車載ネットワークシミュレーションログファイル122に未処理のログがあるか否かを判断する(ステップS2005)。未処理のログとは、ステップS2002で読み込まれていない車載ネットワークシミュレーションログである。
【0096】
未処理のログがある場合(ステップS2005:Yes)、ステップS1005に移行し、未処理のログがない場合(ステップS2005:No)、車載ネットワークログ再生処理2が終了する。
図22では、読込データ2200として読み込まれていないエントリが車載ネットワークシミュレーションログファイル122にまだ存在するため、ステップS2006に移行する。
【0097】
ステップS2006では、プロセッサ101は、変更後ECUソフトウェア142を実行する(ステップS2006)。ステップS2006を具体例を挙げて説明する。
【0098】
図28は、ステップS2006の具体例を示す説明図である。プロセッサ101は、送受信IDデータバッファ132の受信データを読み込んで、変更後ECUソフトウェア142の1周期分を実行する。具体的には、たとえば、プロセッサ101は、送受信IDデータバッファ132の送信/受信303が「受信」であるエントリの1Byteデータ402(“01”、“10”、“02”)を、それぞれ同エントリのID302(AAA,BBB,CCC)からの受信データとして読み込む。
【0099】
プロセッサ101は、変更後ECUソフトウェア142の実行結果を送受信IDデータバッファ132に書き込む。変更後ECUソフトウェア142の実行結果は、変更後ECUソフトウェア142内部の送信データであり、ここでは、たとえば、ID302がXXX、YYYのECUに送信される1Byteデータ(“30”、“00”)とする。したがって、プロセッサ101は、ID302がXXX、YYYのエントリの1Byteデータ402に、“30”および“00”を書き込む。
【0100】
図20に戻り、プロセッサ101は、前回ECUソフトウェア実行時間2101およびECUソフトウェア実行時間2102をそれぞれ更新し(ステップS2007)、ステップS2002に戻る。ステップS2007を具体例を挙げて説明する。
【0101】
図29は、ステップS2007の具体例を示す説明図である。(A)は、前回ECUソフトウェア実行時間2101の更新例を示す。すなわち、次回の変更前ECUソフトウェア141の実行では、ECUソフトウェア実行時間2102が前回ECUソフトウェア実行時間2101になる。
【0102】
プロセッサ101は、前回ECUソフトウェア実行時間2101をECUソフトウェア実行時間2102で更新する。たとえば、前回ECUソフトウェア実行時間2101が0.001[s]で、ECUソフトウェア実行時間2102が0.011[s]であれば、更新後の前回ECUソフトウェア実行時間2901は、0.011[s]になる。
【0103】
(B)は、ECUソフトウェア実行時間2102の更新例を示す。プロセッサ101は、ECUソフトウェア実行時間2102にECUソフトウェア実行周期時間1100を加算することにより、ECUソフトウェア実行時間2102の値を、0.011[s]から0.021[s]に更新する。更新後のECUソフトウェア実行時間2102をECUソフトウェア実行時間2902とする。
【0104】
これにより、ステップS2002では、プロセッサ101は、車載ネットワークシミュレーションログファイル122から、送受信時間301が、前回ECUソフトウェア実行時間2901よりも大きく、かつ、ECUソフトウェア実行時間2902以下の範囲内のデータを読み込むことになる。
【0105】
図30は、ステップS2002の具体例2を示す説明図である。車載ネットワークシミュレーションログファイル122から、送受信時間301が、前回ECUソフトウェア実行時間2901である0.011[s]よりも大きく、かつ、ECUソフトウェア実行時間2902である0.021[s]以下の範囲内のエントリが、読込データ3000として読み込まれる。
【0106】
図31は、ステップS2003の具体例2(前半)を示す説明図である。プロセッサ101は、読込データ3000のうち送信/受信303が「受信」であるエントリの1Byteデータ304(受信データ)を、送受信IDデータバッファ132におけるID302および送信/受信303が一致するエントリの1Byteデータ402に上書きする。
【0107】
図31の例では、送受信IDデータバッファ132のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「01」が、読込データ1700のID302が「AAA」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「05」に上書きされる。
【0108】
送受信IDデータバッファ132のID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ402の値「10」が、読込データ1700のID302が「BBB」でかつ送信/受信303が「受信」であるエントリの1Byteデータ304の値「20」に上書きされる。これにより、読込データ3000内の受信データが送受信IDデータバッファ132に設定される。
【0109】
図32は、ステップS2003の具体例2(後半)を示す説明図である。プロセッサ101は、読込データ3000を、車載ネットワーク差分結果ログファイル124のID302、送信/受信303および出力データ702に書き込む。また、プロセッサ101は、車載ネットワーク差分結果ログファイル124に書き込まれたエントリの送受信時間301に、ECUソフトウェア実行時間2902である0.021[s]を書き込む。これにより、読込データ1200の送受信時間が、車載ネットワーク差分結果ログファイル124の送受信時間と一致する。
図20に戻り、プロセッサ101は、差分比較モジュール160を呼び出す(ステップS2004)。
【0110】
図25のステップS2502において、差分がある場合(ステップS2502:Yes)、プロセッサ101は、車載ネットワーク差分結果ログファイル124の出力データ702と入力データ703に比較したデータを書き出し、該当エントリに照合結果701として「NG」を書き出す(ステップS2504)。
【0111】
そして、プロセッサ101は、車載ネットワーク台帳123から差分箇所となるID302および位置を特定し、車載ネットワーク差分結果ログファイル124に不一致信号名704を追記し、不一致信号リスト結果ファイル125のNGデータ件数801および不一致信号リスト802を更新する(ステップS2505)。そして、
図20のステップS2005に移行する。ステップS2501、S2502、S2504、S2505を具体例を挙げて説明する。
【0112】
図33は、ステップS2501、S2502、S2504の具体例を示す説明図である。読み込んだ送信データとは、読込データ3000のうち、送信/受信303が「送信」であるエントリが示すデータである。具体的には、たとえば、プロセッサ101は、ID302の値「XXX」をキーにして、読込データ3000内の送信データを示すエントリ3301と、送受信IDデータバッファ132内の送信データを示すエントリ3302とを比較する(ステップS2501)。
【0113】
この場合、エントリ3301の1Byteデータ304とエントリ3302の1Byteデータ402とは一致しない(ステップS2502:Yes)。したがって、プロセッサ101は、車載ネットワーク差分結果ログファイル124に、キーとなるID302および送信/受信303の「送信」を書き込み、出力データ702にエントリ3302の1Byteデータ402の“33”、入力データ703にエントリ3301の1Byteデータ304の“30”を書き込み、かつ、当該書き込んだエントリの照合結果701に「NG」を書き込む。また、プロセッサ101は、車載ネットワーク差分結果ログファイル124に書き込まれたエントリ3303の送受信時間に、ECUソフトウェア実行時間2902である0.021[s]を書き込む(ステップS2504)。
【0114】
図34は、ステップS2505の具体例1を示す説明図である。S2505では、プロセッサ101は、照合結果701がNGとなったエントリのID302から、車載ネットワーク台帳123で参照すべきID302を特定し、照合結果701がNGとなったエントリの出力データ702(または入力データ703)から車載ネットワーク台帳123で参照すべき位置602を特定する。
図34では、ID302が「XXX」で位置が「0」Byte、「0」Bit、ビット幅603が「8」であるエントリ3400が特定される。プロセッサ101は、エントリ3400から信号名604を取得し、照合結果701がNGのエントリ3303の不一致信号名704に取得した信号名を追記する。
【0115】
図35は、ステップS2505の具体例2を示す説明図である。S2505では、さらに、プロセッサ101は、不一致信号リスト結果ファイル125のNGデータ件数801および不一致信号リスト802を更新する。今回、照合結果701がNGのエントリとしてエントリ3303が検出されたため、NGデータ件数801は「0」から「1」に更新される。また、不一致信号リスト802には、車載ネットワーク台帳123において特定されたエントリ3400のID302、位置、ビット幅および信号名からなるエントリが追記される。なお、送信データには1以上の信号が含まれるため、NGデータ件数801よりも不一致信号リスト802のエントリ数が多くなることもある。
【0116】
上述した実施例にかかる等価検証方法は、下記(1)~(8)として構成することもできる。
【0117】
(1)プログラムを実行するプロセッサ101と、プログラムを記憶する記憶デバイス102と、を有する等価検証装置が実行する等価検証方法は、プロセッサ101が、対象ECUがECU群との間で送受信したデータおよび当該データの送受信時間301を記録した車載ネットワークログファイル121に基づいて、対象ECUの機能を実現する変更前ECUソフトウェアに関する第1シミュレーションを実行することにより、対象ECUがECU群との間で送受信したデータおよび当該データの送受信時間301の各々にソフトウェア実行時間を記録した車載ネットワークシミュレーションログファイル122を生成する第1生成処理(車載ネットワークログ再生モジュール151)と、第1生成処理によって生成された車載ネットワークシミュレーションログファイル122に基づいて、変更前ECUソフトウェアと同一機能を実現する変更後ECUソフトウェアに関する第2シミュレーションを実行することにより、ソフトウェア実行時間に対象ECUがECU群の中の送信先ECUに送信したことを示す送信データを生成する第2生成処理(車載ネットワークログ再生モジュール152)と、第2生成処理によって生成された送信データと、ソフトウェア実行時間に対象ECUが前送信先ECUに送信したことを示す車載ネットワークシミュレーションログファイル122内の送信データと、を照合し、照合結果701を出力する照合処理(差分比較モジュール160)と、を実行する。
【0118】
(2)上記(1)において、変更後ECUソフトウェアは、変更前ECUソフトウェアをリファクタリングしたソフトウェアである。
【0119】
(3)上記(1)において、照合処理では、プロセッサ101は、両送信データに差分がない判定した場合、照合結果701として両送信データに差分がないことを示す情報を出力する。
【0120】
(4)上記(1)において、照合処理では、プロセッサ101は、両送信データに差分があると判定した場合、照合結果701として両送信データに差分があることを示す情報を出力する。
【0121】
(5)上記(1)において、第2生成処理では、プロセッサ101は、送信データと、照合結果701と、を関連付けた車載ネットワーク差分結果ログファイル124を生成する。
【0122】
(6)上記(5)において、第2生成処理では、プロセッサ101は、照合結果701が両送信データに差分があることを示す情報である場合、照合結果701の件数(NGデータ件数801)を出力する。
【0123】
(7)上記(5)において、プロセッサ101は、ECU群の各々のECUと、対象ECUからECUに送信されるデータに含まれる信号の名称と、を対応付けた車載ネットワーク台帳123にアクセス可能であり、第2生成処理では、プロセッサ101は、照合結果701が両送信データに差分があることを示す情報である場合、車載ネットワーク台帳123を参照して、送信データに対応する特定の信号の名称を取得し、送信データと照合結果701と特定の信号の名称とを関連付けて車載ネットワーク差分結果ログファイル124を生成する。
【0124】
(8)上記(7)において、車載ネットワーク台帳123は、さらに、信号が示す値のデータ内位置を対応付けており、第2生成処理では、プロセッサ101は、車載ネットワーク台帳123を参照して、送信データが示す値が位置する特定のデータ内位置と、特定の信号の名称と、を取得し、送信データと照合結果701と特定の信号の名称と特定のデータ内位置とを関連付けて車載ネットワーク差分結果ログファイル124を生成する。
【0125】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0126】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ101がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0127】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(SolID302 State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0128】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0129】
100 等価検証装置
101 プロセッサ
102 記憶デバイス
111 ECU群
121 車載ネットワークログファイル
122 車載ネットワークシミュレーションログファイル
123 車載ネットワーク台帳
124 車載ネットワーク差分結果ログファイル
125 不一致信号リスト結果ファイル
130 送受信IDデータバッファ
141 変更前ECUソフトウェア
142 変更後ECUソフトウェア
150 車載ネットワークログ再生モジュール
160 差分比較モジュール
801 NGデータ件数
802 不一致信号リスト