平成28年度 春期 午前 問47
開発技術
結合度に関する問題
モジュールの結合度が最も低い,データの受渡し方法はどれか。
- ア単一のデータ項目を大域的データで受け渡す。
- イ単一のデータ項目を引数で受け渡す。
- ウデータ構造を大域的データで受け渡す。
- エデータ構造を引数で受け渡す。
答えと解説を見る
✓ これが正解イ単一のデータ項目を引数で受け渡す。
解説
引数で単一の項目だけを渡す形が最も弱い結びつきです。
結合度は、モジュール同士のつながりの強さを表します。強いほど、片方を直すともう片方まで直す羽目になるので、設計としては弱い方が望ましいとされます。設問の四つは、渡すものが単一のデータ項目かデータ構造か、そして渡し方が引数か大域的データか、という二つの軸の組合せになっています。ですから表にして考えると一度で決まります。まず渡し方を見ます。大域的データはどのモジュールからでも触れるので、誰がいつ書き換えたのかを追えません。影響の及ぶ範囲が読めなくなるぶん、引数より強い結びつきになります。次に渡すものを見ます。データ構造でまとめて渡すと、使っていない項目まで一緒に届きます。構造を一か所直しただけで、その中身を使っていないモジュールまで作り直しになるため、単一の項目よりも強くなります。両方とも弱い側を選べば、引数で単一のデータ項目を渡す形になり、これをデータ結合と呼びます。順番を丸暗記するのではなく、二つの軸の掛け算として捉えると崩れません。対になる考え方に凝集の度合いがあり、そちらは高いほど望ましいので、向きが逆になる点に注意してください。
ほかの選択肢はなぜ違うのか
- ア単一のデータ項目を大域的データで受け渡す…:受け渡す中身は一つの項目に絞れていますが、置き場所が大域的データになっています。どこからでも触れる場所を経由する以上、引数で渡す場合よりも結びつきは強くなります。
- ウデータ構造を大域的データで受け渡す。:まとめた構造を大域的データに置く形で、二つの軸のどちらも強い側に寄っています。四つのなかでは最も強い結びつきにあたるので、最も低いという条件からは最も遠い位置にあります。
- エデータ構造を引数で受け渡す。:渡し方が引数なので半分は弱い側ですが、渡すものがデータ構造のままです。使わない項目まで同時に届くぶん、単一のデータ項目を渡す形にはあと一歩及びません。
出典:平成28年度 春期 応用情報技術者試験 午前 問47
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)