正答2
解説
正解は2です。
この問題は、UML(Unified Modeling Language)のクラス図で、クラス間の関係を表す線の種類を区別できるかを問うています。
汎化は、一般的なクラス(スーパークラス)と、それを特化したクラス(サブクラス)の「is-a」の関係です。
クラス図では、サブクラスからスーパークラスへ、先が中空の三角形の実線矢印で表します。
【選択肢別解説】
1:× 図のアは、「自動車」と「車検証」を、矢印のない実線で結び、両端に多重度1を書いています。
これは関連を表し、1台の自動車に1枚の車検証が対応することを示します。
2:○ 図のイは、「スポーツカー」から「自動車」へ、先が中空の三角形の実線矢印を引いています。
これは汎化を表し、スポーツカーは自動車の一種であることを示します。
3:× 図のウは、「自動車」側に黒く塗りつぶしたひし形を付けた線で、「タイヤ」「エンジン」と結んでいます。
これはコンポジションを表し、タイヤやエンジンが自動車の部品として全体と一体であることを示します。
4:× 図のエは、「ドライバ」から「自動車」へ、破線の矢印を引いています。
これは依存を表し、ドライバが自動車を利用する一時的な関係を示します。
【ポイント】
汎化は中空の三角形、集約は中空のひし形、コンポジションは塗りつぶしたひし形、依存は破線の矢印です。
汎化は「〜は〜の一種」、集約やコンポジションは「〜は〜の一部」と言い換えて判断します。