Агрегация ассоциаций в диаграмме объектов
Ассоциации между классами (в диаграммах классов, конечно) являются абстракцией для набора связей между различными объектами (в диаграммах объектов). Агрегация - это особый вид ассоциации, и у нее есть специальный символ - алмаз.
A House has many (zero to many) windows.
Имена объектов на следующих диаграммах должны быть подчеркнуты. У моего помощника по рисованию для этой быстрой картинки нет очевидной настройки, поэтому я надеюсь, что это не слишком запутанно. Единственная разница в обеих картинах - это ромбовидные знаки на первой.
my:House has side:Window
has back:Window
has front:Window
Используется ли символ ромба в объекте, то есть в диаграммах экземпляров? Или ссылки на объектных диаграммах всегда являются простыми линиями?
2 ответа
Вы также должны использовать ромб в ссылке - очевидно, только если ассоциация является агрегацией.
Btw. Имена объектов (и тип) должны быть подчеркнуты, чтобы легче отличать их от классов.
См. UML 2.4 Superstructure 7.3.22 и рисунок 7.52 в http://www.omg.org/spec/UML/2.4/Superstructure/PDF/
В вашей диаграмме что-то не так. Потому что отношения между домом и окном должны быть композицией, а не агрегацией. Если мы возьмем одно конкретное окно, оно принадлежит одному и только одному дому. Если дом умрет, окно тоже умрет. Так что это композиция.
Ответ на ваш вопрос: "Нам не нужно показывать агрегацию и композицию в диаграммах объектов".