ソフトウェアアーキテクチャ博物館AtMuseum
FAQ


凝集度を高くする方法は?

凝集度とは、モジュールが単一目的は複数目的かどうかです。

フィールド変数で判断

フィールド変数を列挙してみるとわかります。

フィールド変数は、ファイル内の変数(クラスの場合は属性)であり、

大きく3種類あります。

(1) ドメイン情報

(2) 自分の状態遷移

(3) 利用ファイルへの#include(クラスの場合は相手のインスタンス)

自動販売機の例では、

(1)は入金額や商品番号

(2)は「販売」手順の状態変数

(3)は「販売」するときに指示を出す「取引」や「出荷」

が該当します。

これらを列挙することで、凝集度の高さを判断できます。

凝集度の高いコード例(自動販売機)はこちらに有ります。

凝集度の欠如とは

フィールド変数を使っている関数をファイル内に集めます。

フィールド変数と関係ない関数があることを「凝集度の欠如」と呼びます。

リファクタリング

変数を中心に関数を集めます。

その結果、凝集度が高くなります。

高凝集の効能

どこで何をしているのかを素早く把握できて、

変更に対して堅牢なモジュールになります。

 

最後に

凝集度は、ソフトウェア開発のみならず、通常の業務でも役に立ちます。

問題を目的単位に切り分けて、ピンポイントで解決策を検討できます。

一度その思考を習得すれば、ずっと使えるスキルになります。

凝集度と結合度セミナーをお勧めします。