このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
コーディング規約違反のチェックおよびレビュー
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 のみ)"
コーディング ルール チェックの構成
規格および事前定義されたチェッカーのサブセットの指定
Polyspace 解析オプションを通じてコーディング ルールを指定します。Bug Finder を実行する場合、解析では、その他のチェックに加えてコーディング ルール違反を調査します。その他のチェックを無効にして、コーディング ルール違反のみを調査することができます。
Polyspace ユーザー インターフェイス (デスクトップ製品) では、このオプションは [コンフィギュレーション] ペインの [コーディング規約およびコード メトリクス] ノードにあります。
C コードに対しては、次のいずれかのオプションを使用します。
生成コードに対して、生成コードに固有のオプションを有効にします。
生成コードに対して、生成コードに固有のオプションを有効にします。
C++ コードに対しては、次のいずれかのオプションを使用します。
MISRA C:2012 の [mandatory]
など、事前定義されたルールのサブセットを指定できます。通常、これらのサブセットは規格で定義されます。
正規表現を使用して識別子の命名規則を定義することもできます。カスタム コーディング ルールの作成を参照してください。
チェッカーのサブセットのカスタマイズ
事前定義されたサブセットの代わりに、コーディング規約からルールの独自のサブセットを指定できます。
ユーザー インターフェイス (デスクトップ製品のみ)
コーディング規約を選択します。ルールのサブセットのドロップダウン リストから、
[from-file]
を選択します。[編集] をクリックします[チェッカーの選択] ウィンドウの左側のペインでコーディング規約が強調表示されます。右側のペインで、解析に含めるルールを選択します。
[Guidelines] 、 [Software Complexity] チェッカーを選択した場合、それぞれのしきい値をレビューします。既定のしきい値が許容できない場合、[しきい値] 列で適切なしきい値を指定します。
ガイドラインをチェック (-guidelines)
を参照してください。[カスタム] ルールを選択した場合、ルールの [パターン] および [規則] をレビューします。
カスタム ルールのチェック (-custom-rules)
を参照してください。
ルールの選択を保存すると、複数の解析で再利用できる XML ファイルにコンフィギュレーションが保存されます。すべてのコーディング規約で選択したルールが同じファイルに含まれています。このファイルを複数のプロジェクトで再利用して、チームや組織で共通のコーディング規約を適用することができます。Polyspace ユーザー インターフェイスで、このファイルを別のプロジェクトで再利用するには、次のようにします。
プロジェクト コンフィギュレーションでコーディング規約を選択します。ルールのサブセットのドロップダウン リストから、
[from-file]
を選択します。[編集] をクリックして、ファイルの場所を参照します。または、オプション
[ファイルごとにチェッカーを設定] (-checkers-selection-file)
の引数としてファイル名を入力します。
コマンド ライン. Polyspace デスクトップ製品では、ユーザー インターフェイスでコーディング規約の XML ファイルを作成して、このファイルをコマンド ラインからの解析に使用できます。オプション [ファイルごとにチェッカーを設定] (-checkers-selection-file)
でこの XML ファイルを指定します。
Polyspace サーバー製品では、はじめからコーディング規約の XML を作成する必要があります。有効にする規約に応じて、
に含まれているいずれかのファイルの書き込み可能なコピーを作成し、その XML ファイル内のエントリを使用してルールをオフにします (テンプレートでは、規約のすべてのルールが有効になっています)。ここで、polyspaceserverroot
\help\toolbox\bugfinder\examples\coding_standards_XML
は Polyspace Server 製品のルート インストール フォルダーです。たとえば、polyspaceserverroot
C:\Program Files\Polyspace Server\R2023a
です。
たとえば、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)
を使用します。