(57)【要約】【課題】少なくとも１つ以上のタスクを有するソフトウェアの動作の解析の際に、該ソフトウェアのイベントの発生の検出精度を向上することができるソフトウェア動作解析装置、方法、及びプログラムを提供する。【解決手段】ソフトウェア動作解析装置１，１Ａは、各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出手段１１０と、検出されたタスク動作状態特性値を記憶するタスク動作状態特性値記憶手段１４０と、記憶されたタスク動作状態特性値に対して該タスク動作状態特性値の特性を抽出するデータ処理を行うデータ処理手段１２０と、データ処理結果から得られる特性に従って所定範囲を設定し、タスク動作状態特性値検出手段１１０により検出されたタスク動作状態特性値が設定された所定範囲に含まれないことを条件として、ソフトウェアのイベントが発生していることを検出するイベント発生検出手段１３０とを備える。【選択図】図１
2009003686.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析装置において、
各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出手段と、
前記タスク動作状態特性値検出手段により検出されたタスク動作状態特性値を記憶するタスク動作状態特性値記憶手段と、
前記タスク動作状態特性値記憶手段により記憶されたタスク動作状態特性値に対して、該タスク動作状態特性値の特性を抽出するデータ処理を行うデータ処理手段と、
前記データ処理手段のデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定し、前記タスク動作状態特性値検出手段により検出されたタスク動作状態特性値が、該設定された所定範囲に含まれないことを条件として、前記ソフトウェアのイベントが発生していることを検出するイベント発生検出手段と
を備えたことを特徴とするソフトウェア動作解析装置。
【請求項２】
請求項１記載のソフトウェア動作解析装置において、
前記動作状態値検出手段により検出されたタスク動作状態特性値のタスクの種類を判別するタスク種類判別手段を備え、
前記データ処理手段は、前記タスク動作状態特性値記憶手段により記憶されたタスク動作状態特性値に対して、前記タスクの種類毎に前記データ処理を行い、
前記イベント発生検出手段は、前記タスク種類判別手段により判別されたタスクの種類のデータ処理結果に対して、イベントの発生を検出する処理を行うことを特徴とするソフトウェア動作解析装置。
【請求項３】
請求項１又は２記載のソフトウェア動作解析装置において、
前記データ処理手段は、前記タスク動作状態特性値記憶手段によりタスクの種類毎に記憶されたタスク動作状態特性値の個数が、該タスク動作状態特性値の特性が抽出されるような所定個数を超えているタスクが有る場合、又は該タスク動作状態特性値の記憶の開始から該タスク動作状態特性値の特性が抽出されるような所定時間を経過したタスクが有る場合に、該タスクの動作状態特性値に対して前記データ処理を行うことを特徴とするソフトウェア動作解析装置。
【請求項４】
請求項１〜３のいずれか記載のソフトウェア動作解析装置において、
前記ソフトウェアの動作に使用されるパラメータ値を取得するパラメータ値取得手段と、
前記パラメータ値取得手段により取得されるパラメータ値と、前記タスク動作状態特性値検出手段により検出されるタスク動作状態特性値とのいずれか一方又は両方を、前記ソフトウェアの内部データとして所定のタイミングで逐次収集し、直前の所定時間分、又は所定収集回数分の内部データを記憶する内部データ記憶手段と、
前記イベント発生検出手段によりイベントが発生していることを検出したことを条件として、前記内部データ記憶手段に記憶されている内部データを保存する内部データ保存手段とを備えることを特徴とするソフトウェア動作解析装置。
【請求項５】
請求項１〜４のいずれか記載のソフトウェア動作解析装置において、
前記データ処理手段は、前記タスク動作状態特性値記憶手段によりタスクの種類毎に記憶されたタスク動作状態特性値のうち、所定時間間隔毎に該所定時間分のタスク動作状態特性値を対象として、又は該記憶されたタスク動作状態特性値の個数が所定個数となる毎に該所定個数分のタスク動作状態特性値を対象として、前記データ処理を行い、
前記イベント発生検出手段は、前記タスク動作状態特性値検出手段により検出されたタスク動作状態特性値を含む所定時間分又は所定個数分のタスク動作状態特性値を対象として行なわれたデータ処理結果に対して、イベントの発生を検出する処理を行うことを特徴とするソフトウェア動作解析装置。
【請求項６】
少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析方法であって、
各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出ステップと、
前記タスク動作状態特性値検出ステップで検出されたタスク動作状態特性値をタスク動作状態特性値記憶部に記憶させるタスク動作状態特性値記憶ステップと、
前記タスク動作状態特性値記憶ステップで記憶されたタスク動作状態特性値に対して、該タスク動作状態特性値の特性を抽出するデータ処理を行うデータ処理ステップと、
前記データ処理ステップのデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定し、前記タスク動作状態特性値検出ステップで検出されたタスク動作状態特性値が、該設定された所定範囲に含まれないことを条件として、前記ソフトウェアのイベントの発生を検出するイベント発生検出ステップと
を備えることを特徴とするソフトウェア動作解析方法。
【請求項７】
少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析処理をコンピュータに実行させるソフトウェア動作解析用プログラムであって、
各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出処理と、
前記タスク動作状態特性値検出処理で検出されたタスク動作状態特性値をタスク動作状態特性値記憶部に記憶させるタスク動作状態特性値記憶処理と、
前記タスク動作状態特性値記憶処理で記憶されたタスク動作状態特性値に対して、該タスク動作状態特性値の特性を抽出するデータ処理と、
前記データ処理のデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定し、前記タスク動作状態特性値検出処理で検出されたタスク動作状態特性値が、該設定された所定範囲に含まれないことを条件として、前記ソフトウェアのイベントの発生を検出するイベント発生検出処理と
を前記コンピュータに実行させる機能を備えることを特徴とするソフトウェア動作解析用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析装置、ソフトウェア動作解析方法、及びソフトウェア動作解析用プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータに搭載されているソフトウェアの検証のために、その動作状態を表すデータを解析する装置が使用されている。このとき、ソフトウェアの規模が増大すると、解析対象となるデータ量が膨大となると共に動作状態が複雑となるため、ソフトウェアの検証が困難となる。このため、ソフトウェアの不具合の可能性が高いイベント（通常の動作と異なる特異動作）を検出して使用することで、ソフトウェアの検証を効率良く且つ精度良く行うための技術が提案されている（例えば、特許文献１〜３を参照）。
【０００３】
特許文献１の車両用データレコーダでは、車両の制御ソフトウェアの動作を解析するためのデータを記録する際に、車両に搭載された加速度センサ、エアバッグＥＣＵ、バンパスイッチ等からの異常を示す信号に基づいて車両の緊急状態を検出し、この検出した緊急状態の発生前後における車両の走行及び操作情報をデータとして記録する。
【０００４】
また、特許文献２の観測装置では、観測対象装置である論理回路が出力する信号を入力してその動作を観測する際に、出力信号の状態遷移を記憶し、状態遷移の発生回数が予め定められた閾値未満である場合や、状態遷移が利用者により予め指定された状態遷移と一致する場合に、不良が発生する可能性が高い動作として、その状態遷移が発生したことを通知する。
【０００５】
また、特許文献３の監視装置では、計算機システムの周期ソフトウェアの異常動作を監視する際に、１周期走行に要した処理時間を算出し、この処理時間が予め定められた規定範囲を逸脱したときにソフトウェアが異常となったとして、異常動作を検出する。
【特許文献１】特開平７−３７１３３公報
【特許文献２】特開２００６−１１３６９６号公報
【特許文献３】特開平９−５４６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、前記文献１の装置では、イベント（車両の緊急状態）を検出する際に、車両に搭載された加速度センサ等からの異常を示す信号を用いている。これらの加速度センサ等からの信号は、ソフトウェアが制御対象である車両の制御に直接使用するデータであり、ソフトウェアの動作状態を直接表すデータではない。よって、上記文献１の装置では、このような制御に使用するデータに基づいてイベントを検出するため、ソフトウェアのイベントを精度良く検出できない可能性があった。
【０００７】
また、上記文献２の装置では、イベント（不良が発生する可能性が高い動作）を検出する際に、観測対象装置である論理回路の出力信号の状態遷移を用いている。この出力信号の状態遷移は、ソフトウェア（論理回路）の動作状態を直接表すデータではあるものの、必ずしも、ソフトウェアの検証に適した、ソフトウェアの動作状態の特性を表す値ではない。よって、上記文献２の装置では、このようなソフトウェアの動作状態を直接表す値を用いてイベントを検出するため、ソフトウェアのイベントを精度良く検出できない可能性があった。
【０００８】
これに対して、上記文献３の装置では、イベント（異常動作）の検出の際に、解析対象である周期ソフトウェアの１周期走行に要した処理時間を算出して用いており、この処理時間は、周期ソフトウェアの動作状態の特性を表す値であると考えられる。ただし、上記文献３の装置では、この処理時間を予め定められた判定値と大小比較してイベントを検出している。一方、ソフトウェアの処理時間は、その動作状態に大きく依存する。例えば、車両の制御ソフトウェアの特定のタスクの処理時間は、車両の高速走行状態では長くアイドル停止状態では短くなるというように、ソフトウェアによる車両の制御状態に応じて変動することが想定される。
【０００９】
このため、上記文献３の装置のように単なる固定値である判定値と比較するのでは、イベントを適切に検出することは困難である。すなわち、イベントの誤検出が生じないよう、判定値を全ての状態で取りうる値の範囲外に設定すると、特性値がその範囲外まで変動しなければ検出できないため、イベントが発生したにも関わらず検出できない状況が生じ得る。また、イベントの未検出が生じないよう、判定値を通常最も取る状態での値の範囲外に設定する場合は、制御状態に応じて特性値が通常時の範囲外まで変動した場合、正常時でもイベントとして検出してしまう状況が生じ得るという問題があった。
【００１０】
本発明は、上記事情に鑑み、少なくとも１つ以上のタスクを有するソフトウェアの動作の解析の際に、該ソフトウェアのイベント発生の検出精度を向上させることができるソフトウェア動作解析装置、ソフトウェア動作解析方法、及びソフトウェア動作解析用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
かかる目的を達成するために、本発明のソフトウェア動作解析装置は、少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析装置において、各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出手段と、前記タスク動作状態特性値検出手段により検出されたタスク動作状態特性値を記憶するタスク動作状態特性値記憶手段と、前記タスク動作状態特性値記憶手段により記憶されたタスク動作状態特性値に対して、該タスク動作状態特性値の特性を抽出するデータ処理を行うデータ処理手段と、前記データ処理手段のデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定し、前記タスク動作状態特性値検出手段により検出されたタスク動作状態特性値が、該設定された所定範囲に含まれないことを条件として、前記ソフトウェアのイベントが発生していることを検出するイベント発生検出手段とを備えたことを特徴とする（第１発明）。
【００１２】
第１発明のソフトウェア動作解析装置によれば、タスク動作状態特性値検出手段により、ソフトウェアの各タスクの動作状態の特性を表すタスク動作状態特性値がリアルタイムで検出される。ここで、タスク動作状態特性値は、例えば、ソフトウェアが制御に直接使用するデータや、ソフトウェアの動作状態を直接表すデータ等とは別の、ソフトウェアの動作状態を代表する特性値である。すなわち、タスク動作状態特性値として、ソフトウェアから直接取得されるデータとは別の、ソフトウェアの動作状態の特性を表すデータが得られる。そして、検出されたタスク動作状態特性値がタスク状態値記憶手段により記憶され、記憶されたタスク動作状態特性値に対して、データ処理手段によりタスク動作状態特性値の特性を抽出するデータ処理が行われる。これにより、データ処理結果として、ソフトウェアの動作状態特性値の特性を示すデータが得られる。
【００１３】
そこで、イベント発生検出手段は、前記データ処理手段のデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定する。そして、イベント発生検出手段は、タスク動作状態特性値がこの所定範囲に含まれないことを条件として、ソフトウェアのイベントが発生していることを検出する。ここで、ソフトウェアのイベントとは、ソフトウェアにおける通常の動作と異なる特異動作であり、ソフトウェアの不具合の可能性が高い。このとき、ソフトウェアの動作状態特性値の特性を示すデータ処理結果を用いて、該データ処理結果から得られる特性に従って所定範囲を設定することで、ソフトウェアの通常の動作に相当する所定範囲が適切に設定され得る。よって、タスク動作状態特性値がこの所定範囲に含まれないことを条件として、イベントを精度良く検出することが可能となる。そして、このように検出されたイベントを使用することで、ソフトウェアの検証を効率良く且つ精度良く行うことが可能となる。
【００１４】
従って、本発明によれば、少なくとも１つ以上のタスクを有するソフトウェアの動作の解析の際に、該ソフトウェアのイベントの発生の検出精度を向上することができる。
【００１５】
また、第１発明のソフトウェア動作解析装置において、前記動作状態値検出手段により検出されたタスク動作状態特性値のタスクの種類を判別するタスク種類判別手段を備え、前記データ処理手段は、前記タスク動作状態特性値記憶手段により記憶されたタスク動作状態特性値に対して、前記タスクの種類毎に前記データ処理を行い、前記イベント発生検出手段は、前記タスク種類判別手段により判別されたタスクの種類のデータ処理結果に対してイベントの発生を検出する処理を行うことが好ましい（第２発明）。
【００１６】
この場合、タスク動作状態特性値に対して、タスクの種類毎にデータ処理を行うことにより、そのデータ処理結果は、ソフトウェアの各タスクの種類について、動作状態特性値の特性をより顕著に示すものとなる。そして、このデータ処理結果を用いることで、ソフトウェアの各タスクの種類について、通常の動作に相当する所定範囲がより適切に設定され得る。よって、この所定範囲に含まれないことを条件として、各タスクの種類についてイベントをより精度良く検出することが可能となる。従って、タスク動作状態特性値のタスクの種類を判別し、該タスクの種類のデータ処理結果に対してイベントの発生を検出する処理を行なうことにより、イベントの発生の検出精度をより向上することができる。
【００１７】
また、第１又は２発明のソフトウェア動作解析装置において、前記データ処理手段は、前記タスク動作状態特性値記憶手段によりタスクの種類毎に記憶されたタスク動作状態特性値の個数が、該タスク動作状態特性値の特性が抽出されるような所定個数を超えているタスクが有る場合、又は該タスク動作状態特性値の記憶の開始から該タスク動作状態特性値の特性が抽出されるような所定時間を経過したタスクが有る場合に、該タスクの動作状態特性値に対して前記データ処理を行うことが好ましい（第３発明）。
【００１８】
すなわち、例えば統計処理等のデータ処理では、その処理対象となるデータ量を十分大きく取ることで、データに含まれるノイズの影響を排除して、データの傾向が適切に抽出される。よって、タスク動作状態特性値の個数が該タスク動作状態特性値の特性が抽出されるような所定個数を超えている場合、又はタスク動作状態特性値の記憶の開始から該タスク動作状態特性値の特性が抽出されるような所定時間を経過した場合にデータ処理を行うことで、処理対象となるタスク動作状態特性値のデータ量を大きく取り得るものであるから、データに含まれるノイズの影響を排除して、ソフトウェアの動作状態特性値の特性を示すデータ処理結果をより安定に得ることができる。そして、このデータ処理結果に対してイベントの発生を検出する処理を行なうことにより、イベントの発生の検出精度をより向上することができる。
【００１９】
また、第１〜第３発明のソフトウェア動作解析装置において、前記ソフトウェアの動作に使用されるパラメータ値を取得するパラメータ値取得手段と、前記パラメータ値取得手段により取得されるパラメータ値と、前記タスク動作状態特性値検出手段により検出されるタスク動作状態特性値とのいずれか一方又は両方を、前記ソフトウェアの内部データとして所定のタイミングで逐次収集し、直前の所定時間分、又は所定収集回数分の内部データを記憶する内部データ記憶手段と、前記イベント発生検出手段によりイベントが発生していることを検出したことを条件として、前記内部データ記憶手段に記憶されている内部データを保存する内部データ保存手段とを備えることが好ましい（第４発明）。
【００２０】
この場合、内部データ記憶手段は、前記ソフトウェアの動作に使用されるパラメータ値とタスク動作状態特性値とのいずれか一方又は両方を、ソフトウェアの内部データとして所定のタイミングで逐次収集する。ここで、ソフトウェアの動作に使用されるパラメータ値は、例えば、ソフトウェアが制御に直接使用するデータや、ソフトウェアの動作状態を直接表すデータ等である。そして、内部データ記憶手段は、直前の所定時間分、又は所定収集回数分の内部データを記憶する。具体的には、内部データ記憶手段は、例えばメモリに記憶された所定時間（又は所定収集回数）以前のデータを消去し、消去した部分に新たに収集したデータを記憶することにより、ソフトウェアの内部データを順次書換えながら記憶する。これにより、一定のメモリ量で常に直前の所定時間分（所定収集回数分）のソフトウェアの内部データが記憶される。
【００２１】
そして、イベント発生検出手段によりイベントが発生していることを検出したことを条件として、内部データ記憶手段に記憶されている内部データが内部データ保存手段に保存される。すなわち、例えば、イベントの発生を検出したとき、又はイベントの発生が検出されたときから所定時間後に、内部データが保存される。これにより、イベントの発生をトリガとして、イベント発生前後の内部データが適切に保存されるので、保存するデータ量の低減や、保存するための処理負荷の低減が可能となると共に、この内部データをソフトウェアの検証の際に使用することで、ソフトウェアの検証を効率良く且つ精度良く行うことが可能となる。
【００２２】
また、第１〜第４発明のソフトウェア動作解析装置において、前記データ処理手段は、前記タスク動作状態特性値記憶手段によりタスクの種類毎に記憶されたタスク動作状態特性値のうち、所定時間間隔毎に該所定時間分のタスク動作状態特性値を対象として、又は該記憶されたタスク動作状態特性値の個数が所定個数となる毎に該所定個数分のタスク動作状態特性値を対象として、前記データ処理を行うことが好ましい（第５発明）。
【００２３】
すなわち、タスク動作状態特性値の特性は、ソフトウェアの動作状態に依存して変動することが想定される。このとき、所定時間間隔毎に該所定時間分のタスク動作状態特性値を対象として、又は記憶されたタスク動作状態特性値の個数が所定個数となる毎に該所定個数分のタスク動作状態特性値を対象としてデータ処理を行うことで、その時のソフトウェアの動作状態を反映したデータ処理結果が得られる。よって、このデータ処理結果を用いて、該データ処理結果から得られる特性に従って所定範囲を設定することで、該所定範囲を、その時のソフトウェアの動作状態に追従させて設定することができる。すなわち、ソフトウェアの動作状態に応じて、イベントの発生の検出がなされないタスク動作状態特性値の範囲（ソフトウェアの通常の動作に相当するタスク動作状態特性値の範囲）が設定されるので、ソフトウェア動作中に複数の動作状態をとる場合でも、タスク動作状態特性値がこの所定範囲に含まれないことを条件として、イベントを精度良く検出することが可能となる。
【００２４】
次に、本発明のソフトウェア動作解析方法は、少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析方法であって、各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出ステップと、前記タスク動作状態特性値検出ステップで検出されたタスク動作状態特性値をタスク動作状態特性値記憶部に記憶させるタスク動作状態特性値記憶ステップと、前記タスク動作状態特性値記憶ステップで記憶されたタスク動作状態特性値に対して、該タスク動作状態特性値の特性を抽出するデータ処理を行うデータ処理ステップと、前記データ処理ステップのデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定し、前記タスク動作状態特性値検出ステップで検出されたタスク動作状態特性値が、該設定された所定範囲に含まれないことを条件として、前記ソフトウェアのイベントの発生を検出するイベント発生検出ステップとを備えることを特徴とする（第６発明）。
【００２５】
第６発明のソフトウェア動作解析方法によれば、第１発明のソフトウェア動作解析装置に関して説明したように、タスク動作状態特性値検出ステップで、ソフトウェアの各タスクの動作状態の特性を表すタスク動作状態特性値がリアルタイムで検出される。また、データ処理ステップで、タスク動作状態特性値を用いて、ソフトウェアの動作状態特性値の特性を顕著に示すデータ処理結果が得られる。そして、イベント発生検出ステップで、データ処理結果を用いて、ソフトウェアの通常の動作に相当する所定範囲が適切に設定され得るので、この所定範囲に含まれないことを条件として、イベントを精度良く検出することが可能となる。従って、本発明によれば、少なくとも１つ以上のタスクを有するソフトウェアの動作の解析の際に、該ソフトウェアのイベントの発生の検出精度を向上することができる。
【００２６】
次に、本発明のタスクソフトウェア動作解析用プログラムは、少なくとも１つ以上のタスクを有するソフトウェアの動作を解析するソフトウェア動作解析処理をコンピュータに実行させるソフトウェア動作解析用プログラムであって、各タスクの動作状態の特性を表すタスク動作状態特性値を検出するタスク動作状態特性値検出処理と、前記タスク動作状態特性値検出処理で検出されたタスク動作状態特性値をタスク動作状態特性値記憶部に記憶させるタスク動作状態特性値記憶処理と、前記タスク動作状態特性値記憶処理で記憶されたタスク動作状態特性値に対して、該タスク動作状態特性値の特性を抽出するデータ処理と、前記データ処理処理のデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定し、前記タスク動作状態特性値検出処理で検出されたタスク動作状態特性値が、該設定された所定範囲に含まれないことを条件として、前記ソフトウェアのイベントの発生を検出するイベント発生検出処理とを前記コンピュータに実行させる機能を備えることを特徴とする（第７発明）。
【００２７】
第７発明のソフトウェア動作解析用プログラムによれば、第１発明のソフトウェア動作解析装置に関して説明した効果を奏し得る処理をコンピュータに実行させることができる。
【発明を実施するための最良の形態】
【００２８】
［第１実施形態］
本発明のソフトウェア動作解析装置における第１実施形態について図１〜図３を用いて説明する。図１は、本実施形態のソフトウェア動作解析装置の機能ブロック図であり、図２は、図１のソフトウェア動作解析装置におけるソフトウェア動作解析処理を示すフローチャートであり、図３は、図２のソフトウェア動作解析処理におけるイベント発生の検出例を示すグラフである。
【００２９】
図１に示すように、本実施形態のソフトウェア動作解析装置１は、車両２に搭載されて、車両２の動作を制御する電子制御ユニット（ＥＣＵ）３に組み込まれている。ソフトウェア動作解析装置１は、ＥＣＵ３に搭載された、タスク１〜ｋを有する制御ソフトウェアを解析対象として、該ソフトウェアの動作を解析するものである。ＥＣＵ３には、車両２の動作を制御するために、車両２の状態を検出するセンサ４−１〜４−ｍや、ＥＣＵ３により制御される制御機器５−１〜５−ｎが接続されている。
【００３０】
ソフトウェア動作解析装置１はコンピュータ（ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏ等からなる。）により構成されている。なお、ソフトウェア動作解析装置を構成するコンピュータは、ＥＣＵ３を構成するコンピュータでもよく、或いは、ＥＣＵ３と通信可能に接続された他のコンピュータであってもよい。
【００３１】
ソフトウェア動作解析装置１は、その機能として、測定データ入力部１０、特性値算出部１１０、特性値データ処理部１２０、イベント判定部１３０、及び読み出し器２００を備えている。これらの各機能は、１つのコンピュータにより構成されていてもよく、複数の独立したコンピュータにより構成されていてもよい。
【００３２】
また、これらの各機能は、コンピュータのメモリに予め実装されたプログラムをコンピュータにより実行することにより実現される。このプログラムは、本発明のソフトウェア動作解析用プログラムを含んでいる。なお、当該プログラムはＣＤ−ＲＯＭ等の記録媒体を介してメモリに格納されてもよい。或いは、当該プログラムは外部のサーバからネットワークや人工衛星を介して配信または放送され、車両２等に搭載された通信機器により受信された上でメモリに格納されてもよい。
【００３３】
測定データ入力部１０は、解析対象であるＥＣＵ３の制御ソフトウェアから測定データを入力する。測定データは、ソフトウェアの動作に使用されるパラメータ値に相当し、例えば、センサ４−１〜４−ｍの検出データや制御機器５−１〜５−ｎの制御データ等の、ソフトウェアが制御に直接使用するデータや、タスク切り替え信号等の、ソフトウェアの動作状態を直接表すソフトウェアデータである。
【００３４】
特性値算出部１１０は、測定データ入力部１０に入力された測定データから、ソフトウェアにおける各タスク１〜ｋの動作の状態を表すタスク動作状態特性値をリアルタイムで検出する。ここで、各タスク１〜ｋの動作の状態を表すタスク動作状態特性値は、ソフトウェアから直接取得される測定データとは別の、ソフトウェアの動作を代表する特性値に相当する。
【００３５】
特性値データ処理部１２０は、特性値算出部１１０により算出された特性値のデータ処理を行う。詳細には、特性値データ処理部１２０は、特性値算出部１１０により算出された特性値を記憶し、記憶された特性値に対して、該特性値の特性を抽出するデータ処理を行う。このとき、特性値データ処理部１２０は、記憶された特性値のうち所定時間間隔毎に該所定時間分の特性値を対象としてデータ処理を行う。
【００３６】
イベント判定部１３０は、特性値データ処理部１２０によるデータ処理結果の一部又は全部を用いて、ソフトウェアの動作中にイベントが発生しているか否かを判定するイベント発生検出処理を行う。このとき、イベント判定部１３０は、特性値データ処理部１２０のデータ処理結果に対して、該データ処理結果から得られる特性に従って所定範囲を設定する。そして、イベント判定部１３０は、特性値算出部１１０により算出された特性値が、この設定された所定範囲に含まれないことを条件として、ソフトウェアのイベントが発生していると判定する。
【００３７】
イベント判定部１３０により判定されたイベント発生に関するデータは、読み出し器２００を介してＰＣ６から読み出され、ＰＣ６におけるＥＣＵ３の制御ソフトウェアの検証の際に利用される。
【００３８】
なお、測定データ入力部１０は、本発明のパラメータ値取得手段に相当し、特性値算出部１１０は、本発明のタスク動作状態特性値検出手段に相当し、特性値データ処理部１２０は、本発明のタスク動作状態特性値記憶手段、タスク種類判別手段、及びデータ処理手段に相当し、イベント判定部１３０は、本発明のイベント発生検出手段に相当する。
【００３９】
次に、本実施形態のソフトウェア動作解析装置１の作動（ソフトウェア動作解析処理）について図２，図３を用いて説明する。図２に示すように、ソフトウェア動作解析装置１は、所定の演算処理周期毎に、ＳＴＥＰ１〜ＳＴＥＰ４の処理を繰り返して、ソフトウェア動作解析処理を実行する。なお、本実施形態ではＳＴＥＰ１〜ＳＴＥＰ４を１つの周期としているが、これに限られるものではなく、例えばＳＴＥＰ１の処理と、ＳＴＥＰ２及び４の処理と、ＳＴＥＰ３の処理とを、それぞれ別の周期で実行してもよい。
【００４０】
まず、ＳＴＥＰ１で、測定データ入力部１０は、解析対象であるＥＣＵ３の制御ソフトウェアから測定データを入力する。具体的には、例えば、測定データ入力部１０は、測定データとして、ソフトウェアにおけるタスク切り替え信号を入力する。
【００４１】
次に、ＳＴＥＰ２で、特性値算出部１１０は、入力された測定データから特性値をリアルタイムで算出する。具体的には、例えば、特性値算出部１１０は、特性値として、タスク切り替え信号から、特定のタスクの処理周期を算出する。これにより、特性値として、ソフトウェアから直接取得される測定データとは別の、ソフトウェアの動作状態の特性を表すデータが得られる。
【００４２】
次に、ＳＴＥＰ３で、特性値データ処理部１２０は、算出された特性値を記憶し、記憶された特性値に対してデータ処理を行う（特性値データ処理）。具体的には、特性値データ処理部１２０は、特性値データ処理として、記憶された特性値のうち単位時間Ｎ（例えば、１sec）間隔毎の特性値についてヒストグラムを算出する。単位時間Ｎは、記憶されている特性値に対して、特性値に含まれるノイズの影響を排除して特性が抽出されるような十分大きな値として予め定められる値である。そして、特性値データ処理部１２０は、このヒストグラムから特性値の単位時間Ｎ内における平均ｘ、分散σを算出する処理を行う。このデータ処理結果である平均ｘ、分散σは、ソフトウェアの動作状態特性値の特性を示すものとなる。また、このように、単位時間Ｎ間隔毎の特性値を対象としてデータ処理を行なうことで、その時のソフトウェアの動作状態（ソフトウェアによる車両２の制御状態）を反映したデータ処理結果が得られる。
【００４３】
ここで、単位時間Ｎに記憶された特性値のヒストグラムの例を図３のグラフに示す。図３において、横軸は特定のタスクの処理周期を示し、縦軸は、その発生頻度を示す。そして、単位時間Ｎに記憶された特定のタスクの処理周期の表すデータが、図３中に◆で示されている。このとき、図３に示すように、データ処理結果として、特定のタスクの処理周期の単位時間Ｎ内における平均ｘと分散σが得られる。
【００４４】
次に、ＳＴＥＰ４で、イベント判定部１３０は、ソフトウェアの動作中にイベントが発生しているか否かを判定する。具体的には、例えば、イベント判定部１３０は、特性値データ処理部１２０により算出された処理周期の平均ｘ，分散σに対し、予め設定された閾値３σにより、ｘ±３σからイベント判定の判定閾値である所定範囲を設定する。そして、イベント判定部１３０は、特性値算出部１１０により算出された処理周期がその所定範囲以外になったときに、イベントが発生していると判定する。
【００４５】
このように、ソフトウェアの動作状態特性値の特性を顕著に示す平均ｘ，分散σを用いることで、ソフトウェアの通常の動作に相当する所定範囲が適切に設定される。よって、この所定範囲に含まれないことを条件として、イベントを精度良く検出することが可能となる。しかも、このように、単位時間Ｎ分の特性値を対象としたデータ処理結果である平均ｘ，分散σに基づいてイベントの判定閾値を算出することで、イベント判定の所定範囲（判定閾値）をその時のソフトウェアの動作状態に追従させて設定することができる。よって、ソフトウェアの動作状態（ソフトウェアによる車両２の制御状態）に応じた特性値の変動の影響を排除して判定閾値が算出されるので、ソフトウェア動作中に複数の動作状態をとる場合でも、この判定閾値を用いることでイベントを精度良く検出することが可能となる。
【００４６】
具体的には、図３に示すように、平均ｘ，分散σを用いてｘ±３σからイベント判定の所定範囲Ｒａ〜Ｒｂが算出される。ここで、図３中の要件時間Ｒthは、ソフトウェアの仕様として設定された値であり、処理周期が要件時間Ｒth以下の範囲は仕様上ではＯＫとなる範囲であり、処理周期が要件時間Ｒthを超えた範囲は仕様違反となる範囲である。この要件時間Ｒthは、イベントの誤検出が生じないよう、全ての状態で取りうる値の範囲外に設定されたものである。この要件時間Ｒthを判定閾値とすると、処理周期のデータ分布から１つだけ離間しており異常動作の可能性の高いイベントＡは検出されない。これに対して、所定範囲Ｒａ〜Ｒｂは、現在のソフトウェアの動作状態に合致するように設定されているので、この所定範囲Ｒａ〜Ｒｂを判定閾値として用いることで、イベントＡを適切に検出することができる。
【００４７】
さらに、イベントが発生していると判定された場合には、イベント判定部１３０に当該イベントの発生に関するデータが保存される。
【００４８】
以上が本実施形態におけるソフトウェア動作解析処理である。そして、ソフトウェア動作解析処理においてイベント判定部１３０により判定されたイベント発生に関するデータは、読み出し器２００を介してＰＣ６から読み出され、ＰＣ６におけるＥＣＵ３の制御ソフトウェアの検証の際に使用される。具体的には、イベント発生に関するデータがソフトウェアの設計者等に提示され、この提示に基づいて設計者が、例えば別途記憶されたソフトウェアの実行履歴を精査することで、ソフトウェアの検証を効率良く且つ精度良く行うことが可能となる。
【００４９】
以上より、本実施形態によれば、少なくとも１つ以上のタスクを有するソフトウェアの動作の解析の際に、該ソフトウェアのイベントの発生の検出精度を向上することができる。
［第２実施形態］
次に、本発明の第２実施形態のソフトウェア動作解析装置１Ａについて図４〜図５を用いて説明する。なお、本実施形態は、第１実施形態において、データ一時記憶部１４０及びデータ記憶部１５０を備えたものであり、データ一時記憶部１４０及びデータ記憶部１５０に関する構成のみが相違する。以下の説明では、第１実施形態と同一の構成には同一の参照符号を付して説明を省略する。
【００５０】
本実施形態のソフトウェア動作解析装置１Ａにおいて、データ一時記億部１４０は、ソフトウェアの内部データを所定時間分、又は所定収集回数分、順次収集して記憶する。ソフトウェアの内部データとしては、測定データ入力部１０から入力されたタスク切り替え信号等の測定データ、及び特性値算出部１１０で算出された特定のタスクの処理周期等の特性値が挙げられる。このとき、実装できるメモリ量には制約があるため、データ一時記億部１４０は、リングバッファ等の機能を用いて、例えば、メモリに記憶された所定時間（所定収集回数）以前のデータを消去し、消去した部分に新たに収集されたデータを記憶することにより、データを順次書換えながら、直前の所定時間分（所定収集回数分）の内部データを記憶する。なお、データ一時記億部１４０でデータを記憶する際に用いる手法としては、リングバッファの手法には限られない。
【００５１】
また、イベント判定部１３０は、イベントが発生していると判定した場合には、データ記憶部１５０にイベント信号を出力する。そして、データ記憶部１５０は、イベント判定部１３０によりイベントが発生していると判定したことを条件として、データ一時記億部１４０に記憶された内部データを保存する。すなわち、データ記憶部１５０は、イベント判定部１３０から出力されるイベント信号に応じて、データ一時記億部１４０のデータを記憶する。具体的には、データ記億部１４０は、イベント発生判定部１３０によりイベントの発生が判定されたとき（当該イベントの発生によるイベント信号が出力されたとき）から所定時間経過後の、データ一時記億部１４０に記憶された内部データ（当該イベントの発生前後の内部データ）を記憶する。そして、データ記憶部１５０に記憶されたデータは、読み出し器２００を介してＰＣ６から読み出され、ＰＣ６におけるＥＣＵ３の制御ソフトウェアの検証に利用される。他の構成は第１実施形態と同じである。
【００５２】
なお、データ一時記億部１４０は、本発明の内部データ記憶手段に相当する。
【００５３】
次に、本実施形態のソフトウェア動作解析装置１Ａの作動（ソフトウェア動作解析処理）について図５を用いて説明する。図５に示すように、ソフトウェア動作解析装置１Ａは、所定の演算処理周期毎に、ＳＴＥＰ１１〜ＳＴＥＰ１７の処理を繰り返して、ソフトウェア動作解析処理を実行する。以下の説明では、第１実施形態と同一の処理については、第１実施形態を参照して説明を省略する。なお、本実施形態ではＳＴＥＰ１１〜ＳＴＥＰ１７を一つの周期としているが、これに限られるものではなく、例えばＳＴＥＰ１１及び１３の処理と、ＳＴＥＰ１２及び１５〜１７の処理と、ＳＴＥＰ１４の処理とを、それぞれ別の周期で実行してもよい。
【００５４】
まず、ＳＴＥＰ１１で、第１実施形態のＳＴＥＰ１と同様に、測定データ入力部１０は、解析対象であるＥＣＵ３の制御ソフトウェアから測定データとして、ソフトウェアにおけるタスク切り替え信号を入力する。
【００５５】
次に、ＳＴＥＰ１２で、第１実施形態のＳＴＥＰ２と同様に、特性値算出部１１０は、入力されたタスク切り替え信号から特性値として、特定のタスクの処理周期をリアルタイムで算出する。
【００５６】
次に、ＳＴＥＰ１３で、ＳＴＥＰ１１で入力された測定データとＳＴＥＰ１２で算出された特性値が、ソフトウェアの内部データとしてデータ一時記億部１４０に記憶される。データ一時記億部１４０には、データを順次書換えながら、ある演算処理周期の時刻（離散系時刻）において、その直前の所定時間分（所定収集回数分）のソフトウェアの内部データが記憶される。これにより、一定のメモリ量で常に直前の所定時間分（所定収集回数分）のソフトウェアの内部データが記憶される。
【００５７】
次に、ＳＴＥＰ１４で、第１実施形態のＳＴＥＰ３と同様に、特性値データ処理部１２０は、算出された特性値を記憶し、記憶された特性値に対してデータ処理を行う（特性値データ処理）。
【００５８】
次に、ＳＴＥＰ１５で、第１実施形態のＳＴＥＰ４と同様に、イベント判定部１３０は、ソフトウェアの動作中に、後の解析時に注目すべきイベントが発生しているか否かを判定する。ＳＴＥＰ１５の判定結果がＮＯの場合（イベントが発生していると判定されない場合）、そのままソフトウェア解析処理が終了される。
【００５９】
ＳＴＥＰ１５の判定結果がＹＥＳの場合（イベントが発生していると判定された場合）、ＳＴＥＰ１６に進み、イベント発生判定部１３０は、イベント信号をデータ記憶部１５０に出力する。
【００６０】
次に、ＳＴＥＰ１７で、データ記憶部１５０は、イベント信号に応じて、一時記億部１４０に記憶されたソフトウェアの内部データを記憶する処理を実行する。このとき、データ記憶部１５０は、イベントが発生した時刻（イベント信号が出力された時刻）から所定時間経過後に、該イベントに対する記憶処理を実行する。これにより、イベントが発生した時刻の前後に渡るソフトウェアの内部データが記憶される。
【００６１】
以上が本実施形態におけるソフトウェア動作解析処理である。そして、ソフトウェア動作解析処理でデータ記億部１５０に記憶されたデータは、読み出し器２００を介してＰＣ６から読み出され、ＰＣ６におけるＥＣＵ３の制御ソフトウェアの検証の際に使用される。このとき、記憶データから、イベント発生前後の測定データ及び特性値の履歴を確認できるので、ソフトウェアの検証を効率良く且つ精度良く行うことが可能となる。他の作動は第１実施形態と同じである。
【００６２】
以上より、本実施形態によれば、第１実施形態と同様に、少なくとも１つ以上のタスクを有するソフトウェアの動作の解析の際に、該ソフトウェアのイベントの発生の検出精度を向上することができる。
【００６３】
なお、第１及び第２実施形態では、特性値として、特定のタスクの処理周期を使用したが、特性値としては、タスクの発生頻度、所定の制御データの変化量、所定のメモリへの書き込み頻度等、ソフトウェアの動作状態の特性を表す様々な特性値を使用することが可能である。
【００６４】
また、第１及び第２実施形態では、特性値データ処理として、特性値の平均や分散を算出する処理を行うものとしたが、特性値データ処理としては、特性値の加減率や、変化量の微分値を算出する等、ソフトウェアの特性及びイベントの判定手法に応じた様々な処理を行なうことが可能である。
【００６５】
また、第１及び第２実施形態では、イベント判定処理として、算出された特性値が平均ｘ，分散σからｘ±３σに基づいて設定される所定範囲Ｒａ〜Ｒｂを越えた場合にイベントが発生していると判定したが、イベント判定処理としては、平均値が閾値を超えた場合、直前の値からの変化量が閾値の比率を越えた場合等、状況に応じて様々な判定条件を設定することが可能である。
【００６６】
また、第１及び第２実施形態では、特性値データ処理部１２０は、記憶された特性値のうち所定時間間隔毎の特性値を対象としてデータ処理を行う（データ処理単位を単位時間毎とする）ものとしたが、他の実施形態として、特性値データ処理部１２０は、記憶された特性値の個数が所定個数分記憶される毎に、該所定個数分の特性値を対象としてデータ処理を行う（データ処理単位を単位発生回数毎とする）ものとしてもよい。
【００６７】
また、第１及び第２実施形態において、特性値算出部１０により算出された特性値のタスクの種類を判別するタスク種類判別手段を備え、特性値データ処理部１２０はタスクの種類毎にデータ処理を行ない、イベント判定部１３０はタスク種類判別手段により判別されたタスクの種類のデータ処理結果に対してイベント発生検出処理を行うものとしてもよい。すなわち、特性値データ処理部１２０は、データ処理単位をタスクの種類毎とし、イベント判定部１３０は、タスクの種類毎のデータ処理結果に対してイベント発生検出処理を行なう。具体的には、例えば、データ処理単位をタスクの起動要因毎とし、タスクを定時間周期タスク、エンジン回転同期タスク等に分類して、その種類毎にデータ処理を行なう等が挙げられる。
【００６８】
また、第２実施形態において、データ記憶部１５０は、イベント発生のときから所定時間経過後にデータを記憶する処理を実行するものとしたが、他の実施形態として、データ記憶部１５０は、イベント発生のときにデータを記憶する処理を実行してもよい。
【００６９】
また、第２実施形態において、データ記憶部１５０は、データ一時記億部１４０と別の記憶装置を用いてもよく、あるいは、例えば、データ一時記億部１４０が、イベント発生の際にイベント発生前後の所定時間分のデータを書換え禁止とする機能を備え、これによりデータ記憶部１５０として機能するものとしてもよい。
【図面の簡単な説明】
【００７０】
【図１】本発明の第１実施形態であるソフトウェア動作解析装置の機能ブロック図。
【図２】図１のソフトウェア動作解析装置におけるソフトウェア動作解析処理を示すフローチャート。
【図３】図２のソフトウェア動作解析処理におけるイベント発生の検出例を示すグラフ。
【図４】本発明の第２実施形態であるソフトウェア動作解析装置の機能ブロック図。
【図５】図４のソフトウェア動作解析装置におけるソフトウェア動作解析処理を示すフローチャート。
【符号の説明】
【００７１】
１，１Ａ…ソフトウェア動作解析装置、１０…測定データ入力部（パラメータ値取得手段）、１１０…特性値算出部（タスク動作状態特性値検出手段）、１２０…特性値データ処理部（タスク動作状態特性値記憶手段、タスク種類判別手段、データ処理手段）、１３０…イベント判定部（イベント発生検出手段）、１４０…データ一時記億部（内部データ記憶手段）、１５０データ記憶部（内部データ保存手段）、２００…読み出し器。
【図１】
2009003686.tif 000003
【図２】
2009003686.tif 000004
【図３】
2009003686.tif 000005
【図４】
2009003686.tif 000006
【図５】
2009003686.tif 000007