Либо / ИЛИ диаграмма классов - PullRequest
0 голосов
/ 14 мая 2018

Я работаю с экзаменами в UML и надеюсь, что кто-нибудь сможет ответить на мой вопрос.

В проблемной области говорится, что у каждого клиента, участвующего в мероприятии, будет контракт, как для частных лиц, так и для организаторов.Я закончил с диаграммой классов, где я установил связи между отдельными лицами и организаторами в классе контракта, пожалуйста, посмотрите вложение.

Мой вопрос: могу ли я сказать, что ЛИБО индивид подписывает контракт ИЛИ организатор подписывает контракт, связывая обоих?

enter image description here

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Для этого лучше всего представить концепцию «Клиент», как показано ниже.Связь между Клиентом и Контрактом означает, что один Клиент подписывает один Контракт, а Контракт подписывается одним Клиентом.Связи наследования между Заказчиком и Организатором и Физическим лицом означают, что они являются Заказчиком, которому разрешено подписать Договор.

enter image description here

Если вы хотите сохранить свойоригинальный дизайн, вы можете добавить ограничение, чтобы выразить тот факт, что либо физическое лицо, либо организатор может подписать контракт, но это кажется мне элегантным.

enter image description here

0 голосов
/ 14 мая 2018

Как я понимаю ваш вопрос, вы должны использовать xor, связанный с обеими ассоциациями. Это может быть пунктирная линия, идущая от одной ассоциации к другой, помеченная {xor}, или вы можете создать заметку с текстом {xor} и связать ее с обеими ассоциациями. Вы должны изменить конец кратности на 0..1, чтобы избежать некорректной диаграммы.

Xor означает, что для конкретного контракта существует ровно одна ссылка, относящаяся к одной из двух ассоциаций.

Xor специально описан в спецификации UML . В версии 2.5.1 (текущей) спецификации она находится в разделе 7.6.5, рисунок 7.16.

...