平成21年度 秋期 午前 問45
開発技術
モジュール結合度に関する問題
モジュール結合度が最も弱いモジュールはどれか。
- ア単一のデータ項目を大域的データで受け渡すモジュール
- イ単一のデータ項目を引数で受け渡すモジュール
- ウデータ構造を大域的データで受け渡すモジュール
- エデータ構造を引数で受け渡すモジュール
答えと解説を見る
✓ これが正解イ単一のデータ項目を引数で受け渡すモジュール
解説
共有域を使わず、必要最小限を引数で渡すのが最弱です。
モジュール結合度は、部品と部品の依存の強さを段階で並べた尺度です。強いほど、片方を直したときに他方まで影響が及びやすく、弱いほど、影響を狭い範囲に閉じ込められます。渡し方の面で見ると、共有域に置いた値をお互いに触るやり方は、影響の道筋が見えにくく、結合を強めます。呼び出しのたびに引数で明示的に渡すやり方は、依存する範囲を呼び出し側が名指しできるため、結合を弱めます。運ぶ中身の面では、内側の構造まで丸ごと渡すよりも、必要な単一の値だけを渡す方が、受け側の中の仮定が少なくて済みます。四つの記述を、渡し方と運ぶ中身の二軸で並べると、共有域を使わず、単一の値だけを引数で渡すものが、最も結合の弱い側に位置づきます。要点は、影響が広がる道筋と、受け側の仮定の重さ、の両方を軽くする組合せを取り出すことです。
ほかの選択肢はなぜ違うのか
- ア単一のデータ項目を大域的データで受け渡す…:単一の値を、共有域に置いてお互いに触る形で渡すと述べています。運ぶ中身は軽くても、共有域を経由する道が影響の広がりを許すため、引数で渡す形より結合が強くなります。
- ウデータ構造を大域的データで受け渡すモジュ…:内側の構造ごと、共有域に置いてやりとりする形を挙げています。運ぶ中身が重い上に、共有域を経由するため、上に挙げた二つの弱点が重なって、結合が最も強い側に寄ります。
- エデータ構造を引数で受け渡すモジュール:内側の構造ごと、引数で渡す形を挙げています。渡し方は明示的ですが、受け側は構造の並びに合わせた仮定を置くことになり、単一の値だけを引数で渡す形より結合が強くなります。
出典:平成21年度 秋期 応用情報技術者試験 午前 問45
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)