(57)【要約】【課題】評価シナリオを用いたマイクロコンピュータソフトウェアのプログラム動作検証において、エラー発生の都度プログラム修正と再評価を繰り返すことを不要にし、実機仕様の決定と未定の存在による評価待ちの発生を防止し、開発効率を向上させる。【解決手段】プログラム自動検証システムにおける評価シナリオの実行状況を監視し、その実行状況に応じて評価シナリオの実行方法あるいは動作検証の起動停止を制御する評価管理部６００を設け、評価シナリオの全評価項目の実行完了時間や、全評価項目の実行完了までの検証エラー発生数を予測し、その後の工程選択を可能とする。また、評価シナリオの各評価項目に評価優先度を付与し、これを変更可能とすることで、検証エラーが発生した評価項目の評価優先度を上げるなど、評価結果を評価優先度に反映させることにより評価品質の向上を図る。【選択図】  図１
2005250937.tif 000002
【特許請求の範囲】
【請求項１】
仮想周辺デバイスおよび仮想ＩＣＥ等で構成されマイクロコンピュータの実機プログラムを実行するシステムシミュレータを用いて、評価シナリオに記述された操作手順を自動的に実行させて前記実機プログラムの動作検証を行い、前記動作検証の出力データを記録するマイクロコンピュータソフトウェアの自動検証システムにおいて、
前記評価シナリオの実行状況を監視し、前記実行状況に応じて前記評価シナリオの実行方法あるいは前記動作検証の起動停止を制御する評価管理部を備えるマイクロコンピュータソフトウェアのプログラム検証装置。
【請求項２】
前記評価管理部は、
前記評価シナリオの評価項目の実行完了数および前記評価シナリオの各評価項目の実行時間の計測により前記評価シナリオの全評価項目の実行完了時間を予測する手段と、
前記動作検証の出力データから得られる検証エラー発生数をカウントする手段と、
前記検証エラー発生数および前記評価シナリオの全評価項目の実行完了時間の予測値により前記評価シナリオの全評価項目の実行完了までの検証エラー発生数を予測する手段と、
を備える請求項１記載のマイクロコンピュータソフトウェアのプログラム検証装置。
【請求項３】
前記評価管理部は、
許容エラー数を入力する手段と、
前記動作検証の出力データから得られる検証エラー発生数をカウントする手段と、
前記検証エラー発生数が前記許容エラー数を超えた場合に前記実機プログラムの動作検証を自動的に停止させる手段と、
を備える請求項１記載のマイクロコンピュータソフトウェアのプログラム検証装置。
【請求項４】
前記評価管理部は、
前記評価シナリオの各評価項目に評価優先度を付与する手段と、
前記評価優先度が高い評価項目を優先的に実行させる手段と、
を備える請求項１記載のマイクロコンピュータソフトウェアのプログラム検証装置。
【請求項５】
前記評価管理部は、前記評価優先度が高い評価項目における検証エラーの発生が所定レベルに達した場合に、前記実機プログラムの動作検証を自動的に停止させるマイクロコンピュータソフトウェアのプログラム検証装置。
【請求項６】
前記評価管理部は、検証エラーの発生が所定レベルに達した前記評価項目の評価優先度を自動的に変更する手段を備える請求項４記載のマイクロコンピュータソフトウェアのプログラム検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機器組み込み型マイクロコンピュータ用ソフトウェアのプログラム検証技術に係り、特に自動検証を行うシステムシステムシミュレータ環境において、評価状況に応じた管理を行うことにより自動検証の効率を向上させることができるプログラム検証装置に関するものである。
【背景技術】
【０００２】
従来、シングルチップマイクロコンピュータ制御用アプリケーションプログラムの評価は、シングルチップマイクロコンピュータの全機能をエミュレートできるインサーキットエミュレータをターゲットとなるシングルチップマイクロコンピュータの代わりに組み込み、ハードウェアで構成された実機デバッグセットを使用して行われていた。
【０００３】
しかし上記方法では、プログラムのテストを行うにはシステムを動作させるハードウェアが先行して完成していることが必須条件となるため、ソフトウェア開発の工程がハードウェア開発の進捗に大きく左右されるという問題があった。
【０００４】
この問題を解決するために、ターゲットとなるシングルチップマイクロコンピュータのシミュレーションおよび周辺デバイスのシミュレーションを行うことで、実機を使わずにデバッグ対象プログラムを評価する方法が提案されている（例えば、特許文献１参照）。
【０００５】
従来開示されたシステムは、テスト／デバッグの対象となる組込みソフトウェアと、マイクロプロセッサユニット（ＭＰＵ）およびメモリを模擬するＭＰＵシミュレータと、入出力を模擬する入出力装置模擬部と、ＭＰＵと１つ以上の入出力装置を接続する信号線を模擬する入出力装置実行制御機構と、シミュレータの起動順序を記述した起動定義ファイルと、Ｉ／ＯモニタとＩ／Ｏモデルのプロセスを起動／終了する手段と、ユーザが全てのＩ／Ｏモデルのリソース情報を参照あるいは変更できる手段と、Ｉ／ＯモデルとＩ／Ｏモニタの接続関係を表示する手段を持つ入出力模擬部操作環境とで構成され、それぞれの構成要素は複数のプロセスで実現され、仮想バスにて接続されている。
【０００６】
このような構成により、機器組み込み型マイクロコンピュータ用ソフトウェアが実際に稼動するターゲットマシンと異なるコンピュータ上でこのソフトウェアをシミュレーションすることができ、テスト／デバッグ作業を効率よく行うことができる。
【特許文献１】特開平９−１１４７００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記従来の検証方法では、実機プログラムに入力するパターンが膨大になった場合にも全ての評価を実行し、全評価終了後、エラーが発生していた場合には、エラー内容に対して実機プログラムを修正し、再度全ての評価パターンを実行する必要があった。
【０００８】
エラーが発生する度に実機プログラムを修正して再度評価を実行することも可能であるが、全評価に要する時間や一つ一つのエラーに対するソフトウェア設計工数などが開発効率を下げる要因となることが第１の問題点であった。
【０００９】
また、開発の初期段階においては、最初のプログラム立ち上げ工程でエラーが発生することが予想されるが、従来の評価システムのように評価シナリオの実行結果を逐次表示し、評価者が評価途中の評価結果を参照し、その評価結果に応じて再設計を行い再度評価を行うため、評価途中に評価者の工数を占有することになり、これが開発効率を下げる要因となることが第２の問題点であった。
【００１０】
また、一部の実機仕様が決定したが他の実機仕様が明確に決まっていない段階でプログラム開発を行わなければならない状況が発生することがある。従来の評価手法では全評価項目を実行するため、仕様が決定している項目であっても、評価が実行されるまで評価者が待つ工数が発生し、あるいは、決定済みの仕様のみを評価するために評価シナリオを個別に作成するといった無駄な工数が発生することが第３の問題点であった。
【００１１】
さらに、プログラムにエラーが発生した場合、従来の評価手法では、別のファイル等で開発者がエラーの履歴を管理し、それらのエラーが解決されたことを確認する必要があった。このため、エラーの履歴管理やエラーの再評価を管理する必要があることや、エラーの履歴管理が適切に行われていない場合は、一度発生したエラーが再度発生するという危険性があることが第４の問題点であった。
【００１２】
本発明は、マイクロコンピュータソフトウェアのプログラム検証装置において、プログラムの動作検証中にエラー発生の都度プログラム修正や再設計と再評価を繰り返すことを不要にし、実機仕様の決定と未定の存在による評価待ちの発生を防止し、エラーの履歴管理やエラーの再評価管理を不要にすることで、開発効率を向上させることができるプログラム検証装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のマイクロコンピュータソフトウェアのプログラム検証装置は、仮想周辺デバイスおよび仮想ＩＣＥ等で構成されマイクロコンピュータの実機プログラムを実行するシステムシミュレータを用いて、評価シナリオに記述された操作手順を自動的に実行させて実機プログラムの動作検証を行い、動作検証の出力データを記録するマイクロコンピュータソフトウェアの自動検証システムにおいて、前記評価シナリオの実行状況を監視し、その実行状況に応じて評価シナリオの実行方法あるいは動作検証の起動停止を制御する評価管理部を備える。
【００１４】
上記構成によれば、評価管理部により評価シナリオの実行状況に応じて評価シナリオの実行方法を可変制御し、あるいは動作検証の起動停止を行うことができるため、予め評価管理部にプログラムの評価レベルに応じた設定を行うことで適切な品質レベルの評価が実施可能となり、エラー発生の度にソフトウェアを修正したり評価途中で評価者の工数を占有したりすることがなくなり、開発効率を向上させることができる。
【００１５】
本発明において、前記評価管理部は、評価シナリオの評価項目の実行完了数および評価シナリオの各評価項目の実行時間の計測により評価シナリオの全評価項目の実行完了時間を予測する手段と、動作検証の出力データから得られる検証エラー発生数をカウントする手段と、検証エラー発生数および評価シナリオの全評価項目の実行完了時間の予測値により評価シナリオの全評価項目の実行完了までの検証エラー発生数を予測する手段とを備える。
【００１６】
上記構成によれば、動作検証の実行中にその終了予定時刻と検証エラー発生数の予測値を得ることができるため、評価終了までの工数が多く検証エラー発生予測数も多い場合はプログラムの再設計工程に移行することや、終了までの工数が多い場合でも検証エラー発生予測数が少ない場合は評価終了まで実行するといった、状況に応じた適切な判断に基づいて工程を進めることにより、開発効率を下げることなく動作検証が可能となる。
【００１７】
本発明において、前記評価管理部は、許容エラー数を入力する手段と、動作検証の出力データから得られる検証エラー発生数をカウントする手段と、前記検証エラー発生数が前記許容エラー数を超えた場合に実機プログラムの動作検証を自動的に停止させる手段とを備える。上記構成によれば、プログラムの評価レベルに応じた許容エラー数を評価管理部に設定することにより、所望の品質レベルの評価が自動的に実施されるため、評価途中で評価者の工数を占有すること不要になり、開発効率を向上させることができる。
【００１８】
本発明において、前記評価管理部は、評価シナリオの各評価項目に評価優先度を付与する手段と、前記評価優先度が高い評価項目を優先的に実行させる手段とを備える。上記構成によれば、評価シナリオの各評価項目に評価優先度を設定することにより、仕様が決定している項目については必ず評価を実行し、仕様が未決定な評価シナリオについては評価工数を削減するといった、プログラムの開発状況に応じた動作検証を実施することができるため、一部の実機仕様が決定したが他の実機仕様が明確に決まっていないといった段階においても、評価効率の向上を図ることができる。
【００１９】
さらに、前記評価管理部は、前記評価優先度が高い評価項目における検証エラーの発生が所定レベルに達した場合に、実機プログラムの動作検証を自動的に停止させる。上記構成によれば、評価シナリオの各評価項目に評価優先度を設定し、評価優先度が高い評価項目における検証エラー発生時には評価を中断するというような設定を行うことができるため、プログラムのレベルに応じた適切な評価を実施することができ、評価効率の向上を図ることができる。
【００２０】
または、前記評価管理部は、検証エラーの発生が所定レベルに達した評価項目の評価優先度を自動的に変更する手段を備える。上記構成によれば、評価結果を評価優先度に反映させ、検証エラーが発生した評価項目の評価優先度を上げることで同一検証エラーの再発防止を図ることが可能となり、プログラムの品質を維持することができる。また、評価優先度が変更可能であることにより、検証エラーが発生した評価項目を別ファイル等で管理するといったことが不要になり、評価者の作業工数を削減することができる。
【発明の効果】
【００２１】
本発明によれば、評価管理部を用いて適切な品質レベルの評価が実施可能となり、エラー発生の度にソフトウェアを修正したり評価途中で評価者の工数を占有したりすることがなくなり、開発効率を向上させることができる。
【００２２】
さらに、動作検証の実行中にその終了予定時刻と検証エラー発生数の予測値を得ることができ、また、プログラムの評価レベルに応じた許容エラー数の設定ができることで、状況に応じた適切な判断に基づいて工程を進めることにより、開発効率を下げることなく動作検証が可能となる。
【００２３】
さらに、評価シナリオの各評価項目に評価優先度を付与することで、実機仕様の決定と未定の存在による評価待ちの発生を防止することができ、プログラムの開発状況に応じた動作検証を実施することができるため、一部の実機仕様が決定したが他の実機仕様が明確に決まっていないといった段階においても、評価効率の向上を図ることができる。
【００２４】
さらに、検証エラーが発生した項目の評価優先度を上げることにより同一検証エラーの再発防止を図ることが可能となるなど、評価結果を評価優先度に反映させることでプログラムの品質を維持することができる。また、評価優先度が変更可能であることにより、検証エラーが発生した評価項目を別ファイル等で管理するといったことが不要になり、評価者の作業工数を削減することができる。
【発明を実施するための最良の形態】
【００２５】
図１は本発明の第一の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置の構成を示すブロック図である。本発明は、バスを擬似化する仮想配線を用いて接続されたシステムシミュレータと自動検証制御部で構成される自動検証システムに対して、新たに評価管理部を接続することにより自動検証による開発効率の向上を図るものである。
【００２６】
最初に、先行技術であるバスを擬似化する仮想配線を使用したシステムシミュレータについて説明する。図１において、仮想配線を使用したシステムシミュレータは、プログラム、周辺デバイス、仮想ＩＣＥ、デバッガで構成される。
【００２７】
ここで、プログラムとは、マイクロコンピュータ上で動作するデバッグ対象プログラムであり、ユーザが開発するプログラム４１４である。
【００２８】
周辺デバイスとは、プログラム４１４の動作検証に必要なデバイスであり、実機デバッグセット用の実機デバイスとシミュレーション用の仮想デバイスがある。
【００２９】
仮想ＩＣＥとは、プログラム４１４を実行するために機器組み込み型マイクロコンピュータに搭載されている割込み、タイマ、タスク等の機能をシミュレーションするための、仮想マイクロコンピュータ４５６および仮想ＲＡＭ４５４等のシミュレータである。
【００３０】
デバッガとは、シミュレーションを行うコンピュータ上で動作させる仮想ＩＣＥ４５０を制御する仮想デバッガ５００である。
【００３１】
仮想配線とは、仮想デバイスと仮想デバッガ５００と自動検証制御部３００等を仮想的に接続する配線である。なお、仮想デバイスと仮想デバッガ５００と自動検証制御部３００等を複数のパーソナルコンピュータで実現した場合は、この仮想配線２０６として、ネットワーク、ＵＳＢ、ＲＳ２３２Ｃ、ＩＥＥＥ１３９４などを使用することができる。
【００３２】
また、仮想デバイスと仮想デバッガ５００と自動検証制御３００等を一台のパーソナルコンピュータ内で複数の単独実行可能なアプリケーションとして実現した場合は、仮想配線２０６は、アプリケーション間にて通信可能なＤＤＥ、ＣＯＭ等のデータ通信機能を利用して実現することができる。
【００３３】
自動検証制御部３００による自動検証制御とは、評価シナリオファイル３５２で定義された評価シナリオの各評価項目をイベントとしてイベント発行部３６２を介してプログラム４１４に発行し、プログラム４１４からの出力結果を出力データ抽出部３６０を介して検証結果ファイル３５０に格納し、自動的に評価を実施する制御である。
【００３４】
次に、本発明による第一の実施の形態について図１を用いて説明する。第一の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置においては、システムシミュレータと自動検証制御部３００で構成される従来の自動検証システムに、バススロット６０６を介して仮想配線２０６に接続された評価管理部６００を加えて構成される。
【００３５】
評価管理部６００において、実行時間計測部６０２はイベント発行部３６２からイベントが発行されてからプログラムの出力結果が得られるまでの時間を計測する。計測結果を評価シナリオそれぞれの実行時間として保持し、そのデータを終了時間／エラー数予測部６０３に出力する。
【００３６】
エラー数カウント部６０１は、自動検証制御部３００からエラーが発生した情報を読み込んでエラー数の合計をカウントし、終了時間／エラー数予測部６０３にカウントしたデータを出力する。
【００３７】
終了時間／エラー予測部６０３は、実行時間計測部６０２から得られた時間データの平均値を算出する。算出した平均値とエラーカウント数および実行されていない評価シナリオ数から、全評価シナリオを終了するまでの残り時間とエラー発生予測数を算出し、表示部６０５を用いて算出データを表示する。
【００３８】
全評価シナリオの評価終了までの残り時間、および全評価終了までに発生するエラー予測数は次式より得られる。
（評価残時間）＝（評価シナリオ平均実行時間）×（未実行評価シナリオ数）
（エラー発生予測数）＝［（エラーカウント数）×｛（未実行評価シナリオ数）÷（既実行評価シナリオ数）｝］＋（エラーカウント数）
【００３９】
評価者は、自動評価起動／終了部６０４から自動検証制御部３００に自動検証の継続と停止を指示することができる。
【００４０】
このような構成によれば、評価者は全評価が終了するまでに要する時間とエラーの発生予測数を得られるため、自動検証を継続するか、あるいは自動検証を停止してプログラムの再設計に移行するかを適切な判断に基づいて決定することができる。
【００４１】
図２は本発明の第二の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置の構成を示すブロック図である。第一の実施形態と同様に、本実施形態においても、システムシミュレータと自動検証制御部３００で構成される従来の自動検証システムに、バススロット６０６を介して仮想配線２０６に接続された評価管理部６００を加えてプログラム検証装置が構成される。
【００４２】
評価管理部６００において、エラー数カウント部６０１は、自動検証制御部３００からエラー発生情報を読み込んでエラー数の合計をカウントし、比較部７０１にエラーカウント数を出力する。
【００４３】
評価者は、評価開始前にエラー基準数７０２を設定する。エラー基準数とは、デバッグ対象プログラムの品質レベルに応じて評価者が許容するエラー発生数のことである。比較部７０１は与えられたエラーカウント数とエラー基準数とを比較し、エラーカウント数がエラー基準数を上回った場合は自動評価起動／終了部６０４に自動検証を停止する指示を行う。
【００４４】
このような構成によれば、評価者は評価の進捗状況を常時監視する必要がなく、評価者が望む品質レベルのプログラム評価を実行することができる。また、エラー発生数が評価者が設定したエラー基準数を上回った場合は、自動検証を停止することで開発工数の削減を行うことができる。
【００４５】
図３は本発明の第三の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置の構成を示すブロック図である。第一および第二の実施形態と同様に、本実施形態においても、システムシミュレータと自動検証制御部３００で構成される従来の自動検証システムに、バススロット６０６を介して仮想配線２０６に接続された評価管理部６００を加えてプログラム検証装置が構成される。
【００４６】
評価管理部６００において、評価者は、評価前に評価優先度入力部８０３を用いて、それぞれの評価シナリオの評価項目毎に評価優先度を設定する。評価優先度入力部は入力された評価優先度を自動検証制御部３００の評価シナリオファイル３５２内に設定する。
【００４７】
自動検証が開始されると、評価順序変更部８０１は、イベント発行部３６２から出力されるイベントの評価優先度を読み込み、評価優先度が高い評価シナリオのイベントを優先的に実機プログラムに出力する。
【００４８】
優先度判別部８０２は、実機プログラムから出力される評価シナリオの実行結果を読み込み、エラーが発生していた場合は、その評価シナリオの評価項目の評価優先度を判定する。優先度が高い評価項目でのエラーであれば、優先度判別部８０２は、自動評価起動／終了部６０４に自動検証を停止する指示を行う。
【００４９】
このような構成によれば、開発の初期段階において仕様が決定した項目に対して評価を優先的に実行するなど、評価者が意図した項目の評価を行うことが可能となる。また、評価シナリオファイルは、一つのシナリオファイルを再利用して使用できるため、目的の評価を実行するために複数のシナリオファイルを作成するといった開発工数を削減することができる。
【００５０】
また、評価優先度変更部８００は、エラーが発生した評価シナリオの評価項目の評価優先度を優先度判別部８０２から入力する。その際に評価優先度を高いレベルに設定し、評価シナリオファイル３５２に保存する。プログラムの再評価を行う場合には、評価優先度変更部により設定された評価優先度を用いて評価が実施される。
【００５１】
このような構成によれば、一度エラーが発生した評価シナリオの評価項目が自動的に高い優先度レベルに設定されるため、再評価時に漏れなく再評価を実施することが可能となり、不具合の再発を防止できる。また、評価者がエラーの履歴を別の方法により管理して再評価するといった工数が不要になることで開発工数を削減することができる。
【産業上の利用可能性】
【００５２】
本発明のマイクロコンピュータソフトウェアのプログラム検証装置は、評価管理部を用いて適切な品質レベルの評価が実施可能となり、エラー発生の度にソフトウェアを修正したり評価途中で評価者の工数を占有したりすることがなくなり、開発効率を向上させることができるという効果を有し、機器組み込み型マイクロコンピュータ用ソフトウェアのプログラム検証技術等として有用である。
【図面の簡単な説明】
【００５３】
【図１】本発明の第一の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置の構成を示すブロック図。
【図２】本発明の第一の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置の構成を示すブロック図。
【図３】本発明の第一の実施形態に係るマイクロコンピュータソフトウェアのプログラム検証装置の構成を示すブロック図。
【符号の説明】
【００５４】
１００  仮想デバイス
１０２  仮想入力
１０４  仮想出力
１０６、１０８、１１２、３１２、４５２、６０６  バススロット
１１０  仮想入出力
２０６  仮想配線
３００  自動検証制御部
３５０  検証結果ファイル
３５２  評価シナリオファイル
３６０  出力データ抽出部
３６２  イベント発行部
４１０  実機プログラム
４１４  デバッグ対象のプログラム
４１６  仮想／実機変換部
４５０  仮想ＩＣＥ
４５４  仮想ＲＡＭ
４５６  仮想マイクロコンピュータ
５００  仮想デバッガ
６００  評価管理部
６０１  エラー数カウント部
６０２  実行時間計測部
６０３  終了時刻／エラー数予測部
６０４  自動評価起動／終了部
６０５  表示部
７０１  比較部
７０２  エラー基準数
８００  評価優先度変更部
８０１  評価順序変更部
８０２  優先度判別部
８０３  評価優先度入力部
【図１】
2005250937.tif 000003
【図２】
2005250937.tif 000004
【図３】
2005250937.tif 000005