メインコンテンツ

AUTOSAR ソフトウェア開発における Polyspace の使用

AUTOSAR ソフトウェア開発では、開発ワークフローにおける役割に関係なく Polyspace® などの静的コード解析ツールを利用できます。

Polyspace では AUTOSAR コードを検証する 2 種類の方法がサポートされています。

  • コンポーネントベースの解析

    この方法では、AUTOSAR 設計仕様を ARXML 形式で指定します。解析では、これらの仕様が読み取られ、ソフトウェア コンポーネントごとに個別の C コード モジュールが作成され、ランタイム エラーおよび設計仕様との不一致がないか各モジュールをチェックします。

    この方法の概要については、AUTOSAR 対応の Polyspace の利点を参照してください。

  • 統合解析

    この方法では、設計仕様は指定せず、関連するすべてのソース コードが含まれている 1 つのプロジェクトに対して Code Prover を実行するだけです。解析を AUTOSAR 対応にするため、解析オプション 使用するライブラリ (-library) に値 [autosar] を使用します。

Polyspace で AUTOSAR コードのコンポーネント ベースの解析と統合解析のどちらかを選択するも参照してください。

ソフトウェア コンポーネントの実装が仕様に従っているかどうかのチェック

このチェックは、コンポーネントベースの解析でのみサポートされています。

データ型、イベント、ランナブルなど、アプリケーション層のソフトウェア コンポーネントの構造および実行時の動作を指定する OEM に所属しているとします。ソフトウェア コンポーネントのコード実装を提供する Tier 1 サプライヤーが仕様に従っているかどうかをチェックする必要があります。

各ソフトウェア コンポーネントのコード実装を個別にチェックするか、すべてのソフトウェア コンポーネント実装の結果の概要を確認します。概要を確認する方法は以下です。

  1. すべてのソフトウェア コンポーネントに対して Polyspace を実行し、すべての結果を Polyspace Access にアップロードします。

  2. 結果で以下を確認します。

    • すべてのランナブルが実装されている。[AUTOSAR ランナブルが実装されていません] チェッカーに結果が表示されているかどうかを確認します。

    • すべてのランナブルの実装が仕様のデータ制約に準拠している。[AUTOSAR ランナブルの実装の無効な結果] チェッカーに結果が表示されているかどうかを確認します。

    • Rte_ 関数の引数が仕様のデータ制約に準拠している。[AUTOSAR のランタイム環境関数の無効な使用] チェッカーに結果が表示されているかどうかを確認します。

    • 他のランタイム エラーが存在する可能性がある。

ARXML 仕様に対してソフトウェア コンポーネントのコード実装のチェックを開始する方法は以下です。

  1. ARXML フォルダーとコード フォルダーの場所を指定します。Polyspace を実行し、ARXML 仕様に対してすべてのソフトウェア コンポーネントのコード実装をチェックします。

    リモート サーバーで検証を実行する場合、検証後にすべての結果を Polyspace Access にアップロードしなければならないことを指定できます。そうしない場合は、それらを後でアップロードできます。

    サーバーでの Polyspace Code Prover の実行と Web インターフェイスへの結果のアップロードを参照してください。

  2. すべての結果を Polyspace Access にアップロードします。アップロード時、すべての結果に対して同じプロジェクト名とバージョン番号を使用していることを確認します。

    結果を Polyspace Access にアップロードを参照してください。

  3. Polyspace Access で、[プロジェクト エクスプローラー] でプロジェクト名をクリックして結果の概要を表示します。

    Polyspace Access Web インターフェイスのダッシュボード (Polyspace Access)を参照してください。

あるいは、サプライヤーにコード解析レポートを要求することもできます。レポートは、ソフトウェア コンポーネントごとに個別に生成されます。最初に、Polyspace の結果からのレポートの生成を参照してください。

仕様に対する編集の影響の評価

このチェックは、コンポーネントベースの解析でのみサポートされています。

OEM に所属しており、Tier 1 サプライヤーに指定する仕様を追加または編集する必要があるとします。編集を行う前に、既存のコード実装への潜在的な影響をテストする必要があります。

影響を受ける可能性のあるソフトウェア コンポーネントのコード実装をチェックします。変更した仕様を使用する Code Prover の解析結果と、元の仕様を使用する解析結果を比較します。

ソフトウェア コンポーネントの検証結果の比較を開始する方法は以下です。

  1. 元の仕様を使用して Polyspace を実行します。

    AUTOSAR コードに対する Polyspace の実行を参照してください。

  2. ソフトウェア コンポーネントの結果を Polyspace Access にアップロードします。

    結果を Polyspace Access にアップロードを参照してください。

  3. 更新した仕様を使用して Polyspace を再実行します。

  4. 新しい結果を Polyspace Access にアップロードします。

  5. レッド チェック、グレー チェックまたはオレンジ チェックの数が増加しているかどうかを確認します。

    Compare Results in Polyspace Access Project to Previous Runs and View Trends (Polyspace Access)を参照してください。

コード実装のランタイム エラーおよび仕様との不一致のチェック

ランタイム エラーのチェックは、コンポーネントベースの解析と統合解析の両方でサポートされています。設計仕様との不一致のチェックは、コンポーネントベースの解析でのみサポートされています。

OEM の仕様に基づいてソフトウェア コンポーネントのコード実装を提供する、Tier 1 サプライヤーに所属しているとします。オーバーフローやゼロ除算などのランタイム エラーや、ARXML 仕様のデータ制約違反をチェックする必要があります。

実装したソフトウェア コンポーネントをチェックします。特定のソフトウェア コンポーネントをチェックするには、詳細オプション -autosar-behavior を使用します。

開始方法は以下です。

  1. ソフトウェア コンポーネントのコード実装に対して Polyspace を実行します。

  2. ソフトウェア コンポーネントの実装を更新する場合、同じプロジェクトを引き続き使用してコードを再解析できます。後の解析では、前回の解析後に実装が変更されたソフトウェア コンポーネントのみが考慮されます。

AUTOSAR コードに対する Polyspace の実行を参照してください。

仕様の更新に対するコード実装のチェック

このチェックは、コンポーネントベースの解析でのみサポートされています。

OEM の仕様を実装する Tier 1 サプライヤーに所属しているとします。仕様に対するいくつかの更新を受け取ります。Polyspace を実行してコードと仕様を比較してある場合、仕様変更によってエラーが生じるかどうかをすばやくチェックできます。

この場合、おそらくはコンパイラをエミュレートするための追加のオプションを指定すれば、プロジェクトの設定は既に完了しています。これらのオプションは、新しい ARXML 仕様から新規プロジェクトを作成する際に再利用できます。

参考

トピック