ソフトウェアアーキテクチャ博物館AtMuseum
FAQ
FAQ
凝集度を高くする方法は?
凝集度とは、モジュールが単一目的は複数目的かどうかです。
フィールド変数で判断
フィールド変数を列挙してみるとわかります。
フィールド変数は、ファイル内の変数(クラスの場合は属性)であり、
大きく3種類あります。
(1) ドメイン情報
(2) 自分の状態遷移
(3) 利用ファイルへの#include(クラスの場合は相手のインスタンス)
自動販売機の例では、
(1)は入金額や商品番号
(2)は「販売」手順の状態変数
(3)は「販売」するときに指示を出す「取引」や「出荷」
が該当します。
これらを列挙することで、凝集度の高さを判断できます。
凝集度の高いコード例(自動販売機)はこちらに有ります。
凝集度の欠如とは
フィールド変数を使っている関数をファイル内に集めます。
フィールド変数と関係ない関数があることを「凝集度の欠如」と呼びます。
リファクタリング
変数を中心に関数を集めます。
その結果、凝集度が高くなります。
高凝集の効能
どこで何をしているのかを素早く把握できて、
変更に対して堅牢なモジュールになります。
最後に
凝集度は、ソフトウェア開発のみならず、通常の業務でも役に立ちます。
問題を目的単位に切り分けて、ピンポイントで解決策を検討できます。
一度その思考を習得すれば、ずっと使えるスキルになります。
凝集度と結合度セミナーをお勧めします。