メインコンテンツ

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

ソフトウェア品質目標に照らした Polyspace Code Prover の結果の評価

R2026a

Code Prover 解析のすべての結果を評価する代わりに、解析済みプロジェクトが満たしている必要がある基準を最初に定義し、Code Prover の結果をこの基準に照らし合わせて評価できます。ソフトウェア品質目標 (SQO) とは、検証結果と比較できるしきい値のセットです。レビュー プロセスはソフトウェア品質目標に基づいて開発できます。レビュー プロセスで考慮する結果は、プロジェクトが特定の SQO レベルで失敗する結果のみです。

事前定義済みの SQO レベルを使用するか、自分で SQO を定義できます。SQO レベルをカスタマイズするには、Customize Software Quality Objectives (Polyspace Access)を参照してください。

SQO レベルの仕様

以下は事前定義済みの SQO により指定された品質のしきい値です。

メトリクスしきい値
ファイルのコメント密度20
関数からのパスの数80
goto ステートメント数0
循環的複雑度10
呼び出し元関数の数5
呼び出しの数7
関数ごとのパラメーター数5
関数ごとの指示の数50
関数の呼び出しレベルの数4
関数の return ステートメント数1

言語スコープ、関数の維持または変更コストのインジケーター。次のように計算されます。

(N1+N2) / (n1+n2)

  • n1 — 異なる演算子の数

  • N1 — 演算子の総数

  • n2 — 異なるオペランドの数

  • N2 — オペランドの総数

4
再帰の数0
直接再帰の数0

以下の MISRA C™:2004 ルールの正当化されない違反の数:

  • 5.2

  • 8.11, 8.12

  • 11.2, 11.3

  • 12.12

  • 13.3, 13.4, 13.5

  • 14.4, 14.7

  • 16.1, 16.2, 16.7

  • 17.3, 17.4, 17.5, 17.6

  • 18.4

  • 20.4

0

以下の MISRA C:2012 ルールの正当化されない違反の数:

  • 8.8、8.11 および 8.13

  • 11.1、11.2、11.4、11.5、 11.6 および 11.7

  • 14.1 および 14.2

  • 15.1、15.2、15.3 および 15.5

  • 17.1 および 17.2

  • 18.3、18.4、18.5 および 18.6

  • 19.2

  • 21.3

0

以下の MISRA™ C++ ルールの正当化されない違反の数:

  • 2-10-2

  • 3-1-3, 3-3-2, 3-9-3

  • 5-0-15, 5-0-18, 5-0-19, 5-2-8, 5-2-9

  • 6-2-2, 6-5-1, 6-5-2, 6-5-3, 6-5-4, 6-6-1, 6-6-2, 6-6-4, 6-6-5

  • 7-5-1, 7-5-2, 7-5-4

  • 8-4-1

  • 9-5-1

  • 10-1-2, 10-1-3, 10-3-1, 10-3-2, 10-3-3

  • 15-0-3, 15-1-3, 15-3-3, 15-3-5, 15-3-6, 15-3-7, 15-4-1, 15-5-1, 15-5-2

  • 18-4-1

0

"SQO Level 1 のすべての要件に加えて"、このレベルは以下のしきい値を含みます。

メトリクスしきい値
正当化されないレッド チェックの数0
正当化されない [無限呼び出し] チェックおよび [無限ループ] チェックの数0

"SQO Level 2 のすべての要件に加えて"、このレベルは以下のしきい値を含みます。

メトリクスしきい値
正当化されないグレーの [到達不能コード] チェックの数0

"SQO Level 3 のすべての要件に加えて"、このレベルは以下のしきい値を含みます。

"SQO Level 4 のすべての要件に加えて"、このレベルは以下のしきい値を含みます。

メトリクスしきい値

以下の MISRA C:2004 ルールの正当化されない違反の数:

  • 6.3

  • 8.7

  • 9.2, 9.3

  • 10.3, 10.5

  • 11.1, 11.5

  • 12.1, 12.2, 12.5, 12.6, 12.9, 12.10

  • 13.1, 13.2, 13.6

  • 14.8, 14.10

  • 15.3

  • 16.3, 16.8, 16.9

  • 19.4, 19.9, 19.10, 19.11, 19.12

  • 20.3

