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