ネットワークスペシャリスト 2013年 午前2 問25
問題文
次のクラス図におけるクラス間の関係の説明のうち、適切なものはどれか。

選択肢
ア:“バス”、“トラック”などのクラスが“自動車”クラスの定義を引き継ぐことを、インスタンスという。
イ:“バス”、“トラック”などのクラスの共通部分を抽出し“自動車”クラスとして定義することを、汎化という。(正解)
ウ:“バス”、“トラック”などのクラスは、“自動車”クラスに対するオブジェクトという。
エ:“バス”、“トラック”などのそれぞれのクラスの違いを“自動車”クラスとして定義することを、特化という。
クラス図におけるクラス間の関係の説明【午前2 解説】
要点まとめ
- 結論:複数のクラスの共通部分を抽出し上位クラスとしてまとめることを「汎化」と呼びます。
- 根拠:図の「自動車」が「バス」「トラック」などの共通の特徴を持つ上位クラスとして表現されているためです。
- 差がつくポイント:インスタンスとクラスの違いや、特化と汎化の概念を正確に理解しているかが合否を分けます。
正解の理由
選択肢イは、「バス」「トラック」など複数のクラスの共通部分を抽出し、「自動車」という上位クラスにまとめる行為を「汎化」と定義しており、クラス図の表現と一致します。
この水平線と上向き矢印は、下位クラスが上位クラスを一般化した関係を示し、まさに汎化の典型的な表現です。
この水平線と上向き矢印は、下位クラスが上位クラスを一般化した関係を示し、まさに汎化の典型的な表現です。
よくある誤解
「インスタンス」と「クラス」の違いを混同しやすい点です。クラスは設計図、インスタンスは実体であり、クラス間の関係をインスタンスで説明するのは誤りです。
解法ステップ
- クラス図の構造を確認し、上位クラスと下位クラスの関係を把握する。
- 水平線と矢印の意味を理解し、一般化・特殊化の関係を見極める。
- 選択肢の用語(汎化、特化、インスタンスなど)の定義を正確に確認する。
- 図の表現と用語の意味が一致する選択肢を選ぶ。
選択肢別の誤答解説
- ア:「インスタンス」はクラスの実体を指し、クラスの定義を引き継ぐことを意味しません。
- イ:「バス」「トラック」などの共通部分を抽出し「自動車」として定義することを汎化と呼び、正しい。
- ウ:「バス」「トラック」などはクラスであり、オブジェクト(インスタンス)ではありません。
- エ:「特化」は上位クラスから下位クラスへ特徴を追加することを指し、「自動車」クラスに違いを定義するのは誤りです。
補足コラム
汎化(Generalization)はオブジェクト指向設計の基本概念で、複数のクラスに共通する属性や操作を上位クラスにまとめることで設計の重複を減らし、保守性を高めます。逆に特化(Specialization)は上位クラスから派生してより具体的なクラスを作ることを指します。
FAQ
Q: 汎化と継承は同じ意味ですか?
A: 汎化は設計上の概念で、継承はプログラミング言語での実装手段です。汎化の関係を継承で表現します。
A: 汎化は設計上の概念で、継承はプログラミング言語での実装手段です。汎化の関係を継承で表現します。
Q: 水平線の意味は何ですか?
A: UMLのクラス図で水平線は複数の下位クラスが上位クラスに属する「一般化関係」を示します。
A: UMLのクラス図で水平線は複数の下位クラスが上位クラスに属する「一般化関係」を示します。
関連キーワード: クラス図、汎化、特化、インスタンス、一般化関係、UML

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

