Rso's Jotter

日々の開発の知見のメモやその他雑記

Ckメトリクス

Ckメトリクスをよく参照する機会があるのに各メトリクスが何だったのかすぐ忘れるのでメモっておく
ググった内容だから定義が正しくないかもしれない.

Ckメトリクスとは,ChidamberとKemererが提案したOO(Object Oriented)な設計の複雑度を計る尺度
ソフトウェアメトリクスの有名どころ

Ckメトリクスは以下の6つのメトリクスから構成される

WMC(Weighted Methods per Class)
  • クラスの複雑度を示す.しかし厳密な定義がされていない.サイクロマチック数とかで代用されてたりする.
DIT(Depth of Inheritance Tree)
  • クラスの継承の深さを表す
NOC(Number of Children)
  • 子クラスの数を表す
CBO(Coupling Between OBject Classes)
  • クラスに結合しているクラスの数
  • ここでの結合とは,他のクラスのメソッドやインスタンス変数を参照・実行する場合
RFC(Response for Class)
  • あるオブジェクトから受け取ったメッセージに応じて実行されるメソッドの数を表す
  • クラスのメソッド数+メソッド内で呼び出しているメソッド数
LCOM(Lack of Cohesion in Methods)
  • クラスの凝集性の欠如の度合いを表す
  • ローカルメソッドがそのクラスのローカルインスタンス変数にどのくらい密接に関連しているかを数値化したもの
  • 計算方法は複数の方法がある(複数の定義がある)