SC情報処理安全確保支援士試験 午前Ⅰ

平成28年度春期 情報処理安全確保支援士 午前Ⅰ 問17

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

問題

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

選択肢

  1. ア
    単一のデータ項目を大域的データで受け渡す。
  2. イ
    単一のデータ項目を引数で受け渡す。
  3. ウ
    データ構造を大域的データで受け渡す。
  4. エ
    データ構造を引数で受け渡す。
解き方のヒントを見る

モジュール結合度は「どれだけ余計につながっているか」で考えよう

モジュール同士の結びつきを弱くしたいなら、必要なデータだけを引数でピンポイントに渡すのが基本だよ。たとえば、友だちに料理を頼むときに「塩を小さじ1だけ使ってね」と伝えるのと、冷蔵庫ごと渡すのでは、関わる範囲が全然違うよね。大域変数を共有したり、構造体やレコード全体を丸ごと渡したりすると、使わない情報まで相手に見えてしまって、依存関係が広がりやすくなるんだ。

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

結合度の低さを判断するときは、「どれくらい広い範囲を共有しているか」と「必要以上のデータを渡していないか」に注目しよう。必要最小限のデータだけを明示的に渡す方法が、いちばん独立性を保ちやすいよ。

Lowest Coupling in Data Passing

the loosest coupling is achieved by passing only a single needed data item as an argument、 instead of sharing globals or passing larger structures

single data item by argument\nno global shared state\navoid passing large structures\nminimize dependency surface

確認ポイント

  • 単一項目を引数で渡す。
  • 大域変数は結合度を高めやすい。
  • 必要最小限の受渡しを選ぶ。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。単一のデータでも、大域的データで渡すのは、共有掲示板に値を置いてみんなで見る感じだよ。直接手渡しではないので、誰が使うか・変えるかが見えにくく、モジュール同士の結び付きが強くなるんだ。これは外部結合だよ。

選択肢イ(正解)

これは正解だよ。単一のデータ項目を引数で渡すのは、窓口で必要な書類1枚だけを手渡すようなものだよ。相手は余計な情報や共有場所を知らなくてよいので、モジュール同士の依存がいちばん小さくなるんだ。これはデータ結合で、結合度が最も低いよ。

選択肢ウ

これは不正解だよ。データ構造を大域的データで渡すのは、みんなが同じ共有ロッカーの大きなバッグを勝手に見るようなものだよ。どの人が中身を変えたか分かりにくく、影響範囲も広がるので結合度は低くないんだ。これは共通結合だよ。

選択肢エ

これは不正解だよ。データ構造を引数で渡すのは、必要な荷物だけでなく大きなバッグごと窓口に渡す感じだよ。相手はバッグの中身や形を知る必要があるので、単一データを渡すより結び付きが少し強いんだ。これはスタンプ結合だよ。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 情報処理安全確保支援士試験 午前Ⅰ 問17(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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