Parasoft AUTOSAR Compliance アーティファクトは、AUTOSAR 開発ガイドラインへの準拠を直ちに証明できる、DTP インフラストラクチャのアセットの集合です。AUTOSAR Compliance アーティファクトは、あらゆる AUTOSAR 標準をサポートするために適合させることができますが、デフォルトでは AUTOSAR C++ 14 (バージョン 19.03) 用に構成されています。このアーティファクトは Automotive Compliance Pack に同梱されています。Compliance Pack のダウンロードおよびライセンス情報については、Parasoft 製品テクニカル サポート センターまでお問い合わせください。
このセクションの内容:
背景
AUTOSAR (AUTomotive Open System ARchitecture) は、自動車エレクトロニクス、セミコンダクター、ソフトウェア業界に属する自動車メーカー、 サプライヤー、サービス提供業者、および企業から構成されるグローバル開発パートナーシップです。AUTOSAR は、基本的なシステム機能と機能インターフェイスの標準化に特化しています。これらのシステムの開発ガイダンスを提供する標準を作成および公開することで、これらの取り組みをサポートします。
Parasoft の AUTOSAR Compliance アーティファクトは、AUTOSAR ルールに対してコード解析を実行するよう構成し、AUTOSAR C++14 で定義されたレポート仕様を満たすようにデータを適合させます。AUTOSAR C++14 は MISRA C++:2008 標準の拡張であり、MISRA 標準で使用されているのと同じルール、規約、用語の多くを使用します。
ルールは以下の特性に基づいて分類されます:
義務レベル
ルールは「必須」または「推奨」のいずれかに分類されます。必須ルールは強制であり、AUTOSAR C++14 への準拠を主張するためには適合されなければなりません。必須ルールからの逸脱は正式に文書化しなければなりません。推奨ルールは、合理的に現実的であるとして従われるべきです。推奨ルールからの逸脱は正式な文書を必要としませんが、適切な場合は引き上げられるべきです。
静的解析によって推進される能力
ルールは「自動」「部分的に自動」「非自動」のいずれかに分類されます。AUTOSAR によると、「自動」のルールは静的解析ルールで自動的に推進可能です。「部分的に自動」のルールは手動コード レビューの支援として静的コード解析を使ってサポートできます。「非自動」のルールは、静的解析を使って合理的に支援できず、手動コード レビューなどの他の検証手段を必要とします。
標準は、静的コード解析テクノロジの制限についての仮定に基づきます。しかし、Parasoft のコード解析は、非自動ガイドライン違反につながる可能性のあるコード パターンをチェックすることができます。
ターゲット
ルールはターゲットに従って分類されます。
- architecture
- design
- implementation
- infrastructure
- toolchain
- verification
AUTOSAR ルールとコンプライアンス プロセスの詳細については「Guidelines for the use of the C++14 language in critical and safety-related systems」 (PDF) を参照してください。
前提条件
AUTOSAR アーティファクトは、フロー解析および Automotive Compliance Pack のライセンスが有効化された C/C++test 2020.2 以降 (Standard または Professional) からのデータをサポートします。
基本的な操作手順
- Automotive Compliance Pack を DTP Extension Designer にインストールします
- DTP 環境に AUTOSAR DTP ワークフローをデプロイします。この操作は AUTOSAR Compliance 拡張のアセット もデプロイします。
- AUTOSAR C++14 Coding Guidelines テスト コンフィギュレーションを使って C++test でコードを解析し、違反を DTP にレポートします。ローカル テスト コンフィギュレーションまたは Automotive Compliance Pack に同梱のテスト コンフィギュレーションを使用するように C++test を設定できます。
- AUTOSAR ダッシュボードとウィジェットを DTP インターフェイスに追加します。
- ウィジェットとレポートを利用して、修正が必要なコードを特定したり、監査のためにレポートを出力したりします。
100% 準拠の達成
AUTOSAR C++14 によると、静的解析では推進できないガイドラインが一部あります。結果として、DTP は「自動化されたガイドライン」および「Parasoft 静的解析ルールにマッピングできる、適用可能な部分的に自動化されたガイドライン」に対して 100% 準拠をレポートします。
AUTOSAR Compliance 拡張アセット
Parasoft AUTOSAR Compliance アーティファクトは、AUTOSAR C++14 の準拠を証明するために必要なドキュメントの作成に役立ちます。以下のアセットが含まれます。
- コンプライアンス カテゴリとガイドライン: これらのファイルは、DTP インターフェイスに AUTOSAR Compliance オプション (ウィジェット設定など) を追加します。
- テスト コンフィギュレーション: これらのファイルは、どのコード解析ルールを実行するかを指定します。ローカル テスト コンフィギュレーションを実行するか、または DTP にアップロードされたテスト コンフィギュレーションを実行するように C++test を設定できます。
- ダッシュボード テンプレート: このファイルは、定義済みの AUTOSAR 関連ウィジェットを含む AUTOSAR C++14 ダッシュボードの追加を可能にします。
- モデルとプロファイル: これらのファイルは、準拠の証明に必要なレポート データを表示するためのフレームワークを提供します。詳細については「Profile Configuration」を参照してください。
- DTP ワークフロー: これは、AUTOSAR ガイドラインのコンテキストで違反を表示するウィジェット、レポート、処理ロジックを含む DTP Enterprise Pack アーティファクトです。
DTP ワークフローのインストールとデプロイ
- AUTOSAR Compliance アーティファクトは、Automotive Compliance Pack の一部としてインストールされます。詳細については「インストール」を参照してください。
- DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択します。
- [サービス] タブをクリックし、サービス カテゴリを選択します。任意のサービス カテゴリにアーティファクトをデプロイできます。また、新しいカテゴリを作成することもできます (「サービスの使用」を参照)。ただし、DTP ワークフロー サービス カテゴリにアーティファクトをデプロイすることを推奨します。
- 既存のサービスにアーティファクトをデプロイするか、新しいサービスを追加できます。サービスにデプロイしたアーティファクトの数は、全般的なパフォーマンスに影響します。詳細については「Extension Designer のベスト プラクティス」を参照してください。既存のサービスを選択し、ステップ 6 まで継続するか、または [サービスの追加] をクリックします。
- サービスの名前を指定して [確認] をクリックします。
- タブ インターフェイスによって、サービス内でアーティファクトを配置できます。複数のタブにまたがってアーティファクトを配置してもシステムのパフォーマンスには影響しません。タブをクリックし (または [+] ボタンをクリックして新しいタブを追加し)、縦の三点メニューから [読み込み] を選択します。
- [ライブラリ] > [Workflows] > [Automotive] > [AUTOSAR Compliance] を選択し、[読み込み] をクリックします。
- 空いている任意の箇所をクリックしてサービスにアーティファクトを追加します。
- [デプロイ] をクリックし、DTP 環境へのアーティファクトのデプロイを完了します。
- DTP に戻ってブラウザーをリフレッシュします。
これで、AUTOSAR ダッシュボードとウィジェットを追加できるだけでなく、AUTOSAR レポートにアクセスできるようになりました。
AUTOSAR ダッシュボードの追加
AUTOSAR ダッシュボードは、AUTOSAR アーティファクトの一部として提供されるカスタム ウィジェットを表示するように設定されています。このダッシュボードには、AUTOSAR C++14 のコンテキストでコード解析データを表示するように設定されたネイティブの DTPの ウィジェットも含まれます。このセクションの情報は「ダッシュボードの追加」にも記載されています。
- [ダッシュボードの追加] をクリックして名前を指定します。
- (オプション) 以下の情報を指定して、ダッシュボードのデフォルト ビューを設定できます。
- [フィルター] ドロップダウン メニューで、プロジェクトに関連するフィルターを選択します。フィルターは、DTP に格納されたデータをカスタマイズして表示できるラン コンフィギュレーション セットを表します。詳細については「DTP の概念」を参照してください。
- [期間] ドロップダウン メニューで時間の範囲を指定します。
- [ベースライン ビルド] および [ターゲット ビルド] ドロップダウン メニューで、ビルド範囲を指定します。
- [テンプレートからダッシュボードを作成] オプションを有効化し、ドロップダウン メニューから AUTOSAR C++14 Compliance を選択します。
- [作成] をクリックしてダッシュボードの追加を完了します。
アーティファクトに同梱の AUTOSAR 固有のウィジェットに加えて (「Viewing AUTOSAR Compliance Widgets」を参照)、このダッシュボードにはネイティブの [カテゴリ - 上位 5 表] DTP ウィジェットの 3 つの実装が含まれます。これらのウィジェットは、アーティファクトに同梱の AUTOSAR C++14 コンプライアンス カテゴリを使用するように設定されています。
Top 5 AUTOSAR Violations
このウィジェットは、違反数が上位 5 の Parasoft ルールを表示します。[Name] 列のリンクをクリックすると、 Violations by Rule レポートが表示されます。[さらに表示] をクリックすると、コンプライアンス カテゴリ別の違反 レポートが表示されます。
AUTOSAR Violations by Analysis
このウィジェットは、「自動」「非自動」「部分的に自動」の分類ごとに違反の分析を表示します (「Ability to be Enforced by Static Analysis」を参照)。[Name] 列のリンクをクリックすると、 Violations by Rule レポートが表示されます。
Top 5 AUTOSAR Guidelines
このウィジェットは、違反数が上位 5 の AUTOSAR ガイドラインを表示します。[Name] 列のリンクをクリックすると、 Violations by Rule レポートが表示されます。[さらに表示] をクリックすると、コンプライアンス カテゴリ別の違反 レポートが表示されます。
ウィジェットの構成
AUTOSAR Compliance アーティファクトには以下のウィジェットが同梱されています。
- AUTOSAR Compliance - Guidelines by Status
- AUTOSAR Compliance - Percentage
- AUTOSAR Compliance - Status
- AUTOSAR Violations by Obligation - TreeMap
ダッシュボードに AUTOSAR Compliance ウィジェットを手動で追加できます (「ウィジェットの追加」を参照)。[ウィジェットの追加] オーバーレイの [AUTOSAR] カテゴリにウィジェットが表示されます:
以下の設定を行うことができます。
タイトル | [タイトル] フィールドでウィジェット名を変更できます。 |
---|---|
Filter (フィルター) | ドロップダウン メニューから特定のフィルターまたはダッシュボード設定を選択します。詳細については「フィルターの作成と管理」を参照してください。 |
Target Build (ターゲット ビルド) | ドロップダウン メニューから特定のビルドを選択します。ダッシュボード全体について選択されたビルドがデフォルトで選択されます。ビルドの詳細については「ビルド管理の使用」を参照してください。 |
Obligation (義務) | この設定は AUTOSAR Compliance - Guidelines by Status および AUTOSAR Compliance - Status ウィジェットで利用可能です。以下のいずれかを選択します:
|
Target (ターゲット) | この設定は AUTOSAR Compliance - Guidelines by Status および AUTOSAR Compliance - Status ウィジェットで利用可能です。以下のいずれかを選択します:
|
Analysis (解析) | この設定は AUTOSAR Compliance - Guidelines by Status および AUTOSAR Compliance - Status ウィジェットで利用可能です。以下のいずれかを選択します:
|
コンプライアンス プロファイル | コンプライアンス プロファイルを指定します (「Profile Configuration」を参照)。コンプライアンス プロファイルは、コンプライアンス レポートを生成するために使用されます。 |
AUTOSAR Compliance ウィジェットの表示
各ウィジェットは、コード解析データを異なるビューで表示することで、AUTOSAR への準拠の達成を助けます。AUTOSAR Compliance DTP ワークフローには以下のウィジェットが同梱されています。
AUTOSAR Compliance - Status
このウィジェットは、コンプライアンスの全般的なステータスを表示します。ウィジェットをクリックすると、AUTOSAR Compliance Report が開きます。
このウィジェットは 5 種類のステータスを表示できます:
- Compliant (準拠): コードはすべてのガイドラインを満たしており、ガイドライン カテゴリからの逸脱や変更はありません。
- Not Compliant (準拠していない): コードはすべての必須ガイドラインを満たしていません。
- Missing Rule(s) in Analysis (見つからないルールが解析に存在): プロファイル で文書化された Parasoft コード解析ルールが、指定のビルドに含まれていませんでした。すべてのルールが C++test で有効化されていることを確認し、解析を再実行してください。
- Compliant With Deviations (逸脱があるが準拠): コードはすべてのガイドラインを満たしていますが、逸脱が適用されています。逸脱は、許容可能であるとユーザーが判断した違反です (逸脱の詳細については「Deviations Report」を参照してください)。
- Compliant With Violations (違反があるが準拠): コードはすべての必須ガイドラインを満たしていますが、推奨ガイドラインの違反があります。
AUTOSAR Compliance - Percentage
このウィジェットは、AUTOSAR への準拠の達成度をパーセントで表示します。達成度は プロファイル で推進されるガイドラインの数に基づきます。ウィジェットをクリックすると、AUTOSAR Compliance Report が開きます。
AUTOSAR Compliance - Guidelines by Status
このウィジェットは、個々の義務カテゴリ (すべて、必須、推奨) についてコンプライアンス ステータスを表示します
円グラフには、最大で 5 個まで、選択したカテゴリについて異なるガイドライン ステータスを表示できます:
緑 | コードが準拠しているガイドライン。 |
黄 | コードが逸脱しているが、まだ準拠していると見なされるガイドライン。 逸脱とは、Parasoft 静的解析ルールに準じてガイドラインに従っていないが、ソフトウェアの安全性に影響しないため許容範囲と見なされる状態のことです。逸脱は、抑制された Parasoft 静的解析ルールを表します。 |
オレンジ | ガイドラインを推進する静的解析ルールに違反があるが、コードが準拠していると見なされるガイドライン。 このステータスになるのは推奨ガイドラインだけです。 |
赤 | コードが準拠していないガイドライン。 |
栗色 | プロファイル で指定されたガイドラインです。ただし、ガイドラインを推進する Parasoft ルールがありません。 |
以下の操作を行うことができます。
- 円グラフ上にマウス ポインタを置くと、詳細が表示されます。
- グラフ セクションをクリックすると、カテゴリとステータスでフィルタリングされた AUTOSAR Compliance Report が開きます。
- 違反の数をクリックすると、カテゴリとステータスでフィルタリングされた AUTOSAR Compliance Report が開きます。
- 逸脱の数をクリックすると、ウィジェットで選択したカテゴリでフィルタリングされた Deviations Report が開きます。
AUTOSAR Violations by Obligation - TreeMap Widget
このウィジェットは、AUTOSAR の義務カテゴリ (必須、推奨) ごとに、静的解析違反が集中している箇所を表示します。このウィジェットは、違反がレポートされた各カテゴリ内のガイドラインも表示します。最後に、各ガイドラインを推進する Parasoft ルールも表示されます。タイルの大きさは、ルールごとにレポートされた静的解析違反の数に比例します。
このウィジェットは、モデル プロファイル で確立された階層を利用して、ルール、ガイドライン、およびカテゴリを相関させます。タイル上にマウス ポインタを置くと、各ルール-ガイドライン-カテゴリに関連する違反の数が表示されます。
違反エクスプローラー で違反を見るには、ルールをクリックします。
AUTOSAR Compliance レポートの表示
AUTOSAR Compliance Report は、AUTOSAR コンプライアンス ステータスの概要を提供し、準拠を証明するための主要文書の役割を果たします。各ガイドラインのエントリ、その準拠レベル、逸脱あるいは再分類などを含みます。
以下の操作を行うことができます。
- ドロップダウン メニューを使って、義務レベル、ターゲット、解析、またはコンプライアンス ステータスでフィルタリングします。
- [Guideline] 列でガイドラインのリンクをクリックして Guideline Enforcement Plan を開きます。ガイドラインを推進する Parasoft コード解析ルールをレビューできるように、リンクから特定のガイドラインに直接移動します。
- 違反エクスプローラー で違反を確認するには、[違反の数] 列のリンクをクリックします。
- 違反エクスプローラー で違反を確認するには、[逸脱の数] 列のリンクをクリックします。
- AUTOSAR Compliance サブ レポートの 1 つを開きます。
- プリンター印刷に適した PDF 形式のレポートをエクスポートするには、[Download PDF] をクリックします。「ナビゲーション バーへの画像の追加」で説明するように DTP にカスタム グラフィックを追加した場合、PDF にもカスタム グラフィックが表示されます。
AUTOSAR Compliance Report には、以下のサブ レポートが含まれます:
Guideline Enforcement Plan
Guidelines Enforcement Plan (GEP) は、Parasoft コード解析ルールおよび他の情報にマッピングされた AUTOSAR ガイドラインの一覧を表示し、どのように準拠がチェックされるかを示します。
このレポートは、コンプライアンス プロファイルで指定されたデータを使用します (「Profile Configuration」を参照)。プロファイルでは、[Compiler] フィールドに注釈を追加できます。たとえば、「エラーなし」や、計画を文書化するために適用される特定のコンパイラ設定などです。これらの注釈は [Compiler ] 列に表示されます。
[Analysis Tool] 列には静的解析ルールが表示されます。[Manual Review] 列には、コンパイラと解析ツールによって適用される自動チェックに加えて、実行される手動検証が表示されます。
Guideline Re-categorization Plan
ガイドラインの義務レベルを「推奨」から「必須」に変更し、なお AUTOSAR C++14 への準拠を主張することができます。ただし、ガイドラインを「推奨」として再分類することはできません。AUTOSAR ガイドライン カテゴリを変更した場合 (「Profile Configuration」を参照)、そのカテゴリは処理されてこのレポートに表示されます。
Deviation Report
「逸脱 (deviation)」は、文書化されたガイドライン違反であり、違反が残ることを許可する論理的根拠です。Parasoft の AUTOSAR 準拠のコンテキストでは、逸脱は抑制されたコード解析違反です。逸脱がレポートで文書化され、安全性に影響にしない場合、プロジェクトは逸脱がありつつも準拠していると見なすことができます。
標準からの逸脱が文書化され、ソフトウェアの安全性に影響しない限り、コードは違反があっても AUTOSAR 準拠であることができます。逸脱とは、コード中で直接抑制されたコード解析ルール、または DTP の違反エクスプローラーで抑制されたコード解析ルールです。コード中で違反を抑制する方法については、C++test のドキュメントを参照してください。DTP で違反を抑制する方法については、違反エクスプローラーのドキュメントの「違反の抑制」を参照してください。
AUTOSAR Compliance Report で Deviations Report リンクをクリックすると、Deviation Report が開きます。
Deviations Report は、すべてのガイドラインの ID とヘッダーを表示しますが、抑制されたガイドラインには追加情報を表示します。以下の操作を行うことができます。
- 義務レベル、ターゲット、および解析タイプ (自動、部分的に自動、非自動) でレポートをフィルタリングします
- [Only Deviations] オプションを有効化して、逸脱だけを表示します。
- [Hide Modification History] オプションを有効化して、逸脱の変更履歴を非表示にします。
ビルド監査レポート
メインの AUTOSAR Compliance Report はビルド監査レポートにリンクしており、選択したビルドで DTP に送信されたコード解析、テスト結果、およびカバレッジ情報にアクセスできます。また、データのアーカイブをダウンロードすることもできます。これは、定期的な監査で AUTOSAR への準拠を証明するために使用できるアーティファクトです。ビルド監査レポートは、DTP に付属する標準レポートであり、AUTOSAR コンプライアンスに固有のものではありません。
アーカイブをダウンロードするには、ビルドがロックされていなければなりません。このレポートの詳細については「ビルド監査レポート」を参照してください。
プロファイルの設定
AUTOSAR Compliance DTP ワークフローには、AUTOSAR C++14 への準拠をモニタリングするように設定されたモデル プロファイル (「モデル プロファイルの使用」を参照) が同梱されています。このプロファイルは、コンプライアンス レポートを生成するために必要な情報を含みます (「AUTOSAR コンプライアンス レポートの表示」を参照)。コンパイラを指定するフィールドを含むほか、ガイドラインの分類と再分類についての情報を含みます。ユーザー独自の目標を達成するためにガイドラインを再分類したい場合、または独自のレポート用に追加メタデータを指定したい場合、このプロファイルを変更できます。変更は Guideline Re-categorization Plan で反映されます。
デフォルト プロファイルの複製を作成して複製を変更することを推奨します。
- DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択します。
- [モデル プロファイル] タブをクリックし、AUTOSAR Compliance メニューを展開します。
- AUTOSAR C++14 をクリックし、[プロファイルのエクスポート] をクリックして複製をダウンロードします。
- [プロファイルの追加] をクリックして名前を指定します。
- [確認] をクリックします。空のプロファイルが追加されます。
- エクスポートしたデフォルト プロファイルの複製の名前を変更し、[プロファイルのインポート] を選択します。
- 複製を選択してアップロードします。
- ガイドラインをクリックし、変更を指定します。ガイドラインの義務レベルを「推奨」から「必須」に変更し、AUTOSAR C++14 への準拠を主張することはできますが、必須ルールを「推奨」として再分類することはできません。
- [保存] をクリックします。
AUTOSAR Compliance のアップグレード
DTP をアップグレードするときに拡張を更新できます。拡張は上位互換であるように設計されていますが、新しいバージョンの DTP での動作は保証されません。拡張を適切に動作させるには、最新バージョンのアーティファクトをインストールすること、および以前のバージョンを削除することを強く推奨します。
- 「インストール」のセクションで説明しているように、Automotive Compliance Pack の最新バージョンをインストールします。
- 設定メニュー (歯車のアイコン) から [Extension Designer] を選択し、[設定] をクリックします。
- DTP Workflow コンプライアンス カテゴリ (または古い AUTOSAR アーティファクトのサービスを含むカテゴリ) を展開し、service をクリックします。
- AUTOSAR フローを含むタブをクリックし、すべてのノードを削除します。マウスを使ってすべてのノードをクリックしてドラッグ選択するか、キーボード ショートカットのすべて選択を使用できます。
- 縦の三点メニューから [読み込み] > [ライブラリ] > [Workflows] > [Automotive] > [AUTOSAR Compliance] を選択して新しい AUTOSAR Compliance アーティファクトをインポートします。
- [デプロイ] をクリックし、新しい AUTOSAR アセットのデプロイを完了します。
- [構成] タブをクリックし、古い拡張の削除ボタン (ゴミ箱のアイコン) をクリックします。