GAIO CLUB

2005年04月01日

組み込みシステム検証・ソフト品質改善のためのシミュレータツール&コード解析ツールをまとめてご紹介!

GAIO CLUB 特集
GAIO CLUB【2005/4月号】
組み込みシステム検証・ソフト品質改善のためのシミュレータツール&コード解析ツールをまとめてご紹介!

関数モジュール設計からシステムテストまで「各設計工程に利用できるソフト品質改善ツール」

  • 組み込みアプリケーションソフト実装量の増加に伴い、自動車機器の分野はもとより、ケータイ、デジタル家電製品においても、ソフト品質改善の取り組みが盛んになっています。
ソフト品質保証の基礎である「モジュール単体テスト」や、他のエンジニアが設計したソースコード資産を使用する際の「ソースコード評価・解析」、システムに対する「イベントタイミング網羅テスト」を効率的にこなすツールが求められています。ここでは、ガイオの「ソフト品質改善ツール」をまとめて紹介致します。

システムシミュレータ

実機を使用することなく組み込みシステムの検証が可能

「システムシミュレータ」は、マイコンと周辺デバイスを含めたシステム全体を対象とした動作検証が可能な、組み込みソフト検証用のシミュレータです。クロスコンパイラでコード化されたオブジェクトをそのまま実行するマイコンシミュレータ(ISS)をコアに使用しており、i/oポートアクセス、外部割り込み動作なども、実際のマイコンと同様に動作します。
マイコンシミュレータは、ソースコードデバッガとしてのインタフェースを備えており、実機を使用することなく、組み込みシステム動作そのものの検証、デバッグが可能です。

実機では困難なタイミングテストが容易に可能

「システムシミュレータ」は、システムの挙動が全てソフトウエアで再現されるため、実時間上で動作している実機では再現が難しい条件、例えば、複雑なタイミングでの多重割り込みや、滅多に発生しない例外条件なども、容易にシステムに再現することができます。
システムに与えるテストの条件、データなどは、Windowsのファイルシステムを使用して、テキストファイルで与えることが可能なため、柔軟なテストシナリオを作成することができます。

周辺デバイスの仮想HW化を支援する「IFビルダー」を搭載

周辺回路、外部デバイスをソフトウエアでモデル化するためのSDK、「IFビルダー」を提供しています。C/C++を使用して、周辺デバイスの動作をモデル化したり、仮想的なテスト装置・治具を自由に作ることができます。仮想HWモデルとシミュレータとの接続のためのクラスライブラリ・APIが提供されており、仮想HWの作成には、シミュレータについての特別な知識は必要ありません。
「IFビルダー」は、MS-VisualStudio.NETの上に構築されており、Windowsアプリ作成の感覚で、HWのモデリングが可能です。

他社製ソフトシミュレータMATLABとの協調検証も可能

他社制のモデリングツール、シミュレータと連動することで、3Dメカモデル、HDLで記述されたAISCなどを取り込んだ協調検証を行うためのインタフェースを持っています。自動車開発で多用されている「MATLAB/Simulink」との連携により、開発工程の上流でモデリングされたHWを使用して、マイコンソフトの動作検証を行うことも可能です。

カバレッジマスターwinAMS

ターゲットコードの変更一切なしにモジュール単体自動テストを実現

「カバレッジマスターwinAMS」は、モジュール単体自動テスト用ツールパッケージです。お使いのクロスコンパイラで作成したオブジェクトコードをそのまま使用して、ソフトウエア内の任意の関数の入出力テストを、自動実行することができます。

CSVファイルでテスト対象入力データを指定

モジュール単体テストでは、テストのための特別なコードの追加や変更は一切必要ありません。コンパイル後のオブジェクトコードをそのままシミュレータにロードして、テスト対象の関数名と与える入力データをCSVファイルに設定するだけで、すぐにテストが行えます。

C0、C1カバレッジテスト

関数を実行した結果、関数内の実行経路(実行されたソース行のパス)を出力する機能を持ちます。ソフトデバッグの指標であるC0(命令カバレッジ)、C1(分岐カバレッジ)のカバレッジテストを行うことができます。

STUB関数作成機能ポインタ変数にも対応

テスト時にのみ仮の関数を使用する「STUB」機能が搭載されています。関数一覧で、関数名のチェックボックスをON/OFFするだけで、簡単に関数の入れ替えが行えます。この際には、呼び出し側のソースコードを修正する必要は一切ありません。
また、ポインタ変数、引数にも対応しています。変数名を指定する際に、「$」の記号を付けるだけで、ポインタ変数の実体を自動で割り付け、CSVに指定した数値を変数値としてテスト実行することができます。

CasePlayer2

ソース解析を容易にするチャート・仕様書作成ツール

  • 「CasePlayer2」は、組み込みソースコードを解析してフローチャートなどのプログラム仕様書を作成するCASEツールです。ソースや生成したチャートを統合管理する「仕様書ビューア」を搭載しており、フローチャート、モジュール構造図と、該当ソース行のダイナミックリンク機能により、ソースコードのレビュー作業が効率的に行えます。ANSI準拠C言語、非ANSI仕様の組み込みC、組み込み向けアセンブラにも対応しています。

外部変数解析機能を搭載

プロジェクト全体に渡って、外部変数がどの位置で参照されているか、また書き込みされているかを、一覧リストで確認できます。リストから、実際のソース行へのジャンプも行えます。変数の不正なリード/ライトを素早く発見して、思わぬバグを机上で発見できる強力な機能です。

人気のコラム

最新のコラム