Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コーディング規約違反のチェックおよびレビュー

Polyspace® では、C/C++ コードに MISRA C™:2012 ルールなどのコーディング ルール違反がないかどうかをチェックできます。コーディング ルールに従うことにより、欠陥の数を減らしてコードの品質を改善することができます。

Polyspace では、次の規約に対するコーディング ルール違反を検出できます。

  • MISRA C:2004

  • MISRA C:2012

  • MISRA™ C++

  • JSF AV C++

  • AUTOSAR C++14 (Bug Finder のみ)

  • CERT® C (Bug Finder のみ)

  • CERT C++ (Bug Finder のみ)

  • CWE™ (Bug Finder のみ)

  • ISO®/IEC TS 17961 (Bug Finder のみ)

  • ガイドライン "(Bug Finder のみ)"

コーディング ルール チェックの構成

Example Coding Standards & Code Metrics pane

規格および事前定義されたチェッカーのサブセットの指定

Polyspace 解析オプションを通じてコーディング ルールを指定します。Bug Finder を実行する場合、解析では、その他のチェックに加えてコーディング ルール違反を調査します。その他のチェックを無効にして、コーディング ルール違反のみを調査することができます。

Polyspace ユーザー インターフェイス (デスクトップ製品) では、このオプションは [コンフィギュレーション] ペインの [コーディング規約およびコード メトリクス] ノードにあります。

C コードに対しては、次のいずれかのオプションを使用します。

C++ コードに対しては、次のいずれかのオプションを使用します。

MISRA C:2012 の [mandatory] など、事前定義されたルールのサブセットを指定できます。通常、これらのサブセットは規格で定義されます。

正規表現を使用して識別子の命名規則を定義することもできます。カスタム コーディング ルールの作成を参照してください。

チェッカーのサブセットのカスタマイズ

事前定義されたサブセットの代わりに、コーディング規約からルールの独自のサブセットを指定できます。

ユーザー インターフェイス (デスクトップ製品のみ)

  1. コーディング規約を選択します。ルールのサブセットのドロップダウン リストから、[from-file] を選択します。[編集] をクリックします

  2. [チェッカーの選択] ウィンドウの左側のペインでコーディング規約が強調表示されます。右側のペインで、解析に含めるルールを選択します。

    • [Guidelines][Software Complexity] チェッカーを選択した場合、それぞれのしきい値をレビューします。既定のしきい値が許容できない場合、[しきい値] 列で適切なしきい値を指定します。ガイドラインをチェック (-guidelines) を参照してください。

    • [カスタム] ルールを選択した場合、ルールの [パターン] および [規則] をレビューします。カスタム ルールのチェック (-custom-rules) を参照してください。

ルールの選択を保存すると、複数の解析で再利用できる XML ファイルにコンフィギュレーションが保存されます。すべてのコーディング規約で選択したルールが同じファイルに含まれています。このファイルを複数のプロジェクトで再利用して、チームや組織で共通のコーディング規約を適用することができます。Polyspace ユーザー インターフェイスで、このファイルを別のプロジェクトで再利用するには、次のようにします。

  • プロジェクト コンフィギュレーションでコーディング規約を選択します。ルールのサブセットのドロップダウン リストから、[from-file] を選択します。

  • [編集] をクリックして、ファイルの場所を参照します。または、オプション [ファイルごとにチェッカーを設定] (-checkers-selection-file) の引数としてファイル名を入力します。

コマンド ライン.  Polyspace デスクトップ製品では、ユーザー インターフェイスでコーディング規約の XML ファイルを作成して、このファイルをコマンド ラインからの解析に使用できます。オプション [ファイルごとにチェッカーを設定] (-checkers-selection-file) でこの XML ファイルを指定します。

Polyspace サーバー製品では、はじめからコーディング規約の XML を作成する必要があります。有効にする規約に応じて、polyspaceserverroot\help\toolbox\bugfinder\examples\coding_standards_XML に含まれているいずれかのファイルの書き込み可能なコピーを作成し、その XML ファイル内のエントリを使用してルールをオフにします (テンプレートでは、規約のすべてのルールが有効になっています)。ここで、polyspaceserverroot は Polyspace Server 製品のルート インストール フォルダーです。たとえば、C:\Program Files\Polyspace Server\R2023b です。

たとえば、MISRA C:2012 Rule 8.1 をオフにするには、ファイル misra_c_2012_rules.xml のコピーに含まれる次のエントリを使用します。

<standard name="MISRA C:2012">
  ...
  <section name="8 Declarations and definitions">
      ...
      <check id="8.1" state="off">
      </check>
      ...
  </section>
  ...
</standard>

ガイドライン チェッカーを使用する場合、threshold タグの間にそれぞれのしきい値を指定します。たとえば、チェッカー [循環的複雑度がしきい値を超えている] を有効にしてこのチェッカーのしきい値を 5 に設定するには、guidelines.xml のコピーで次のエントリを使用します。

<check id="SC18" state="on">
        <threshold>5</threshold>
</check>

Bug Finder の MISRA C:2012 解析でこの XML ファイルを使用するには、次のように入力します。

polyspace-bug-finder -sources filename -misra3 from-file -checkers-selection-file misra_c_2012_rules.xml

すべてのルール ID とセクション名のリストについては、以下を参照してください。

メモ

チェッカーのコンフィギュレーション ファイルの形式は XML ですが、将来のリリースで変更される可能性があります。

コーディング規約のみのチェック

Bug Finder 解析は、C/C++ コードで以下のチェックをします。

  • 既定の一連の欠陥 (バグ)

  • 指定したコーディング規約への準拠。

コーディング規約のみをチェックするには、欠陥チェックをすべて無効にします。オプション [欠陥の検出] (-checkers)[なし] を指定します。

コーディング ルール違反のレビュー

解析後、[結果のリスト] ペインにコーディング規約違反が表示されます。違反を選択すると [結果の詳細] ペインに詳細が表示され、[ソース] ペインにソース コードが表示されます。

コーディング規約違反は、ソース コード内では アイコンで示されます。

詳細な手順は、解析結果のレビューまたはWeb ブラウザーでの Polyspace Bug Finder の結果のレビューを参照してください。

レポートの生成

コーディング規約に合わせて明示的に定義されたテンプレートを使用してレポートを作成できます。[CodingStandards] テンプレートを使用します。これは次のようなテンプレートです。

  • 解析結果のコーディング規約違反のみを報告し、欠陥、ランタイム エラー、コード メトリクスなど他の種類の結果を省略。

  • コーディング規約ごとにレポート内に個別の章を作成し、各章ではすべての規約違反の概要を示してから、それぞれの違反をリスト。

レポート テンプレートを指定するには、オプション [Bug Finder と Code Prover のレポート] (-report-template) を使用します。

関連するトピック