メインコンテンツ

Polyspace を使用したコード複雑度メトリクスの計算

このトピックでは、すべてのコード複雑度メトリクスを計算して、指定されているしきい値を超えているメトリクスを確認する方法を説明します。しきい値を超えているメトリクス値のみを確認するには、ソフトウェアの複雑度のガイドラインを確認してください。Polyspace チェッカーを使用してソフトウェアの複雑度を低減するを参照してください。

コード複雑度メトリクスとは、C/C++ プログラムの複雑度を数量化する数値のセットです。次に例を示します。

  • 循環的複雑度が高い関数では含まれている分岐の数が多すぎる。

  • return ステートメントの数が多い関数では終了点の数が多すぎる。

複雑なプログラムは、デバッグ、解析、テスト、保守を行うのが困難です。複雑度が高くなりすぎないようにするため、コーディングの段階で複雑度メトリクスに制限を適用します。

Polyspace® はコード複雑度メトリクスの計算を既定では行いません。解析時に計算を行うには、オプション [コード メトリクスの計算] (-code-metrics) を使用します。

解析後、本ソフトウェアはプロジェクト メトリクス、ファイル メトリクス、および関数メトリクスを [結果のリスト] ペインに表示します。計算されたメトリクスの値を事前定義された範囲と比較できます。メトリクスの値が範囲を超える場合、コードを再設計してメトリクスの値を下げることができます。たとえば、呼び出される関数の数が多く、それらの関数の一部が常に一緒に呼び出されている場合、それらの関数の本体を結合した 1 つの関数を作成できます。一緒に呼び出される関数のグループの代わりに、その 1 つの関数を呼び出します。

メトリクスの範囲設定 (デスクトップ製品のみ)

Polyspace デスクトップ製品のユーザー インターフェイスで、メトリクス計算の一部の結果を開きます。次に、メトリクスの値に範囲を設定し、[結果のリスト] ペインで結果を更新して、範囲を超えるメトリクスの値のみ表示します。

  1. [ツール][基本設定] を選択します。

  2. [レビュー スコープ] タブで、以下のいずれかを行います。

    • 事前定義された範囲を使用するには、[品質目標スコープを含める] を選択します。

      [スコープ名] リストに追加オプション [HIS] を表示します。オプション [HIS] には HIS コード メトリクスのみが表示されます。オプションを選択し、範囲値を確認します。

    • 独自の範囲を設定するには、[新規] を選択します。範囲のファイルを保存します。

      左側のペインで、[Code Metric] を選択します。右側のペインでは、メトリクスを選択して、そのメトリクスに対する限界値を設定します。[コメント密度] 以外は範囲値が上限です。

      [関数メトリクス] などのカテゴリにあるすべてのメトリクスを選択するには、カテゴリ名の横にあるボックスを選択します。メトリクスのカテゴリについての詳細は、コード メトリクスを参照してください。カテゴリでのメトリクスの一部のみが選択される場合、カテゴリ名の横にあるチェック ボックスには、記号 が表示されます。

      The 'Code Metrics' section of a typical review scope. When the Status column is checked for a specific metric, it indicates that the metric is part of the review scope.

  3. [適用] または [OK] を選択します。

    [結果のリスト] ペインのツール バーの左にあるドロップダウン リストに追加オプションが表示されます。

    • 事前定義された範囲を使用する場合、オプション [HIS] が表示されます。このオプションはコード メトリクスのみ表示します。

    • 独自の範囲を定義する場合、範囲のファイル名に対応したオプションが表示されます。

  4. 必要な範囲に対応したオプションを選択します。設定した範囲に違反するメトリクスの値のみが引き続き [結果のリスト] ペインに表示されます。

    これらのメトリクスは、赤色の感嘆符とともに表示されます。たとえば、事前定義されているスコープである [HIS] では、各関数に含まれる return ステートメントは 1 つのみであることが必要です。スコープ [HIS] を選択すると、この数が 1 を超えている場合にのみメトリクス [Return ステートメントの数] が表示されます。

    Code metrics that violate thresholds are shown with a red exclamation mark when you select the HIS scope.

  5. 各違反をレビューし、どのようにコードを記述し直して違反を回避するかを決定します。

メモ

組織内でコーディング規約を適用するには、XML 形式で保存した範囲のファイルを共有します。

組織内の他のユーザーは [レビュー スコープ] タブの [開く] ボタンを使用して、XML ファイルの場所に移動できます。

メトリクスの範囲設定 (サーバー製品および Access 製品)

Polyspace Access™ Web インターフェイスでは、コード複雑度メトリクスの範囲が事前定義されています。[ダッシュボード] パースペクティブで、[コード メトリクス] を選択する場合、[コード メトリクス] ウィンドウにメトリクスの値と範囲が表示されます。

使用されている範囲を求めるには、HIS コード複雑度メトリクスを参照してください。

Polyspace Access Web インターフェイスのコード メトリクス ダッシュボード (Polyspace Access)も参照してください。

参考

トピック