令和3年度 秋期 午前 問48
開発技術
変更後のクラス図
図は,ある図形描画ツールのクラス図の一部である。新たな形状や線種で図形を描画する機能の追加を容易にするために,リファクタリング“継承の分割”を行った。変更後のクラス図はどれか。
〔図〕クラス図(箱を線でつないだ図) 三角形 ─▷ 図形(継承) 四角形 ─▷ 図形(継承) 太線の三角形 ─▷ 三角形(継承) 太線の四角形 ─▷ 四角形(継承) 凡例(原典): 長方形=クラス/─▷(白抜き三角の矢)=継承/─>(開いた矢)=関連
- ア「図形」の下に「細線の三角形」「細線の四角形」「太線の三角形」「太線の四角形」の四つを直接継承させ,1 段の継承に平たくしたもの
- イ「太線の図形」から「図形」へ関連を引き,「図形」の下に「三角形」「四角形」を,「太線の図形」の下に「太線の三角形」「太線の四角形」を継承させたもの
- ウ「図形」から「線種」へ関連を引き,「図形」の下に「三角形」「四角形」を,「線種」の下に「太線」「細線」を継承させたもの
- エ「図形」の下に「三角形」「四角形」を継承させ,その下に「太線の三角形」「太線の四角形」を置いた上で,その二つに「太線」も継承させたもの(多重継承)
答えと解説を見る
✓ これが正解ウ「図形」から「線種」へ関連を引き,「図形」の下に「三角形」「四角形」を,「線種」の下に「太線」「細線」を継承させたもの
解説
形状と線種を別の木に分け関連でつなぎます。
設問は、図形描画ツールのクラス図に対してリファクタリングの一つである継承の分割を行った後の形を、四通りの中から選ばせています。変更前は、形状という観点と線種という観点が一本の継承の木の中で混ざっており、形状を一つ足すたびに線種の数だけクラスが必要になる作りになっていました。ですから見分けの軸は、その案が二つの観点を別々の木に分け、両者を継承ではなく関連で結び直しているかどうか、という一点だけです。分けて結び直せば、形状を足しても線種を足してもクラスは一つ増えるだけで済み、組合せの数だけ膨らんでいく作りから抜け出せます。四つのうち、この分け方になっているものは一つだけです。
ほかの選択肢はなぜ違うのか
- ア「図形」の下に「細線の三角形」「細線の四…:継承の段数を一段に均しただけの案で、線種と形状を掛け合わせたクラスがそのまま横に並びます。観点が混ざった状態は解けておらず、むしろ組合せが余さず書き出された形になっています。
- イ「太線の図形」から「図形」へ関連を引き,…:線種の側を上に置く木を作ってはいますが、その下にはなお形状ごとのクラスがぶら下がったままです。二つの観点が一本の木に同居する形が残るので、追加のたびに掛け合わせが必要になります。
- エ「図形」の下に「三角形」「四角形」を継承…:形状の木の末端に線種を継がせる案で、太線の三角形や太線の四角形といった組合せのクラスが残ります。二つの親を持たせる書き方に頼るだけで、観点を切り離したことにはなりません。
出典:令和3年度 秋期 応用情報技術者試験 午前 問48
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)