SAシステムアーキテクト試験 午前Ⅱ

平成23年度秋期 システムアーキテクト 午前Ⅱ 問5

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

モジュールの独立性を高めるには,モジュール結合度を弱くする必要がある。モジュール間の情報の受渡し方法のうち,モジュール結合度が最も弱いものはどれか。

選択肢

  1. ア
    共通域に定義したデータを関係するモジュールが参照する。
  2. イ
    制御パラメタを引数として渡し,モジュールの実行順序を制御する。
  3. ウ
    入出力に必要なデータ項目だけをモジュール間の引数として渡す。
  4. エ
    必要なデータを外部宣言して共有する。
解き方のヒントを見る

受け渡す情報の範囲と依存の深さを見る

モジュール同士がどのような経路で何を共有しているかに注目し、一方の変更がもう一方にどこまで影響し得るかという観点で、受渡し方法ごとの依存の度合いを自分の言葉で整理してから判断しましょう。

この問題で問われていること

この分野では、呼び出し側と呼び出される側の間で交わされる情報の量や性質、共有の仕方が結合の強さとどう結び付くかを理解しているかが問われます。受け手が送り手の内部事情をどれだけ知る必要があるかを意識しましょう。

視点

結合度はモジュール間の依存の強さを表す尺度で、一般に弱いほど保守や再利用がしやすいとされます。依存の強さを考えるときは、一方のモジュールの内部を書き換えたと仮定し、もう一方のどこまで修正が及ぶかを具体的に想像してみてください。受渡し方法の違いを比べる手がかりになります。

確認ポイント

  • 片方のモジュールを変更したとき、もう片方で修正が必要になる範囲を想像したか
  • 受け手が送り手の内部の都合をどの程度知っている前提になっているかを考えたか
  • 結合度の『強い・弱い』と、設計上の望ましさの向きを取り違えていないか確認したか
正解と解説を見る

正解

ウ

解説

モジュール結合度を弱くするには、必要最小限のデータだけを明示的な引数で渡し、共有領域や制御情報への依存を避けます。したがって、入出力に必要なデータ項目だけを引数として渡す方法が最も適切です。

理由

モジュール間で必要なデータ項目だけを引数として渡すと、各モジュールが相手の内部状態や実行制御に依存せずに済みます。受渡し範囲が限定されるため、結合度が最も弱くなります。

比較

共通域や外部宣言による共有は、複数モジュールが同じデータ領域に依存します。また、制御パラメタを渡す方法は、相手の処理内容や実行順序に依存させるため、データだけを渡す方法より結合が強くなります。

選択肢ア

これは不正解だよ。共通域に定義したデータを参照すると、複数のモジュールが同じ共有領域の内容や構造に依存します。そのため、必要なデータだけを引数で渡す方法よりもモジュール間の結合度が強くなります。

選択肢イ

これは不正解だよ。制御パラメタを引数として渡す方法は、単なるデータ受渡しに加えて、モジュールの実行順序や処理分岐にも依存させます。相手の制御方法を意識する必要があるため、結合度は最も弱くありません。

選択肢ウ(正解)

これは正解だよ。入出力に必要なデータ項目だけを引数として渡す方法は、モジュール間の依存範囲を必要最小限に限定できます。共通領域や制御情報に依存せず、データ結合となるため、結合度が最も弱くなります。

選択肢エ

これは不正解だよ。必要なデータを外部宣言して共有すると、関係するモジュールが外部に置かれたデータの存在や定義に依存します。共有データへの依存が生じるため、必要な項目だけを引数で渡す方法より結合度が強くなります。

学習のポイント

データ結合と、共有データや制御情報による強い結合の違いを理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成23年度秋期 システムアーキテクト試験 午前Ⅱ 問5(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針