メインコンテンツ

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

コーディング規約およびコード メトリクスをチェックする Code Prover ワークフローの Bug Finder への移行

以前のリリースの Polyspace® Code Prover では、外部コーディング規約のチェックとコード複雑度メトリクスの計算がサポートされていました。たとえば、Code Prover を次の用途に使用できました。

  • MISRA C:2012 や MISRA C++:2008 などの外部コーディング規約への準拠のチェック。

  • 命名規則への準拠のチェック。

  • コード複雑度標準への準拠のチェック。

  • コード メトリクスの計算。

上記の機能のサポートは、Code Prover から削除されました。これらのタスクの実行に推奨されるツールは Polyspace Bug Finder です。Code Prover の使用から Bug Finder の使用に移行するように、ワークフローを変更してください。

ワークフローの変更

場合によっては、Code Prover から Bug Finder に移行するために、ワークフローを変更する必要があります。

コーディング ルール違反のチェックとコード メトリクスの計算

これまでは、このタスクを行うには [構成] ペインで適切なオプションを設定し、[Code Prover の実行] をクリックしていました。Bug Finder の使用へ移行するには、次のようにします。

  • Polyspace ユーザー インターフェイスの [構成] ペインで同じオプションを設定してから、[Bug Finder の実行] をクリックします。

  • コマンド ラインで polyspace-code-proverpolyspace-bug-finder に置き換えます。Bug Finder を有効にしない場合は、-checkers に値 none を指定します。たとえば、次のコマンドを置き換えます。

    polyspace-code-prover -sources file_name -misra3 all -code-metrics 
    上記のコマンドを次のコマンドで置き換えます。
    polyspace-bug-finder -sources file_name -misra3 all -code-metrics -checkers none

Polyspace Bug Finder と Code Prover では、一部のコーディング ルールのチェック方法が異なります。Bug Finder への移行後に、コーディング ルール違反の数と位置が多少異なることがあります。

コード メトリクスの計算、ランタイム エラーとコーディング ルール違反のチェック

以前は、これらのタスクを行うには [構成] ペインで適切なオプションを設定してから、[Code Prover の実行] をクリックしていました。Bug Finder の使用へ移行するには、次のようにします。

  • Polyspace ユーザー インターフェイスの [構成] ペインで同じオプションを設定します。次に、2 つの個別の Polyspace 解析を実行してその結果を取得します。Bug Finder 解析を実行して、コード ルール違反のチェックとコード メトリクスの計算を行います。ランタイム エラーをチェックするには、別の Code Prover 検証を実行します。

  • コマンド ラインで、適切な解析オプションを指定したコマンド polyspace-bug-finderpolyspace-code-prover を使用して、Bug Finder 解析と Code Prover 解析を個別に実行します。たとえば、次のコマンドを置き換えます。

    polyspace-code-prover -sources file_name -misra3 all -code-metrics
    上記のコマンドを次のコマンドで置き換えます。
    polyspace-bug-finder -sources file_name -code-metrics -misra3 all -checkers none
    polyspace-code-prover -sources file_name

コード メトリクスの計算、生成されたコードでのランタイム エラーとコーディング ルール違反のチェック

以前は、これらのタスクを行うには、Polyspace 解析を設定してから、Code Prover 検証を開始しました。Bug Finder の使用へ移行するには、次のようにします。

  • Simulink® ツールストリップで、以前と同じ構成を使用します。次に、Bug Finder 解析と Code Prover 解析を個別に実行します。

  • MATLAB® コマンド ウィンドウで、個別の polyspace.ModelLinkOptions および polyspace.Project オブジェクトのセットを使用して、Bug Finder 解析と Code Prover 解析を個別に実行します。

 サンプル MATLAB コード

ランタイム エラー、コーディング ルール違反、およびコード メトリクスを含む Polyspace レポートの作成

以前は、ランタイム エラー、コード メトリクス、コーディング ルール違反などの結果を含む 1 つのレポートを作成するように Code Prover 検証を設定していました。Bug Finder の使用へ移行するには、同じオプションを設定して Bug Finder 解析と Code Prover 解析を個別に実行します。コード メトリクスの計算、ランタイム エラーとコーディング ルール違反のチェックを参照してください。

Bug Finder と Code Prover の結果はそれぞれ別のレポートにまとめられます。

Bug Finder と Code Prover の結果を含む結合レポートを作成するには、polyspace-report-generator を使用します。たとえば、Bug Finder の結果が BF_results フォルダーに、Code Prover の結果が CP_results フォルダーに保存される場合には、コマンド プロンプトで次のコマンドを使用します。

polyspace-report-generator ^
-template %template_path% ^
-results-dir "CP_Results","BF_Results"

 サンプル バッチ スクリプト

保護されている共有グローバル変数と非保護の共有グローバル変数のチェック

以前は、このタスクを行うために、エントリ ポイント関数と時間的に排他な関数をコードに指定し、Code Prover を使用してコード メトリクスを計算していました。このタスクの推奨される実行方法は、Code Prover でグローバル変数チェックを使用する方法です。

  • Polyspace ユーザー インターフェイスで以前と同じオプションを設定してから、[Code Prover の実行] をクリックします。[コード メトリクスの計算] をオンにする必要はありません。

  • コマンド ラインで以前と同じ解析オプションを使用して、Code Prover 検証を実行します。-code-metrics を省略します。

検証が完了すると、[結果のリスト] で、保護されている共有グローバル変数にグリーン チェックが付いており、非保護の可能性がある共有グローバル変数にはオレンジ チェックが付いています。

グローバル変数 (Polyspace Code Prover)を参照してください。

スタック使用量の計算

以前は、スタック使用量を計算するには、コード メトリクスを計算するようにPolyspace UI で Code Prover 解析を設定するか、またはオプション -code-metrics を指定していました。推奨されるこのタスクの実行方法は、解析オプション [スタック使用量の計算] (-stack-usage) (Polyspace Code Prover) を使用する方法です。

  • Polyspace ユーザー インターフェイスの [チェック動作] ペインで [スタック使用量の計算] をオンにしてから、[Code Prover の実行] をクリックします。[コード メトリクスの計算] をオンにする必要はありません。

  • コマンド ラインで以前と同じ解析オプションを使用して、Code Prover 検証を実行します。-code-metrics の代わりに -stack-usage を使用してください。

検証が完了すると、[結果のリスト] にスタック使用量メトリクスが表示されます。

参考

トピック