戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

エンベデッドシステムスペシャリスト 2020年 午前2 問21


問題文

モジュールの結合度が最も低い、データの受渡し方法はどれか。

選択肢

ア:単一のデータ項目を大域的データで受け渡す。
イ:単一のデータ項目を引数で受け渡す。(正解)
ウ:データ構造を大域的データで受け渡す。
エ:データ構造を引数で受け渡す。

🔒 解説は解答すると表示されます

モジュール結合度【午前2解説】

正解の理由

結合度は、モジュール同士がどれだけ強く依存しているかを表します。結合度が低いほど、変更の影響が他のモジュールに及びにくく、保守しやすい設計です。
イのように、必要な単一のデータ項目だけを引数で受け渡す方法は、モジュール間の依存を最小限にできます。この結合は「データ結合」と呼ばれ、選択肢の中で最も結合度が低い方法です。

解法ステップ

  1. 引数で渡すか、大域的データで共有するかを確認します。
    大域的データを使うと、複数のモジュールが同じデータに依存します。そのため、データの変更が他のモジュールに影響しやすくなります。
  2. 渡すデータが単一項目か、データ構造全体かを確認します。
    データ構造全体を渡すと、受け渡す側と受け取る側が、その構造や項目の配置にも依存します。
  3. 必要なデータだけを引数で渡す方法を選びます。
    単一項目を引数で渡すイは、共有範囲と依存する情報が最も小さくなります。

選択肢別の誤答解説

  • ア:単一のデータ項目を大域的データで受け渡す
    データ項目は一つでも、大域的データを共有するため、利用するモジュール同士がその共有領域に依存します。引数で必要なデータだけを渡す方法より結合度が高くなります。
  • イ:単一のデータ項目を引数で受け渡す
    必要なデータだけを引数として渡す「データ結合」です。共有領域や余分なデータ構造に依存しないため、最も結合度が低くなります。
  • ウ:データ構造を大域的データで受け渡す
    大域的データを共有するうえ、データ構造全体にも依存します。変更の影響が広がりやすい方法です。
  • エ:データ構造を引数で受け渡す
    大域的データを共有しない点では有利ですが、受け渡す側と受け取る側がデータ構造全体に依存します。単一項目だけを渡す方法より結合度が高くなります。

よくある誤解

  • 「引数で渡すなら、どのような渡し方でも結合度が低い」と考える
    引数でも、データ構造全体を渡すと、その構造への依存が生じます。必要な項目だけを渡すほうが結合度を低くできます。
  • 「扱うデータが一つなら、大域的データでも結合度は低い」と考える
    データの数だけでなく、データを共有する方法か、引数で明示的に渡す方法かも重要です。
  • 「大域的データの項目数が少なければ、引数より望ましい」と考える
    大域的データは利用関係が分かりにくくなり、変更の影響範囲も把握しづらくなります。

補足コラム

結合度の代表例には、必要なデータだけを受け渡すデータ結合、データ構造全体を受け渡すスタンプ結合、複数のモジュールで共通データを利用する共通結合などがあります。
一般に、結合度は低いほど望ましいとされます。設計では、モジュール間で共有する情報を減らし、必要なデータだけを引数として明示的に渡すことが基本です。

FAQ

Q. 引数でデータ構造を渡すのは、なぜ単一項目を渡すより結合度が高いのですか?
A. 受け取る側が、データ構造全体の形式や項目に依存するためです。使わない項目が含まれていても、その構造が変更されると影響を受ける可能性があります。
Q. 大域的データを使うことには、どのような問題がありますか?
A. どのモジュールがそのデータを読み書きしているかが分かりにくくなり、変更時の影響範囲を特定しにくくなることです。

関連キーワード: 結合度、データ結合、スタンプ結合、共通結合、大域的データ、引数渡し
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について