応用情報技術者試験 応用情報技術者試験 令和3年度秋期 午前48: 図は,ある図形描画ツールのクラス図の一部である。新たな形状や線種で図形を描画する機能の追加を容易にするために,リファクタリング“継承の分割”を行った。変更後のク

応用情報技術者試験 令和3年度秋期 午前
Q 4848 / 80
図は,ある図形描画ツールのクラス図の一部である。新たな形状や線種で図形を描画する機能の追加を容易にするために,“継承の分割”を行った。変更後のクラス図はどれか。
問題のクラス図。図形を頂点とし三角形・四角形が継承,三角形→太線の三角形,四角形→太線の四角形が継承するUMLクラス図(凡例:クラス,継承,関連)選択肢アのクラス図。図形を親に細線の三角形・細線の四角形・太線の三角形・太線の四角形が継承選択肢イのクラス図。図形と太線の図形を関連で結び,図形→三角形・四角形,太線の図形→太線の三角形・太線の四角形が継承選択肢ウのクラス図。図形と線種を関連で結び,図形→三角形・四角形,線種→太線・細線が継承選択肢エのクラス図。図形→三角形・四角形,三角形→太線の三角形,四角形→太線の四角形,さらに太線の三角形・太線の四角形→太線が継承
この問の正解率:63.36%(232件)

問題本文

図は,ある図形描画ツールのクラス図の一部である。新たな形状や線種で図形を描画する機能の追加を容易にするために,リファクタリング“継承の分割”を行った。変更後のクラス図はどれか。

選択肢

  • .(クラス図。図形クラスを親とし,細線の三角形,細線の四角形,太線の三角形,太線の四角形の四つが継承する。)
  • .(クラス図。図形クラスと太線の図形クラスが関連で結ばれ,図形を親として三角形・四角形が継承,太線の図形を親として太線の三角形・太線の四角形が継承する。)
  • .(クラス図。図形クラスと線種クラスが関連で結ばれ,図形を親として三角形・四角形が継承,線種を親として太線・細線が継承する。)
  • .(クラス図。図形クラスを親として三角形・四角形が継承し,三角形を親として太線の三角形,四角形を親として太線の四角形が継承し,さらに太線の三角形・太線の四角形を親として太線が継承する。)

正解

. (クラス図。図形クラスと線種クラスが関連で結ばれ,図形を親として三角形・四角形が継承,線種を親として太線・細線が継承する。)

解説

リファクタリング“継承の分割”とは、一つの継承階層に異なる種類の性質が混ざっているとき、それぞれを独立した階層に分けて拡張しやすくする手法です。元の図は“形状(三角形・四角形)”と“線種(太線・細線)”という別の観点を一本の継承ツリーに詰め込んでいるため、形状や線種を追加するたびに組合せのクラスが増えてしまいます。これを“図形(形状)”の階層と“線種”の階層に分け、両者を関連で結んだウが正解で、形状を1種類、線種を1種類追加してもクラスは1つ増えるだけで済み拡張が容易になります。

選択肢ごとの解説

  • .細線の三角形・太線の四角形などの組合せをすべて図形の直下に並べる構造で、形状と線種を掛け合わせた数だけクラスが必要となり拡張が困難なため、分割になっておらず誤り。
  • .“太線の図形”という線種を含んだ別の図形階層を作っているだけで、形状ごとに太線・細線の組合せクラスが残り、線種を一般的に分離できていないため誤り。
  • .形状を表す図形階層(三角形・四角形)と線種を表す階層(太線・細線)を独立させ関連で結んでおり、形状・線種をそれぞれ単独に追加できる“継承の分割”の正しい形なので正しい。
  • .形状の階層の下にさらに太線の組合せクラスを継承させ、その下に太線クラスをぶら下げる構造で、線種が形状階層に従属したまま組合せが増え続けるため分割になっておらず誤り。

応用情報技術者試験 令和3年度秋期 午前過去問一覧へ戻る・問48