基本情報技術者 2013年 秋期 午前(科目A) 問46
問題文
UMLのクラス図のうち、汎化の関係を示したものはどれか。

選択肢
ア:
イ:(正解)
ウ:
エ:
UMLのクラス図のうち、汎化の関係を示したものはどれか。【午前2 解説】
要点まとめ
- 結論:空の三角形を先端に持つ実線(一般化/継承の矢印)が、スーパークラスを指す汎化の関係を表しますので正解です。
- 根拠:UMLの標準表記では「実線+空三角形=一般化(継承)」、塗りつぶしダイヤ=コンポジション、破線=依存や実現を表します。
- 差がつくポイント:線の種類(実線/破線)と矢印先端形状(空三角/実三角/矢先)で関係の種類を瞬時に判別できます。
正解の理由
正解:イ
選択肢イは「スポーツカー」から「自動車」へ向かう実線で、末端が空三角形になっています。UMLのクラス図において「実線+空三角形」は一般化(汎化)=継承(サブクラス→スーパークラス)を表すため、これが汎化の関係を示す正しい表記です。スポーツカーが自動車を継承する(is-a)関係を示す表現になっています。
選択肢イは「スポーツカー」から「自動車」へ向かう実線で、末端が空三角形になっています。UMLのクラス図において「実線+空三角形」は一般化(汎化)=継承(サブクラス→スーパークラス)を表すため、これが汎化の関係を示す正しい表記です。スポーツカーが自動車を継承する(is-a)関係を示す表現になっています。
よくある誤解
- 「矢印がついていれば汎化」と判断してしまう誤り:破線や矢先の形状に注意しないと依存や実現と混同します。
- 「ダイヤ=継承」と誤認するミス:塗りつぶしダイヤはコンポジション(部分→全体)、継承とは別物です。
- 多重度だけで関係を判断する誤り:多重度(1、*など)はアソシエーションやコンポジションの情報であり、汎化の判定には矢印形状が重要です。
解法ステップ
- 線の種類を見る:実線か破線かを確認する(汎化は実線)。
- 矢印先端形状を確認する:空三角形=一般化、実三角やダイヤとは異なる。
- 端の記号を確認する:塗りつぶしダイヤ=コンポジション、白抜きダイヤ=集約など。
- 多重度や位置(上下関係)で意味を補完する:サブクラス→スーパークラスの向きや"is-a"関係を確かめる。
- 判定:実線+空三角形なら汎化(継承)と結論付ける。
選択肢別の誤答解説
- ア:自動車――車検証を結ぶ実線で両端に“1”は単なるアソシエーション(関連)、汎化ではありません。車検証は自動車の属性や関連オブジェクトであり継承関係は成立しない点を確認。
- イ:イは「スポーツカー」→「自動車」へ実線+空三角形で、UMLの一般化(汎化/継承)を正しく表現しているため正解です。
- ウ:「自動車」─「タイヤ」「エンジン」間に塗りつぶしダイヤ+多重度(1 と *)はコンポジション(全体/部分)を示します。部品(タイヤ、エンジン)との強い所有関係であり継承ではありません。
- エ:破線の矢印(先端が空三角形)は実現(realization)や依存を示すことがあり、破線が使われている時点で通常の汎化(実線+空三角形)とは異なります。ドライバ→自動車の関係としても継承(is-a)ではなく依存的関係と解釈されます。
補足コラム
- UMLでの主要な関係記号まとめ:
- 一般化(汎化/継承):実線+空三角形(サブ→スーパ)
- 実現(インタフェースの実装):破線+空三角形(クラス→インタフェース)
- 依存:破線+開き矢(短期的な利用関係)
- 集約:白抜きダイヤ(全体と部分の弱い所有)
- コンポジション:塗りつぶしダイヤ(強い所有・ライフサイクル依存)
- 試験では矢印の形状と線の種類が最重要。文脈(クラス名の意味)と組み合わせて読み解いてください。
FAQ
Q1: 実線でも先端が空三角でなければ汎化ではありませんか?
A1: はい。実線でも先端が他の形(例えば矢先)なら汎化ではありません。空三角が必須です。
A1: はい。実線でも先端が他の形(例えば矢先)なら汎化ではありません。空三角が必須です。
Q2: 破線+空三角はどう判断すべきですか?
A2: 破線+空三角は「実現(realization)」で、インタフェース実装などを表します。一般化(継承)とは異なります。
A2: 破線+空三角は「実現(realization)」で、インタフェース実装などを表します。一般化(継承)とは異なります。
Q3: ダイヤと三角を混同しやすいのですが見分け方は?
A3: 三角(先端の形)=継承・一般化、ダイヤ(端の菱形)=集約/コンポジション(所有関係)です。位置と塗りつぶしの有無も確認してください。
A3: 三角(先端の形)=継承・一般化、ダイヤ(端の菱形)=集約/コンポジション(所有関係)です。位置と塗りつぶしの有無も確認してください。
関連キーワード: UML、クラス図、汎化、継承、一般化、コンポジション、集約、アソシエーション、依存、多重度、矢印形状

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

