SAシステムアーキテクト試験 午前Ⅱ
令和6年度春期 システムアーキテクト 午前Ⅱ 問5
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア単一のデータ項目を大域的データで受け渡す。
- イ単一のデータ項目を引数で受け渡す。
- ウデータ構造を大域的データで受け渡す。
- エデータ構造を引数で受け渡す。
解き方のヒントを見る
結合度は依存の深さで考える
モジュール間でやり取りされる情報によって、一方を変更したときに他方へ影響が及ぶ範囲がどう変わるかという一つの観点に絞り、問題中の受渡し方法と結合度の強弱の対応を自分の言葉で説明できるか確かめながら検討しましょう。
この問題で問われていること
結合度を判断するときは、名称の暗記に頼るのではなく、一方のモジュールを変更したときにもう一方へ影響が及ぶ範囲を想像することが大切です。受渡しの仕方ごとに、その影響範囲を具体的に思い描いてみましょう。
視点
結合度はモジュール同士の依存の強さを表す尺度で、一般に依存が弱いほど保守しやすいとされます。依存の強さは受け渡される情報の量だけでは決まらず、その情報を介して相手の事情にどれだけ依存するかにも左右されます。どちらかを変えたときにもう一方を書き換える必要が生じるかを考える習慣をつけると、区別しやすくなります。
確認ポイント
- 一方のモジュールを変更したとき、他方にも修正が必要になるかを受渡し方法ごとに想像したか
- 受け渡される情報が、受け取る側にとって本当に必要な範囲に収まっているかを考えたか
- 名称の印象ではなく、変更の影響範囲の大小で結合度の強弱を判断しているか
正解と解説を見る
正解
イ
解説
モジュール間の結合度は、共有データへの依存が広いほど、また受け渡す情報量が多いほど高くなります。必要な単一データを引数で渡す方法は依存範囲を限定でき、最も低い結合度になります。
理由
単一のデータ項目を引数で受け渡す方法は、呼出し側と呼出し先の間で必要なデータだけを明示的に渡します。そのため、モジュール間の依存関係が限定され、結合度が最も低くなります。
比較
大域的データを使うと、モジュールが共有領域の内容に依存します。また、データ構造を渡す場合は不要な要素まで依存する可能性があり、単一データ項目を引数で渡す場合より結合度が高くなります。
選択肢ア
これは不正解だよ。大域的データで受け渡すと、モジュールは共有領域の存在や内容に依存します。単一のデータ項目であっても、共有範囲が広く、変更の影響を受けやすいため、引数で必要な値だけを渡す方法より結合度が高くなります。
選択肢イ(正解)
これは正解だよ。単一のデータ項目を引数で受け渡す方法は、モジュール間で必要な情報だけを明示的に渡せます。大域的データを共有せず、データ構造全体にも依存しないため、選択肢の中で最もモジュール結合度が低くなります。
選択肢ウ
これは不正解だよ。データ構造を大域的データで受け渡す方法は、共有領域への依存に加えて、構造全体の内容にも依存します。利用しない要素まで変更の影響を受ける可能性があり、単一項目を引数で渡す方法より結合度が高くなります。
選択肢エ
これは不正解だよ。データ構造を引数で受け渡す方法は、大域的データを共有しない点では依存範囲を限定できます。しかし、構造全体の形式や要素に依存するため、必要な単一データ項目だけを引数で渡す方法より結合度が高くなります。
学習のポイント
データ結合と大域的データ結合の違いを、共有範囲と情報量で整理する。
出典:独立行政法人 情報処理推進機構(IPA)令和6年度春期 システムアーキテクト試験 午前Ⅱ 問5(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針