実践問題
解答&解説は第1問から第10問までを列挙しています。
まず問題を解いてから解答&解説を見ることを推奨します。
第1問
モジュール設計において、一般に望ましい組合せはどれか。
A. 凝集度が低く、結合度が高い
B. 凝集度が高く、結合度が高い
C. 凝集度が高く、結合度が低い
D. 凝集度が低く、結合度が低い
解答&解説はこちら
第2問
あるモジュールが、複数の処理モードを示す制御フラグの値によって実行内容を切り替えている。
このモジュール間の結合として最も適切なものはどれか。
A. データ結合
B. 制御結合
C. スタンプ結合
D. 共通結合
解答&解説はこちら
第3問
複数のモジュールが同一のグローバル変数を参照・更新している。
この結合はどれか。
A. 内容結合
B. 制御結合
C. 共通結合
D. データ結合
解答&解説はこちら
第4問
モジュールAが、モジュールB内部のデータ領域を直接参照して値を書き換えている。
この結合として最も不適切なものはどれか。
A. データ結合
B. 内容結合
C. スタンプ結合
D. 制御結合
解答&解説はこちら
第5問
「初期化処理」「作業ファイル生成」「ログ開始」など、同じタイミングで実行する処理を一つのモジュールにまとめた。
この凝集度はどれか。
A. 手順的凝集
B. 時間的凝集
C. 情報的凝集
D. 機能的凝集
解答&解説はこちら
第6問
あるモジュールが、「顧客情報を読み込み、その内容を更新し、保存する」という一連の処理を行う。
この凝集度として最も適切なものはどれか。
A. 連絡的凝集
B. 偶発的凝集
C. 論理的凝集
D. 時間的凝集
解答&解説はこちら
第7問
一つの構造体全体を引数として渡しているが、受け側のモジュールではそのうち一部の項目しか使用していない。
この結合はどれか。
A. 制御結合
B. スタンプ結合
C. データ結合
D. 内容結合
解答&解説はこちら
第8問
モジュールの凝集度として、最も望ましいものはどれか。
A. 論理的凝集
B. 時間的凝集
C. 情報的凝集
D. 機能的凝集
解答&解説はこちら
第9問
モジュール間の結合度を低くするために最も適切な設計方針はどれか。
A. グローバル変数を利用して情報共有する
B. 必要最小限のデータだけを引数で渡す
C. 他モジュール内部の領域を直接更新する
D. 制御フラグで相手の動作を細かく指定する
解答&解説はこちら
第10問
次の説明に最も当てはまる凝集度はどれか。
「入力データの受付、形式チェック、内部形式への変換という、順序に従って実行される処理を一つのモジュールにまとめた」
A. 手順的凝集
B. 時間的凝集
C. 連絡的凝集
D. 情報的凝集
解答&解説はこちら
解答&解説
解答:第1問
正解:C
モジュール設計では高凝集・低結合が基本です。
内部は役割がまとまり、外部への依存は少ないほど保守しやすくなります。
解答:第2問
正解:B
制御フラグによって相手モジュールの処理内容を変えるのは制御結合です。
午後問題でも頻出です。
解答:第3問
正解:C
複数モジュールで同じグローバル変数を共有するのは共通結合です。
変更影響が広がりやすく、あまり望ましくありません。
解答:第4問
正解:B
他モジュール内部を直接参照・変更するのは内容結合です。
結合度の中で最も悪いものとして覚えておくとよいです。
解答:第5問
正解:B
同じタイミングで行う処理をまとめたものは時間的凝集です。
初期化処理や終了処理が代表例です。
解答:第6問
正解:A
同じデータ(顧客情報)を中心に、読み込み・更新・保存を行うので連絡的凝集です。
- 手順でつながるだけ → 手順的凝集
- 同じデータを扱う → 連絡的凝集
この違いはよく問われます。
解答:第7問
正解:B
構造体全体を渡すが、一部しか使わない場合はスタンプ結合です。
必要なデータだけ渡す設計のほうが望ましいです。
解答:第8問
正解:D
最も望ましいのは機能的凝集です。
「そのモジュールが単一の明確な機能を持つ」状態です。
解答:第9問
正解:B
結合度を下げるには、必要最小限のデータだけを引数で渡すのが最も適切です。
これはデータ結合に相当します。
解答:第10問
正解:A
処理が順番に実行されることを基準にまとめているので手順的凝集です。
- 同時刻 → 時間的凝集
- 順序 → 手順的凝集
ここは頻出のひっかけです。
試験直前の最重要まとめ
凝集度
高いほど良い
悪い → 良い
偶発 → 論理 → 時間 → 手順 → 連絡 → 情報 → 機能
結合度
低いほど良い
悪い → 良い
内容 → 共通 → 外部 → 制御 → スタンプ → データ

コメント