メインコンテンツへ
開発技術システム開発技術

モジュールの凝集度(cohesion)に関して、最も凝集度が高いものはどれか。

ア.複数の無関係な機能を「ユーティリティ」として一つのモジュールにまとめている(偶発的凝集)
イ.顧客データの入力・検証・保存という一連の手順が順番に実行されるためだけにまとめられている(手順的凝集)
ウ.顧客注文の計算・割引適用・合計額返却という、単一の明確な目的を持つ機能のみで構成されている(機能的凝集)正解
エ.同じ顧客データ構造を参照するという理由で複数の処理がまとめられている(通信的凝集)

解説

凝集度は「モジュールの純度」。機能的凝集は「一つの仕事しかしない職人」で最高純度。偶発的凝集は「なんでも屋」で最低純度。高凝集ほど保守しやすく再利用しやすい。

なぜ ウ が正解か

凝集度の高い順:機能的 > 逐次的 > 通信的 > 手順的 > 時間的 > 論理的 > 偶発的。機能的凝集(Functional Cohesion)は「単一の明確な機能を実現するためだけにすべての要素が結びついている」状態で、最も高い凝集度です。一つの責務に特化しているため変更の影響が局所化され、テストも容易になります。

なぜ ア は間違いか

偶発的凝集(Coincidental)は「たまたま一緒にされた」状態で、凝集度の7段階中最も低いレベルです。変更の影響が読めず保守が困難になります。

なぜ イ は間違いか

手順的凝集(Procedural)は「この順番で実行される」という手順的なつながりでまとめた状態です。中程度の凝集度であり、機能的凝集より低い位置づけです。

なぜ エ は間違いか

通信的凝集(Communicational)は「同じデータを参照・更新する」というデータのつながりでまとめた状態です。手順的凝集より高いですが、機能的凝集よりは低い位置づけです。

出典: AI生成問題(学習用)