2016-05-09 3 views
0

Как эта ситуация может быть представлена ​​на диаграмме классов более элегантным (и профессиональным) способом (с использованием наследований?)?UML-моделирование - как представить многоуровневое наследование на диаграмму классов?

актер [класс] может быть физическое лицо [класс] или компания [класс], но не оба.
Актер может быть внутренний актер [класс] ИЛИ внешний актер [класс], но не тот и другой.
Внутренний актер может быть физическим лицом или компанией, но не тем и другим.
Внешним субъектом может быть физическое лицо или компания, но не оба.

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

+0

Физическое лицо (и компания) может быть чем-то иным, чем актером? – Xaelis

+0

@ Oliver: не могли бы вы оставить комментарии, если не нашли ответы на свой вкус? –

ответ

0

Вот это элегантный способ представить то, что вы хотите в UML с наименьшим количеством классов: enter image description here

Из-за {complete, disjoint} ограничений, эта модель требует экземпляра, чтобы быть точно один из Physical PersonилиCompany, в то время как в то же время являясь одним из Inner ActorилиExternal Actor. Спецификация экземпляра внизу показывает, как создать экземпляр.

UML может представлять это без проблем. Но, как вы его сопоставляете с языком программирования, другое дело. (И еще один вопрос.) Многие языки не поддерживают множественную классификацию экземпляров, поэтому вам нужно забить квадратную привязку в круглое отверстие.

1

Если вы не возражаете, мульти-наследования вы могли бы рассмотреть что-то вроде этого:

Multi-Inheritance

(. Внутренний Actor отображается время буксировки, чтобы упростить схему, это тот же класс)

+0

Этот ответ пропускает требования «но не оба» везде, где встречаются эти слова. Для этого вам нужны аксиомы прикрытия и дизъюнкции. (I.e, {полный, непересекающийся}.) –

+0

Да, это точно. Каждый экземпляр может быть физическим лицом или компанией, но не тем и другим. И каждый экземпляр может быть внешним актером или внутренним актером, но не тем и другим. – Xaelis

+0

Эта модель позволяет создать экземпляр «Company», который не является внутренним или внешним субъектом. –

Смежные вопросы