モジュール分割と凝集度・結合度の違いと使い分け

凝集度と結合度は「モジュール独立性」を別方向から見る指標である。凝集度は内部、結合度は外部関係を評価する。

この単元で学ぶこと

  • 内部評価の意味と役割を説明できる
  • 外部評価の意味と役割を説明できる
  • 変更局所化の意味と役割を説明できる
  • 設計例から凝集度と結合度のどちらの改善かを判断できる

本文解説

高凝集では変更理由がモジュール内でまとまり、低結合では他モジュールの変更を受けにくい。二つを同時に改善する設計が保守性・再利用性を高めやすい。

内部評価 凝集度でモジュール内部の処理関連を評価する。 責務が一つへまとまるほど良い。

外部評価 結合度でモジュール間依存を評価する。 必要最小限のインタフェースが望ましい。

変更局所化 一つの変更が少数モジュールに留まる性質。 高凝集・低結合で実現しやすい。

再利用性 他環境へ持ち出して使いやすい性質。 不要依存が少ない方が高い。

テスト容易性 単独で入力・出力を検証しやすい性質。 外部依存が少ないほど単体テストしやすい。

モジュール内の責務整理なら凝集度、モジュール間の受渡し整理なら結合度と分類する。

「認証と請求を別モジュールに分ける」は凝集度改善、「共有変数を引数へ変更」は結合度改善。

図解

凝集度と結合度の使い分け
内部責務と外部依存の改善を二軸で整理する。

重要ポイント

  • 内部評価: 凝集度でモジュール内部の処理関連を評価する。
  • 外部評価: 結合度でモジュール間依存を評価する。
  • 変更局所化: 一つの変更が少数モジュールに留まる性質。
  • 再利用性: 他環境へ持ち出して使いやすい性質。
  • 高凝集と低結合はセットで考える。

間違えやすい点

  • 凝集度を低くするのが良いと逆に覚えない。
  • 結合度を高くして連携を強めるのが良いと考えない。
  • 分割数を増やせば自動的に独立性が上がると考えない。

用語解説

内部評価
凝集度でモジュール内部の処理関連を評価する。
外部評価
結合度でモジュール間依存を評価する。
変更局所化
一つの変更が少数モジュールに留まる性質。
再利用性
他環境へ持ち出して使いやすい性質。
テスト容易性
単独で入力・出力を検証しやすい性質。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。