0

以下の MISRA C:2012 ルールの正当化されない違反の数:

  • 11.8

  • 12.1 および 12.3

  • 13.2 および 13.4

  • 14.4

  • 15.6 および 15.7

  • 16.4 および 16.5

  • 17.4

  • 20.4、20.6、20.7、20.9 および 20.11

0

以下の MISRA C++ ルールの正当化されない違反の数:

  • 3-4-1, 3-9-2

  • 4-5-1

  • 5-0-1, 5-0-2, 5-0-7, 5-0-8, 5-0-9, 5-0-10, 5-0-13, 5-2-1, 5-2-2, 5-2-7, 5-2-11, 5-3-3, 5-2-5, 5-2-6, 5-3-2, 5-18-1

  • 6-2-1, 6-3-1, 6-4-2, 6-4-6, 6-5-3

  • 8-4-3, 8-4-4, 8-5-2, 8-5-3

  • 11-0-1

  • 12-1-1, 12-8-2

  • 16-0-5, 16-0-6, 16-0-7, 16-2-2, 16-3-1

0
グリーンおよび正当化済みオレンジ チェックの数をグリーン チェックおよびオレンジ チェックの総数で除算して計算される、正当化済みオレンジ チェックの割合。 無効な C++ に固有の演算:70
正確性の条件:80
ゼロ除算:90
キャッチされていない例外:70
値を返さない関数:90
不適切にデリファレンスされたポインター:70
初期化されていない戻り値:90
未初期化ローカル変数:90
未初期化ポインター:70
未初期化変数:70
null の this ポインターを呼び出すメソッド70
誤ったオブジェクト指向プログラミング:70
範囲外の配列インデックス:90
オーバーフロー: 80
無効なシフト演算:90
ユーザー アサーション:80

"SQO Level 5 のすべての要件に加えて"、このレベルは以下のしきい値を含みます。

"SQO Level 6 のすべての要件に加えて"、このレベルは以下のしきい値を含みます。コーディング ルール違反のしきい値は、コーディング ルール違反をチェックする場合にのみ適用されます。

メトリクスしきい値
正当化されない MISRA C および MISRA C++ コーディング ルール違反の数0
正当化されないレッド チェックの数0
正当化されない [無限呼び出し] チェックおよび [無限ループ] チェックの数0
正当化されないグレーの [到達不能コード] チェックの数0
グリーンおよび正当化済みオレンジ チェックの数をグリーン チェックおよびオレンジ チェックの総数で除算して計算される、正当化済みオレンジ チェックの割合。100

これらのレベルの背景にある基本原理の詳細については、「ソース コードのソフトウェア品質目標」を参照してください。

ソフトウェア品質目標に照らした検証結果の評価

Polyspace® Access™ Web インターフェイスで、検証結果を SQO に照らし合わせて比較できます。非推奨の Polyspace デスクトップ ユーザー インターフェイスでこれを行う方法の詳細については、ソフトウェア品質目標に照らした検証結果の評価 (R2025b)を参照してください。

PolyspaceAccess Web インターフェイスでは、[プロジェクトの概要] ダッシュボードの [品質目標] カードを確認して、プロジェクトが特定の品質目標しきい値に到達できるかどうかを最初に判断できます。

Quality objectives card showing 32% completion for SQO2 threshold with 1,969 remaining unaddressed findings.

このカードには、しきい値に到達するためにすでに修正または正当化した結果の割合が示されます。残りの調査結果の数をクリックすると、[結果のリスト] にこれらの調査結果が表示されます。すべての品質目標しきい値に照らしたコードの品質の詳細ビューを表示するには、[品質目標] ダッシュボードを開きます。詳細については、Monitor Code Quality Using Quality Objectives Dashboard in Polyspace Access (Polyspace Access)を参照してください。

テンプレート SoftwareQualityObjectives_Summary および SoftwareQualityObjectives を使用して [PASS] または [FAIL] ステータスを表示するレポートを生成することもできます。Bug Finder と Code Prover のレポート (-report-template)を参照してください。

SQO レベルのカスタマイズ

Polyspace Access Web インターフェイスで SQO をカスタマイズするには、Customize Software Quality Objectives (Polyspace Access)を参照してください。

参考

トピック