最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

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 のみ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コマンド ライン-  Polyspace デスクトップ製品では、ユーザー インターフェイスでコーディング規約の XML ファイルを作成して、このファイルをコマンド ラインからの解析に使用できます。

Polyspace サーバー製品では、ゼロからコーディング規約の XML を作成する必要があります。polyspaceserverroot\polyspace\examples\cxx\Bug_Finder_Example\sources 内のファイル StandardsConfiguration.xml をテンプレートとして使用し、この XML ファイルのエントリを使用してルールをオンにします。ここで、polyspaceserverroot は Polyspace サーバー製品のルート インストール フォルダーです。たとえば、C:\Program Files\Polyspace Server\R2019a です。

たとえば、MISRA C: 2012 Rule 8.1 をオンにするには、次のエントリを使用します。

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

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

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

コーディング規約のみをチェックするには、次のようにします。

  • Bug Finder で、欠陥のチェックを無効にします。オプション [欠陥の検出] (-checkers) を使用します。

  • Code Prover で、ソース準拠のみをチェックします。オプション [検証レベル] (-to) を使用します。

    Code Prover 解析の後期段階でチェックされるルールは、MISRA C:2004 Rule 9.1、13.7、21.1 および MISRA C:2012 Rule 2.2、9.1、14.3、18.1 です。ソース準拠チェックで Code Prover を停止すると、これらのルールに対するすべての違反が解析で検出されない可能性があります。オプション [検証レベル] (-to) の選択によっても異なる検証結果が表示される可能性があります。たとえば、Code Prover で 1 回目の実行では変数が初期化されていないことを疑われたが、2 回目の実行ではその変数が初期化されていると証明される可能性があります。この場合、1 回目の実行では MISRA C:2012 Rule 9.1 の違反が表示されますが、2 回目の実行では表示されません。

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

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

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

詳細な手順は、解析結果のレビューを参照してください。

レポートの生成

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

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

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

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

関連するトピック