問題
UMLのクラス図で、AがBに対して「集約(aggregation)」関係を持つ場合の意味として正しいものはどれか。
選択肢
- 1AはBの一種である(is-a)
- 2AはBを部品として持つが、Bは独立して存在しうる(has-a、弱い所有)
- 3AはBを生成・破棄し、Bの生存はAに従属する(強い所有)
- 4AはBに依存している(一時的利用)
正解
2. AはBを部品として持つが、Bは独立して存在しうる(has-a、弱い所有)
詳しい解説を見る解説を閉じる
解説
UMLクラス図の集約(アグリゲーション)は「全体−部分」の関係(has-a、弱い所有)を表し、全体側に白抜きのひし形を付けて描く。部分は全体から独立して存在でき、例えばサークル(全体)と学生(部分)の関係では、サークルが解散しても学生は存在し続ける。これに対し、AがBを生成・破棄しBの生存がAに従属する強い所有関係はコンポジション(黒塗りのひし形)で、建物と部屋のように全体が消滅すれば部分も消滅する。is-a(AはBの一種)の関係は汎化(継承)であり白抜き三角の矢印、一時的な利用にとどまる関係は依存であり点線矢印で表すため、いずれも集約の説明ではない。「白いひし形=独立できる弱い所有、黒いひし形=運命共同体の強い所有」と塗りの濃さと結び付きの強さを対応させて覚える。
一問一答
全400問を繰り返し学習