Visual Studio でのコード メトリックの計算
-
19-09-2019 - |
質問
次のコード メトリクスの計算に推奨されるスコアの範囲はどれですか?
- 保守性指数
- 循環的複雑性
- 継承の深さ
- クラスカップリング
解決
理論的に最適な値は次のとおりです。
- 保守性指標:100。値が大きいほど保守性が良いことを示します。
- 循環的複雑さ:1.コードが通過できるさまざまなパスの数。
- 継承の深さ:1.継承ツリー内のこれより上のクラス定義の数 (インターフェイスは含まれません)。
- クラス結合:0.このエンティティが依存している他のエンティティの数。
明確な「適切な」範囲はありませんが、いくつかの一般的な意見を述べることができます。
- メソッドごとの循環的複雑度が高い場合は、メソッドが複雑になりすぎていることを示唆しています。
- (フレームワークではなく独自のクラスの) 継承の深さが約 3 または 4 を超える場合は、実際にはソフトウェアのドメインにない抽象的な関係を不必要に表現している可能性があるという問題の兆候です。
- 一般に低クラス結合の方が優れていますが、場合によってはそれが避けられない場合もあります。ここでは依存関係が存在する理由がはるかに少ないため、名前空間間の依存関係を可能な限り最小限に抑える必要があります。
プロジェクトは、本質的に何もせず、役に立たない場合にのみ、4 つの値すべてを同時に達成できます。何もせず、何にも依存しないソフトウェアは確かに保守可能ですが、クライアントの資金をあまり有効に活用できません。
したがって、すべての複雑さはトレードオフになります。追加のいわゆる 固有の 複雑さによってプログラムにさらに高度な機能が組み込まれ、機能セットを拡張できるようになります。避けたいのは、 偶然の 貧弱な実装または不十分な実装によってもたらされる複雑さ。
所属していません StackOverflow