SAシステムアーキテクト試験 午前Ⅱ
令和4年度春期 システムアーキテクト 午前Ⅱ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア単一のデータ項目を大域的データで受け渡す。
- イ単一のデータ項目を引数で受け渡す。
- ウデータ構造を大域的データで受け渡す。
- エデータ構造を引数で受け渡す。
解き方のヒントを見る
受渡しの経路と範囲に着目する
モジュール同士の関係を考えるときは、名称を暗記で当てはめるのではなく、呼出し側と呼ばれる側の間で情報がどの経路を通り、どこまでの範囲が相手に見えているかを一つずつ確かめる姿勢が役立ちます。
この問題で問われていること
問われているのは用語の暗記よりも、情報の受け渡し経路と共有される範囲という一つの観点で提示内容を見直せるかどうかです。使われている手段と、それによって生じる依存の広がりを対応させて考えてください。
視点
結合度は、モジュール同士がどれだけ互いに依存しているかを表す尺度です。依存の強さは、やり取りされる情報の量や性質、情報が届く経路によって変わります。名称と説明を丸ごと覚えるより、情報がどこを通り、相手にどこまで見えているかという一つの軸で整理すると、個々の用語の位置付けを自分で判断しやすくなります。
確認ポイント
- 情報がどの経路を通って相手モジュールに届くのかを具体的に確かめる
- 相手に見える情報の範囲が、実際に必要な範囲と比べてどうかを考える
- 一方の変更が他方にどの程度影響しうるかという依存の広がりと結び付けて整理する
正解と解説を見る
正解
イ
解説
モジュール間の結合度は、必要なデータを明示的に受け渡し、共有領域や不要なデータ構造への依存を避けるほど低くなる。単一のデータ項目を引数で渡す方法は、受渡し範囲が限定されるため最も低い結合度となる。
理由
単一のデータ項目を引数で受け渡す方法は、呼び出し側が必要な値だけを明示的に渡す。共有領域やモジュール内部のデータ構造に依存しないため、モジュール間の結合が最も小さい。
比較
大域的データを使う方法は共有領域への依存が生じる。また、データ構造を引数で渡す方法は、構造全体への依存が増える。したがって、単一項目を引数で渡す方法が最も低い。
選択肢ア
これは不正解だよ。大域的データを介すると、受渡しのために共有領域へ依存するため、単一の項目だけであってもモジュール間の結び付きが強くなる。引数で必要なデータだけを渡す方法より結合度は高い。
選択肢イ(正解)
これは正解だよ。単一のデータ項目を引数で受け渡す方法は、必要な値だけを明示的に渡せる。大域的な共有領域や複雑なデータ構造に依存せず、モジュール間の結合を最小限に抑えられる。
選択肢ウ
これは不正解だよ。データ構造を大域的データで受け渡す方法は、共有領域への依存に加えて、そのデータ構造にも依存する。単一項目を引数で渡す方法より、モジュール間の結合度は高くなる。
選択肢エ
これは不正解だよ。引数を使う点では共有領域への依存を避けられるが、データ構造全体を受け渡すため、構造の内容や形式への依存が生じる。単一項目を渡す場合より結合度は高い。
学習のポイント
データ結合と大域的データによる結合の違いを整理する。
出典:独立行政法人 情報処理推進機構(IPA)令和4年度春期 システムアーキテクト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針