応用情報技術者 2017年 秋期 午前2 問46
問題文
モジュール設計に関する記述のうち、モジュール強度 (結束性)が最も強いものはどれか。
選択肢
ア:ある木構造データを扱う機能をこのデータとともに一つにまとめ、 木構造データをモジュールの外から見えないようにした。(正解)
イ:複数の機能のそれぞれに必要な初期設定の操作が、 ある時点で一括して実行できるので、一つのモジュールにまとめた。
ウ:二つの機能A, Bのコードは重複する部分が多いので,A, Bを一つのモジュールにまとめ、 A, Bの機能を使い分けるための引数を設けた。
エ:二つの機能 A, B は必ずA, Bの順番に実行され、 しかもAで計算した結果を Bで使うことがあるので、一つのモジュールにまとめた。
モジュール設計に関する問題【午前2 解説】
要点まとめ
- 結論:モジュール強度(結束性)が最も強いのは「データとそれを扱う機能を一体化し外部から隠蔽した」設計である。
- 根拠:強い結束性はモジュール内部の要素が密接に関連し、外部依存を減らすことで保守性や再利用性が向上するため。
- 差がつくポイント:単に機能をまとめるだけでなく、データの隠蔽と機能の一体化が結束性を強める本質であることを理解すること。
正解の理由
アは「木構造データとその操作機能を一つのモジュールにまとめ、外部からデータを隠蔽」しているため、モジュール内部の要素が密接に関連し結束性が非常に強い設計です。データと処理が一体化し、外部からの影響を受けにくく、変更時の影響範囲も限定されます。これがモジュール強度の理想形です。
よくある誤解
機能を単にまとめるだけで結束性が強くなると誤解しがちですが、結束性は「関連性の強さ」と「情報隠蔽」が重要です。引数で機能を切り替える設計は結束性を弱めます。
解法ステップ
- モジュール強度(結束性)の定義を確認する。
- 各選択肢が「関連性の強さ」と「情報隠蔽」を満たしているか検討する。
- データと機能が一体化し外部から隠蔽されている選択肢を探す。
- それがアであることを確認する。
選択肢別の誤答解説
- ア:正解。データと機能の一体化と隠蔽で強い結束性。
- イ:初期設定をまとめただけで関連性はあるが、データ隠蔽や機能の密接な結びつきは弱い。
- ウ:機能を引数で切り替える設計は結束性が弱く、モジュールの役割が曖昧になる。
- エ:処理の順序依存はあるが、機能の関連性が強いとは限らず、結束性は中程度。
補足コラム
モジュール強度(結束性)はソフトウェア設計の基本概念で、強い結束性は保守性・再利用性の向上に直結します。情報隠蔽(カプセル化)と密接に関連し、オブジェクト指向設計の基礎とも言えます。
FAQ
Q: モジュール強度が弱いと何が問題ですか?
A: 変更時に影響範囲が広がり、バグの発生や保守コスト増加につながります。
A: 変更時に影響範囲が広がり、バグの発生や保守コスト増加につながります。
Q: 情報隠蔽はなぜ重要ですか?
A: モジュール内部の実装変更が外部に影響を与えにくくなり、柔軟な設計が可能になるためです。
A: モジュール内部の実装変更が外部に影響を与えにくくなり、柔軟な設計が可能になるためです。
関連キーワード: モジュール強度、結束性、情報隠蔽、カプセル化、ソフトウェア設計

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

