凝集度 - cohesion
凝集度(ぎょうしゅうど、コヒージョン、cohesion)とは、情報工学においてモジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合いである。
出典: Wikipedia
凝集度の計算式にはLCOM1,2,3等のバリエーションがある。LCOM3はLCOM*とも言う。
LCOM1
インスタンス変数のばらばらのセットにアクセスする場合はPを1増やし、それらが少なくとも1つの変数アクセスを共有する場合はQを1増やす。
LCOM1 =
\left\{
\begin{array}{ll}
P-Q & (P > Q) \\
0 & (others)
\end{array}
\right.
LCOM2
クラス変数へのアクセス方法で計算する方法。以下の式で表される。
LCOM2 = \frac{1-\sum(mA)}{m * a}
- m: クラス内のプロシージャ(メソッド)の数
- a: クラス内の変数(属性)の数
- mA: 変数(属性)にアクセスするメソッドの数
- sum(mA) クラスの属性に対するmAの合計
LCOM3
LCOM2と同様で式の形だけが違う。
LCOM3 = \frac{m-\frac{1}{a}\sum(mA)}{m - 1}