Как вы показываете специализацию в диаграмме UML, когда два специализированных объекта могут быть друг другом. Например:Показ специализации с UML
[Personel]
^
/_\
|
------------
| |
[Employee] [Manager]
Как правило, я хотел бы использовать пустую стрелку, чтобы показать специализацию, но как я показать, что работник или менеджер может также иметь другую роль в каком-то случае? Нужно ли мне просто использовать линию для их подключения?
Согласен, хотя я бы сказал, что конкретный экземпляр «PartyRole» играет одна «партия». Кроме того, значение по умолчанию в UML 2 * перекрывается *, а не дизъюнктно. Хотя ваша базовая модель может иметь набор обобщений, который является {полным, непересекающимся}, на этой диаграмме невозможно определить. –
@ JimL. Вы правы, я исправил ошибку. Однако я не уверен в '{complete, disjoint}' clause. Я нашел 'isDisjoint' как параметр для' GeneralizationSet', но я не смог найти, откуда происходит 'complete'. Но так как «Обобщение» не обязательно должно быть частью «Обобщения», я не должен указывать, должен ли я? –
UML немного странно, поскольку слова, показанные в фигурных скобках, не соответствуют словам в метамодели. Таблица 9.1 в спецификации UML 2.5 (формальный-15-03-01) обеспечивает отображение. Слово '{complete}' сопоставляется с 'isCovering = true', слово' {uncomplete ''отображается на' isCovering = false', слово '{disjoint}' отображается на 'isDisjoint = true', а слово' { overlapping} 'maps to' isDisjoint = false'. По умолчанию используется '{неполное, перекрытие}. Я считаю, что по умолчанию выполняется, когда обобщения не входят в набор обобщений. –