大きなソフトウェアをいくつかのモジュールに分割して実装したい。次のモジュール分割の方針のうち、最も適切なものはどれか。
@ 機能的な関連は弱いが、実行する時点が近い機能群を1つのモジュールにまとめる。
A 個々のモジュールの凝集度 (cohesion) をできるだけ低くする。
B 参照するモジュール内部にあるデータを外部から直接読み書きできるようにする。
C モジュール間で共通にアクセスするデータを一定の形式に編集して公開する。
D モジュール間の結合度 (coupling) をできるだけ低くする。
D
モジュール強度 (凝縮度) と結合度についての問題である。
モジュール強度は強い方が良いプログラムであり、モジュール結合度は弱い方が良いプログラムとされている。
モジュール強度は、強い順に以下となる。
機能的強度 > 情報的強度 > 連絡的強度 > 手段的強度 > 時間的強度 > 論理的強度 > 暗号的強度
モジュール結合は弱い順に以下となる。
データ結合 < スタンプ結合 < 制御結合 < 外部結合 < 共通結合 < 内容結合
@ 機能的強度よりも時間強度を重視しているため、誤りである。
A 強度 (凝集度) は強い方がよく誤りである。
B 内部結合に関する記述であり、結合度が最も強いため誤りである。
C 共有結合に関する記載であり、モジュール結合度が強くなってしまう。
D 正しい。結合度は低い (弱い) 方が良い。
W−26 | 目次 | W−28 |