モジュール結合度は受け渡す情報でどう判断するか
基本情報技術者試験 平成30年度秋期 午前 問48 / システム開発技術 › ソフトウェア方式設計・詳細設計
過去問にチャレンジ
モジュール間の情報の受渡しがパラメータだけで行われる,結合度が最も弱いモジュール結合はどれか。
- ア
共通結合
- イ
制御結合
- ウ
データ結合
- エ
内容結合
会話形式の解説
講師結合度は、モジュール同士の依存の強さです。この問題では、情報を何で渡すかに加えて、何を渡すかに注目します。
受験者パラメータで渡すなら、どれも同じくらい結び付きが弱いと思いました。
講師パラメータの中身を確かめましょう。処理に必要なデータを渡す場合と、相手の処理を指示する場合は、依存の強さが違います。
受験者処理に必要なデータだけを渡すのが、データ結合ですか。
講師そうです。データ結合は必要なデータ項目をパラメータで渡します。設問の条件に合い、選択肢の中で結合度が最も弱いので、正解はウです。
受験者制御結合もパラメータを使うなら、どこで区別しますか。
講師相手の処理を指定する情報かどうかです。制御結合では、必要なデータだけを渡す場合より相手の処理に依存します。
受験者パラメータを使っていても、処理の指示なら制御結合になるのですね。共通結合はどうですか。
講師共通結合では、複数のモジュールが同じデータ領域を利用します。パラメータだけで受渡しが完結する関係ではありません。
受験者内容結合は、相手の内部に関わるのでしょうか。
講師はい。内容結合では別のモジュールの内部を直接参照します。相手の内部に依存するため、設問の条件に合いません。
受験者必要なデータをパラメータで渡すか、処理を指示するか、共有領域や内部を使うかで判断します。
講師その見方で整理できます。結合度が弱いほど、一方の変更が他方に影響しにくくなります。
まとめ
モジュール結合度は、モジュール間の依存の強さを表します。データ結合は処理に必要なデータ項目をパラメータで渡すため、この選択肢の中で結合度が最も弱く、正解はウです。制御結合は相手の処理を指定する情報を渡し、共通結合は同じデータ領域を利用します。内容結合は相手の内部を直接参照します。
解答・解説
正解はウです
この問題のテーマ
モジュール間で何を受け渡すかから、結合度が最も弱い結合を選ぶ問題です。
解き方の考え方
受渡しの手段だけでなく、渡す情報の役割に注目します。処理に必要なデータをパラメータで渡すものと、相手の処理方法まで指定するものを区別します。そのうえで、共有領域の利用や相手の内部への直接参照があるかを確かめます。
選択肢ごとの解説
- ×ア 共通結合共通結合では、複数のモジュールが同じデータ領域を利用します。情報の受渡しがパラメータだけで完結する関係には当たりません。
- ×イ 制御結合制御結合では、相手の処理を指定する情報を渡します。パラメータを使っていても、必要なデータだけを渡す場合より相手の処理に依存します。
- ○ウ データ結合データ結合では、処理に必要なデータ項目をパラメータとして渡します。設問の受渡し方に合い、選択肢の中で結合度が最も弱いため、正解はウです。
- ×エ 内容結合内容結合では、あるモジュールが別のモジュールの内部を直接参照します。相手の内部に依存するため、設問の条件とは合いません。
POINT
- 結合度は、モジュール間の依存の強さを表します。
- 「パラメータで渡す」という点だけで判断せず、その中身がデータか処理の指示かを見分けます。
- 結合度が弱いほど、一方の変更が他方に影響しにくくなります。
