モジュール分割と凝集度を理解する
凝集度は、一つのモジュールに含まれる処理がどれだけ一つの目的へまとまっているかを示す。一般に高い凝集度が望ましい。
この単元で学ぶこと
- 機能的凝集の意味と役割を説明できる
- 逐次的凝集の意味と役割を説明できる
- 通信的凝集の意味と役割を説明できる
- モジュール内の処理関係から凝集度の強弱を判断できる
本文解説
典型的には、単一機能を実現するために必要な処理だけをまとめた機能的凝集は強い。一方、たまたま一緒に置いただけの偶発的なまとまりは弱い。
機能的凝集 一つの明確な機能を実現する処理だけで構成する強い凝集。 責務が明確。
逐次的凝集 ある処理の出力が次の処理の入力になる関係でまとめる。 処理系列として関連がある。
通信的凝集 同じデータを扱う複数処理をまとめる。 共通データによる関連。
時間的凝集 同じ時点で実行するという理由で処理をまとめる。 目的の一体性は比較的弱い。
偶発的凝集 明確な関連のない処理が同じモジュールに入る弱い凝集。 保守性が低くなりやすい。
「なぜ同じモジュールにあるか」を見る。単一機能のためなら強く、単に一緒なら弱い。
「売上合計を計算するためだけ」の処理群は機能的凝集で高凝集になりやすい。
図解
重要ポイント
- 機能的凝集: 一つの明確な機能を実現する処理だけで構成する強い凝集。
- 逐次的凝集: ある処理の出力が次の処理の入力になる関係でまとめる。
- 通信的凝集: 同じデータを扱う複数処理をまとめる。
- 時間的凝集: 同じ時点で実行するという理由で処理をまとめる。
- 凝集度は高いほど一般に望ましく、単一責務に近いほど高い。
間違えやすい点
- 同じ時刻に動くことだけで機能的凝集としない。
- 同じデータを使うだけで単一機能とは限らない。
- 処理数が少ない=高凝集と決めつけない。
用語解説
- 機能的凝集
- 一つの明確な機能を実現する処理だけで構成する強い凝集。
- 逐次的凝集
- ある処理の出力が次の処理の入力になる関係でまとめる。
- 通信的凝集
- 同じデータを扱う複数処理をまとめる。
- 時間的凝集
- 同じ時点で実行するという理由で処理をまとめる。
- 偶発的凝集
- 明確な関連のない処理が同じモジュールに入る弱い凝集。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。