ヘッダー
Visual Studio Tips集
 

コードメトリックスを算出する

2023/1/15

この記事が対象とする製品・バージョン

Visual Studio 2022 Visual Studio 2022 ◎ 対象です。
VS2019 Visual Studio 2019 ◎ 対象外です。
VS2017 Visual Studio 2017 ○ 対象ですが、画面や操作方法が少し異なるかもしれません。
VS2015 Visual Studio 2015 ○ 対象ですが、画面や操作方法が少し異なるかもしれません。
VS2013 Visual Studio 2013 ○ 対象ですが、画面や操作方法が少し異なるかもしれません。
VS2012 Visual Studio 2012   (情報不足)
VS2010 Visual Studio 2010 × たしか対象外です。
VS2008 Visual Studio 2008 × たしか対象外です。
VS2005 Visual Studio 2005 × たしか対象外です。
VS.NET 2003 Visual Studio 2003 × 対象外です。
VS.NET 2002 Visual Studio (2002) × 対象外です。
  Visual Studio Code × 対象外です。

 

 

概要

コードメトリックスを見るとプログラムの複雑性や保守性などを数値で把握できます。

サイクロマティック複雑度を中心としてコードメトリックスの詳細と、どうやって管理していけばよいかは下記の記事で説明しています。

サイクロマティック複雑度の活用

プログラムでコードメトリックスを改善する具合的な方法は下記の記事で説明しています。この記事では保守容易性指数とサイクロマティック複雑度を具体的に改善する方法を示しています。

サイクロマティック複雑度を低くして品質を向上させる方法

 

 

コードメトリックスを算出する

ソリューションエクスプローラーで対象のプロジェクトまたはソリューションを右クリックし、[分析とコードのクリーンアップ]-[コード メトリックスの計算]をクリックすることで、コードメトリックスを表示できます。

または、[分析]メニューの[コードメトリックスを計算する]からでも可能です。

 

コードメトリックスの結果ウィンドウの左上のボタンを押すと、プログラムを少しずつ修正しながらコードメトリックスの変化を確認するときに便利です。

 

 

参考:コードメトリックスの解釈

保守容易性指数

プログラムに機能を追加したり、バグを修正したりといったプログラムの保守作業のやりやすさを 0~100で表します。100が最良です。サイクロマティック複雑度やコードの行数、演算処理の量などを基に総合的に算出され、プログラムの全体的な品質を表しています。

マイクロソフトのサイトでは保守容易性指数の値について次の評価が記載されています。

保守容易性インデックス 色 プログラムの状態
0~9 赤 深刻な問題があります
10~19 黄 問題があります
20~100 緑 健全

 

サイクロマティック複雑度

プログラムの分岐の多さを表します。最低1で、上限はありません。低い方が優秀です。

プログラムを健全に保つには高くても1メソッドあたり10~15に抑えましょう。

MaCabeのレポートとMathWorksのレポートをまとめるとサイクロマティック複雑度の評価は次の表のようになります。

  McCabeのレポートの評価(※1) MathWorksのレポートの評価(※2)
サイクロマティック
複雑度
複雑さの状態 バグ
混入確率
複雑さの状態 バグ
混入確率
1~10 シンプルで、リスクはほとんどない。 5% 非常に良い構造 25%
11~20 少し複雑で、緩やかなリスクがある。      
21~30 複雑で、高いリスクがある。 20%
31~40   構造的なリスクあり 40%
31~50
51~74 テスト不可能。とても高いリスクがある。 40% テスト不可能 70%
75以上   いかなる変更も誤修正を生む 98%
100 60%

 

改訂履歴

2023/1/15

  • 初版