2022 サンプル問題39テクノロジ系

基本情報 2022 サンプル問題 問39:テクノロジ系に関する問題

モジュール結合度が最も弱くなるものはどれか。

  • a一つのモジュールで,できるだけ多くの機能を実現する。
  • b二つのモジュール間で必要なデータ項目だけを引数として渡す。正答
  • c他のモジュールとデータ項目を共有するためにグローバルな領域を使用する。
  • d他のモジュールを呼び出すときに,呼び出したモジュールの論理を制御するため の引数を渡す。 - 21 -
正答:B二つのモジュール間で必要なデータ項目だけを引数として渡す。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは b です。

「結合度」は、モジュール(部品)同士がどれだけ 強くくっついて依存しているか の度合い。

  • 弱い結合 = 良い(独立性が高く、変更しても他に影響しにくい)
  • 強い結合 = 悪い(1ヶ所いじると他もバグる)

弱くするコツは「必要なデータだけ最小限を渡す」こと。b はまさにそれ。

👉 覚え方:結合度は弱いほうが良い。データだけ最小限に渡せ!

ほかの選択肢:a 1モジュールに機能を詰め込む=凝集度の話(しかも悪い設計)/c グローバル変数で共有=強い結合(共通結合)/d 制御フラグを渡す=制御結合(中くらい)。全部 b より結合度が強い。

標準試験対策の基準レベル

なぜこれが正解か

正解は b。モジュール結合度(coupling)は弱いほど良い設計とされ、強さの順に 内容結合 > 共通結合 > 外部結合 > 制御結合 > スタンプ結合 > データ結合(一部教科書はメッセージ結合を最弱と追加)。b は必要なデータ項目だけを引数で受け渡す データ結合 に該当し、最も弱い結合となる。

各選択肢の解説

  • a:1モジュールに多機能詰め込みは 凝集度 の話(モジュール強度)であり、結合度の論点ではない。
  • b:必要データのみを引数で渡す=データ結合(最弱)。正解。
  • c:グローバル領域共有=共通結合(強い)。
  • d:制御用の引数で他モジュールの論理を制御=制御結合(中程度)。

覚え方・ひっかけ注意

「内・共・外・制・ス・デ」(強→弱)で語呂暗記。結合度は弱く、凝集度は強く が良い設計の合言葉。同一問題でよく凝集度(機能的凝集が最強)と混同するので分けて覚える。

上級誤答論破・背景理論まで深掘り

理論的背景

Myers/Constantine による構造化設計の中心概念。結合度6分類(強→弱):

1. 内容結合:他モジュールの内部に直接ジャンプ/参照(gotoで他関数中に飛ぶ等、最悪)

2. 共通結合:共通領域(グローバル変数)でデータ共有

3. 外部結合:外部宣言された単純変数を共有

4. 制御結合:相手の処理を選択するフラグを渡す

5. スタンプ結合:必要以上のデータ構造(レコード全体)を渡す

6. データ結合:必要最小限のスカラ値だけを渡す(最弱)

対をなす凝集度(機能的>情報的>連絡的>手順的>時間的>論理的>暗合的)と組合せて設計品質を評価する。

現代的拡張

オブジェクト指向では Martin の Afferent/Efferent CouplingInstability = Ce/(Ca+Ce) で定量化、SOLIDの DIP で抽象に依存させ結合を弱める。マイクロサービスでは コレオグラフィ vs オーケストレーション、イベント駆動アーキテクチャ(EDA)で疎結合化、Bounded Context間の Anti-Corruption Layer で結合悪化を防ぐ。

実務での使われ方

静的解析ツール(SonarQube、NDepend、jdepend)が結合度・凝集度メトリクスを自動計測。リファクタリング(Fowler)の動機づけとして「Feature Envy」「Inappropriate Intimacy」スメル検出が結合度悪化を示唆。コードレビューやアーキテクチャ判定で必修知識。

試験での位置づけ

基本情報では6分類の名称・強弱順・例示の識別が定番。応用情報では凝集度との組合せ評価、レガシーシステム分析でのリファクタリング判断に発展。情報処理技術者試験では「データ結合が最弱」「機能的凝集が最強」を確実に。

選択肢の発展補足

c グローバル変数(共通結合)の弊害:影響範囲不明・並行処理での競合・テスタビリティ低下。代替策はDI(依存性注入)コンテナで明示的依存を可視化。d 制御結合の代替はStrategy パターン等でポリモーフィズム化し、フラグ分岐を消す。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 2022 サンプル問題39/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。