Parasoft MISRA Compliance アーティファクトは、MISRA 開発ガイドラインへの準拠を直ちに証明できる、DTP インフラストラクチャのアセットの集合です。このアーティファクトは Automotive Compliance Pack に同梱されています。Compliance Pack のダウンロードおよびライセンス情報については、Parasoft 製品テクニカル サポート センターまでお問い合わせください。
このセクションの内容:
Parasoft の MISRA Compliance アーティファクトは、MISRA ガイドラインに対してコード解析を実行し、MISRA Compliance 2020 で定義された以下のレポート仕様を満たすようにデータを適合させます。
Guideline Enforcement Plan (GEP) は、各 MISRA ガイドラインを表示し、どのようにコンプライアンスがチェックされるかを示します。Parasoft での MISRA コンプライアンスのコンテキストでは、GEP は MISRA ガイドラインを Parasoft コード解析ルールおよび DTP の機能にマッピングします。
Guideline Re-categorization Plan (GRP) は、MISRA ガイドラインの分類に対する合意された変更を文書化します。ガイドラインは Mandatory (必須)、Required (必要)、および Advisory (推奨) に分類されます。ガイドラインが真に適用されない場合、4 番目のカテゴリ Disapplied (不適用) も使用されることがあります。
準拠を達成するには、すべての「必須」ガイドラインに従う必要があります。「必要」ガイドラインは従うべきガイドラインですが、文書化された例外が許容されます。「推奨」ガイドラインはベスト プラクティスと見なされます。
「必要」および「推奨」のガイドラインは、より厳格なカテゴリに再分類できます (たとえば「推奨」から「必須」)。しかし、厳格性が低下するカテゴリに (つまり「不適用」に) 再分類できるのは「推奨」ガイドラインだけです。
「逸脱 (deviation)」は、文書化されたガイドライン違反であり、違反が残ることを許可する論理的根拠です。Parasoft の MISRA 準拠のコンテキストでは、逸脱は抑制されたコード解析違反です。逸脱がレポートで文書化され、安全性に影響にしない場合、プロジェクトは逸脱がありつつも準拠していると見なすことができます。
Guideline Compliance Summary (GCS) は、全般的なプロジェクトの準拠についての主要な記録です。GCS は、各ガイドラインのエントリ、その準拠レベル、逸脱あるいは再分類などを含みます。Parasoft MISRA Compliance 拡張機能に同梱されている MISRA Compliance Report は、この要件を満たしています。
詳細については MISRA Compliance 2020: Achieving Compliance with MISRA Coding Standards を参照してください。
このコンプライアンス アーティファクトは、フロー解析ライセンスが有効化された C/C++test (Standard または Professional) で実行されたコード解析をサポートします。
DTP は、MISRA C 2023 および MISRA C++:2023 ガイドラインに対するコンプライアンスをレポートします。これは、Parasoft の静的解析で適用可能であり、MISRA C 2023 および MISRA C++:2023 コンプライアンス レポートで有効になっています。 |
Parasoft MISRA Compliance アーティファクトは、MISRA C 2023 または MISRA C++:2023 の準拠を証明するために必要なドキュメントの作成に役立ちます。以下のアセットが含まれます。
これで、MISRA ダッシュボードとウィジェットを追加できるだけでなく、MISRA レポートにアクセスできるようになりました。
MISRA ダッシュボードは、MISRA アーティファクトの一部として提供されるカスタム ウィジェットを表示するように設定されています。このダッシュボードには、MISRA C 2023 のコンテキストでコード解析データを表示するように設定されたネイティブの DTPの ウィジェットも含まれます。このセクションの情報は「ダッシュボードの追加」にも記載されています。
MISRA compliance アーティファクトに同梱されたウィジェットの詳細については「MISRA Compliance ウィジェットの表示」を参照してください。
アーティファクトに同梱された MISRA ウィジェットは、既存のダッシュボードに追加することもできます。ダッシュボードにウィジェットを追加する方法については「ウィジェットの追加」を参照してください。アーティファクトのデプロイ後、[ウィジェットの追加] オーバーレイの MISRA カテゴリに MISRA ウィジェットが表示されます。
MISRA Compliance - Percentage、MISRA Compliance - Status、および MISRA Violations by Category - TreeMap ウィジェットを追加するときに以下の情報を指定します。
タイトル | [タイトル] フィールドでウィジェット名を変更できます。 |
---|---|
フィルター | メニューから特定のフィルターまたはダッシュボード設定を選択します。詳細については「フィルターの設定」を参照してください。 |
ターゲット ビルド | メニューから特定のビルドを選択します。ダッシュボード全体について選択されたビルドがデフォルトで選択されます。ビルドの詳細については「ビルド管理の使用」を参照してください。 |
カテゴリ | この設定は MISRA Compliance - Guidelines by Status および MISRA Compliance - Status ウィジェットで利用可能です。メニューから個々のカテゴリまたは [すべて] を選択します。 |
コンプライアンス プロファイル | コンプライアンス プロファイルを指定します (「プロファイルの設定」を参照)。コンプライアンス プロファイル データは、コンプライアンス レポートを生成するために使用されます。 |
各ウィジェットは、テスト データと解析データの異なるビューを提供することで、MISRA 準拠の達成を助けます。MISRA Compliance DTP ワークフローには以下のウィジェットが同梱されています。
このウィジェットは、コンプライアンスの全般的なステータスを表示します。現在のコンプライアンス ステータスを表示するために、このウィジェットの複数のインスタンスを追加し、異なるプロファイルを使用するように設定できます。たとえば、適用されないガイドラインのプロファイルなどです。ウィジェットをクリックすると、MISRA Compliance Report が開きます。
このウィジェットは 5 種類のステータスを表示できます:
このウィジェットは、MISRA 準拠の達成度をパーセントで表示します。達成度は プロファイル で推進されるガイドラインの数に基づきます。ウィジェットをクリックすると、MISRA Compliance Report が開きます。
このウィジェットは、個々のガイドライン カテゴリ (必須、必要、推奨) またはすべてのカテゴリについて、コンプライアンス ステータスを表示します
円グラフには、最大で 5 個まで、選択したカテゴリについて異なるガイドライン ステータスを表示できます:
緑 | コードが準拠しているガイドライン。 |
黄 | コードが逸脱しているが、まだ準拠していると見なされるガイドライン。 逸脱とは、Parasoft 静的解析ルールに準じてガイドラインに従っていないが、ソフトウェアの安全性に影響しないため許容範囲と見なされる状態のことです。逸脱は、抑制された Parasoft 静的解析ルールを表します。 |
オレンジ | ガイドラインを推進する静的解析ルールに違反があるが、コードが準拠していると見なされるガイドライン。 このステータスになるのは推奨ガイドラインだけです。 |
赤 | コードが準拠していないガイドライン。 |
栗色 | プロファイル で指定されたガイドラインです。ただし、ガイドラインを推進する Parasoft ルールがありません。 |
以下の操作を行うことができます。
このウィジェットは、MISRA のカテゴリ (強制、必須、推奨) ごとに、静的解析違反が集中している箇所を表示します。このウィジェットは、違反がレポートされた各カテゴリ内のガイドライン (たとえば Dir 4.6、Rule 14.3 など) も表示します。最後に、各ガイドラインを推進する Parasoft ルールも表示されます。タイルの大きさは、ルールごとにレポートされた静的解析違反の数に比例します。
このウィジェットは、モデル プロファイル で確立された階層を利用して、ルール、ガイドライン、およびカテゴリを相関させます。タイル上にマウス ポインタを置くと、各ルール/ガイドライン/カテゴリに関連する違反の数が表示されます。
違反エクスプローラー で違反を見るには、ルールをクリックします。
MISRA Compliance Report は、MISRA コンプライアンス ステータスの概要を提供し、準拠を証明するための主要文書の役割を果たします。このレポートは以下のステータスを表示できます:
以下の操作を行うことができます。
MISRA Compliance Report には、以下のサブ レポートが含まれます:
Guideline Enforcement PlanGuidelines Enforcement Plan (GEP) は、MISRA ガイドラインを推進するために使用する静的解析ルールを表示します。各ガイドラインをどのように推進するかをユーザーに説明することを目的とします。 このレポートは、コンプライアンス プロファイルで指定されたデータを使用します (「プロファイルの設定」を参照)。プロファイルでは、[Compiler] フィールドに注釈を追加できます。たとえば、「エラーなし」や、計画を文書化するために適用される特定のコンパイラ設定などです。これらの注釈は [Compiler ] 列に表示されます。 [Analysis Tool] 列には静的解析ルールが表示されます。[Manual Review] 列には、コンパイラと解析ツールによって適用される自動チェックに加えて、実行される手動検証が表示されます。 Guideline Re-categorization Plan MISRA ガイドライン カテゴリを変更した場合 (「プロファイルの設定」を参照)、そのカテゴリは処理されてこのレポートに表示されます。ガイドライン再分類計画の詳細については MISRA 標準を参照してください。 デフォルトでは、このレポートには、コードのビルドに使用されるコンパイラは含まれていません。コンパイラをプロファイルに追加して、このレポートに表示されるようにできます。プロファイルの変更方法については「プロファイルの設定」を参照してください。 Deviations ReportMISRA Deviations Report で Deviation report リンクをクリックすると、Deviations Report が開きます。 Deviations Report は、すべてのガイドラインの ID とヘッダーを表示しますが、抑制されたガイドラインには追加情報を表示します。以下の操作を行うことができます。
ビルド監査レポートメインの MISRA Compliance Report はビルド監査レポートにリンクしており、選択したビルドで DTP に送信されたコード解析、テスト結果、およびカバレッジ情報にアクセスできます。また、データのアーカイブをダウンロードすることもできます。これは、定期的な監査で MISRA への準拠を証明するために使用できるアーティファクトです。ビルド監査レポートは、DTP に付属する標準レポートであり、MISRA コンプライアンスに固有のものではありません。 アーカイブをダウンロードするには、ビルドがロックされていなければなりません。このレポートの詳細については「ビルド監査レポート」を参照してください。 |
抑制とは、許容可能と判断されたコード解析違反を指します。いっぽう、誤検知とは、解析ルールで説明されているコーディング パターンに一致するが、アプリケーション実行時に実際の欠陥にはつながらない違反です。MISRA は、違反を抑制し、根拠を文書化することを許可しています。これらの違反は Deviations Report に追加されます。MISRA 標準は、コード解析ツールが違反を誤ってレポートしたとき、違反を誤検知としてマークすることも許可しています。
標準からの逸脱が文書化され、ソフトウェアの安全性に影響しない限り、コードは違反があっても MISRA 準拠であることができます。逸脱とは、コード中で直接抑制されたコード解析ルール、または DTP の違反エクスプローラーで抑制されたコード解析ルールです。コード中で違反を抑制する方法については、C/C++test のドキュメントを参照してください。DTP で違反を抑制する方法については、違反エクスプローラーのドキュメントの「違反の抑制」を参照してください。
ツールが誤って違反をレポートした場合、誤検知としてマークします。すると、コンプライアンス ウィジェットおよびレポートからそれらの違反が除外されます。
false positive
」と入力し、後ろに違反に関する任意の注記を入力します。DTP が次のビルドを受信したとき、抑制情報が処理されます。[抑制の詳細] フィールドのメッセージが「false positive」で始まる場合、違反は Deviation レポートを含む MISRA Compliance レポートから除外されます。
C/C++test で抑制を適用し、抑制の理由として「false positive
」を指定することでも、違反を誤検知としてマークできます。抑制を MISRA Compliance レポートから除外するには、理由が false positive
で始まっている必要があります。違反の抑制方法の詳細については C/C++test のドキュメントを参照してください。
MISRA Compliance DTP ワークフローには、MISRA C 2023 および MISRA C++ 2023 への準拠をモニタリングするように設定されたモデル プロファイル (「モデル プロファイルの使用」を参照) が同梱されています。モデル プロファイルには、コンプライアンス レポートを生成するために必要な情報が含まれます (「MISRA Compliance ウィジェットの表示」を参照)。たとえば、コンパイラ、ガイドラインの分類、再分類を指定するためのフィールドなどです。ユーザー独自の目標を達成するためにガイドラインを再分類したい場合、または独自のレポート用に追加メタデータを指定したい場合、このプロファイルを変更できます。変更は Guideline Re-categorization Plan で反映されます。
デフォルト プロファイルの複製を作成して複製を変更することを推奨します。
Disapplied (不適用)
Mandatory および/または Required のガイドラインの厳格性を低下させることは、MISRA がまとめた要件によって Parasoft Guideline Re-categorization Plan Report でのガイドラインの不正使用になります (Guideline Re-categorization Plan を参照)。Required および Advisory のガイドラインの厳格性を強化することは許されます。