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

選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
UMLの汎化(一般化)【午前解説】
正解の理由
選択肢イは「スポーツカー」から「自動車」へ向かう実線の先に空三角形(空の三角矢印/hollow triangle)が付いています。これはUMLクラス図における一般化(generalization、継承)を表す標準的な記法で、サブクラス(派生)からスーパークラス(基底)へ向かう実線+空三角形で「is‑a(〜は〜の一種)」の関係を示します。したがって、継承関係を示す図はイであり正解です。
解法ステップ
- 図の線と矢印の種類を確認する(実線か破線か、矢頭は三角形か矢印か)。
- 矢頭の形状で関係を判別する:
- 空三角形(hollow triangle)+実線 → 一般化(継承)
- 空三角形(hollow triangle)+破線 → 実現(realization、インタフェース実装など)
- 開いた矢印(単純な矢先)+破線 → 依存(dependency)
- 塗りつぶしダイヤモンド → 合成(composition)、空ダイヤモンド → 集約(aggregation)
- 矢の向き(どちらがサブクラスか)で「誰が継承しているか」を確認する。
- 意味的に「is‑a(〜は〜の一種)」であれば一般化であると判断する。
選択肢別の誤答解説
- ア:二つの長方形を実線で結び、両端に多重度“1”がある。これは単なる関連(association)で、多重度1:1の関係を示す図です。継承を示す記号(空三角形)はないため一般化ではありません。
- ウ:自動車からタイヤ・エンジンへ向かう線の自動車側に塗りつぶしダイヤモンドがある。これは合成(composition)で、全体と部分の強い所有関係(whole‑part)を示します。継承ではなく部品関係です。
- エ:破線の先端に空三角形がある表記です。これは「実現(realization)」を表す記法で、クラスがインタフェースを実装する場合などに使います。見た目は三角形ですが線が破線である点が一般化(実線+空三角形)と異なり、継承ではないため誤りです。
よくある誤解
- 実線+空三角形(一般化)と破線+空三角形(実現)を混同する。三角形は同じように見えても、線が実線か破線かで意味が変わります。
- 合成(塗りつぶしダイヤモンド)や集約(空ダイヤモンド)を「継承」と誤認する。これらは所有・部品関係であり、継承(is‑a)とは異なります。
- 依存(破線+開き矢印)と実現(破線+空三角形)を区別しない。依存は「一時的・弱い関係」、実現は「インタフェースの実装」などの構造的関係です。
補足コラム
UMLクラス図の代表的な記法(抜粋)
- 一般化(継承):実線 + 空三角形(サブ → スーパ)
- 実現(realization):破線 + 空三角形(クラスがインタフェースを実装)
- 依存(dependency):破線 + 開いた矢印(使用・参照の一時的関係)
- 関連(association):実線(必要に応じて多重度を表記)
- 集約(aggregation):実線 + 空ダイヤモンド(弱い所有)
- 合成(composition):実線 + 塗りつぶしダイヤモンド(強い所有)
実務では、インタフェースを実装するケースで破線+空三角形を見かけることが多く、視覚的に三角形があるからといって即「継承」と判断しないことが重要です。
FAQ
Q: 実線+空三角形と破線+空三角形の見分け方は?
A: 線の種類(実線か破線か)を必ず確認してください。実線なら一般化(継承)、破線なら実現(インタフェース実装など)です。
A: 線の種類(実線か破線か)を必ず確認してください。実線なら一般化(継承)、破線なら実現(インタフェース実装など)です。
Q: 継承関係に多重度は使うか?
A: 一般に継承(generalization)で多重度を表記することはありません。多重度は関連(association)で用いる概念です。
A: 一般に継承(generalization)で多重度を表記することはありません。多重度は関連(association)で用いる概念です。
Q: 実現はクラス同士でも使えるのか?
A: 主にクラスがインタフェースを「実装」する場合に使いますが、抽象クラスと具体クラスの関係を表す場合は一般化(実線+空三角形)を用いるのが標準です。
A: 主にクラスがインタフェースを「実装」する場合に使いますが、抽象クラスと具体クラスの関係を表す場合は一般化(実線+空三角形)を用いるのが標準です。
関連キーワード: UML、クラス図、継承、一般化、実現、依存、集約、合成、多重度

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

