最近興味を持っているものの一つ。
#興味の対象が発散しちゃって困るわぁorz
詳しいことは知らないが、要は「ソフトウェアの品質をわかりやすく表したもの」。
本当は、品質が数値で出ることによって明確になるらしいのだが、計算式が分からないのでおおまかにw
例を出すとこんな感じだ。
- メソッドの行数
- いまさら何を言うこともあるまい。
- メンバ変数アクセス率
- 全てのメソッドが全てのメンバ変数にアクセスしているほど良。
例えば、クラスのメソッドのうち半数がメンバ変数Aしか、もう半数がメンバ変数Bしか参照していなかったら、このクラスは2つに分けられる。
- クラスの継承階層の深さ
- 浅いほどいいというものではないが、深すぎる場合、階層途中に意味のないクラスが挟まっている可能性がある。
- クラスの継承階層の「浅く広く」度
- クラス継承があまりに浅く広すぎる場合、基底クラスが抽象的すぎて実用的でない可能性がある。
- 仮想メンバのオーバーライド率
- 基底クラスのメンバをオーバーライドしている数が多すぎる場合、その継承は適切でない可能性がある。
他にも思いついたら書いてみよう!