2017-02-06 4 views
1

Я не могу найти ответ на свой вопрос. Существует ли ограничение того, насколько зависимость между отношениями может быть между двумя классами? Имеются ли в UML-классах диаграммы вообще не более одного отношения между одним и тем же типом между двумя классами, но они могут иметь 2 или более reliationhip разных типов (например, между двумя классами оба они могут иметь состав и обобщение reliationionship?Условное отношение зависимости UML

ответ

0

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

+0

Благодарим за ответ, применимы ли эти правила к агрегации, составлению и обобщению отношений? Можно ли иметь два класса, которые имеют отношение состава и обобщения? – Macieyerk

+0

Да, конечно. Вам потребуются стереотипы для дифференциации обобщений, потому что более одного смысла нет. –

+0

Заключительный вопрос, я могу смешивать различные отношения между двумя классами без ограничений, например, агрегирование + состав, состав + обобщение или зависимость + ассоциации + агрегация + состав + обобщение? – Macieyerk

2

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

  1. Обобщение, реализация имеют смысл, где, если существует такая связь между двумя классами, она непосредственно подразумевает некоторые последствия. Повторение того же отношения во второй раз не будет иметь никакого дальнейшего воздействия, поэтому это не имеет никакого смысла. Также сложно специализироваться на этих отношениях через стереотипы.
  2. Простая зависимость предоставляет некоторую информацию, которая снова не может быть «повторена», имея следующую зависимость. Однако стереотипная зависимость может принести больше ценности и информации, поэтому у вас может быть более одной зависимости, но с разными стереотипами. Как только у вас есть одна зависимость от конкретного стереотипа, повторяющего то же самое, не дает дополнительной ценности, еще одна зависимость от другого стереотипа - вполне понятный и разумный случай. Теоретически одна и та же зависимость может применяться дважды в двух разных направлениях, но я бы тогда исследовал глубоко - обычно это показывает, что с проектом что-то не так.
  3. Ассоциации (включая агрегацию - как совместно, так и составную) между двумя классами могут иметь много разных значений. Они должны быть дифференцированы либо по имени ассоциации, роли ассоциации, стереотипу, либо путем смешивания этих методов. Таким образом, вы можете иметь несколько ассоциаций одного и того же «типа» между теми же двумя классами, и они будут иметь значительный смысл. Так много ассоциаций между одними и теми же классами абсолютно в порядке, и это типичная ситуация.
  4. Смешивание разных отношений также абсолютно нормально, однако иногда одно отношение подразумевает другое. В общем случае любая (или почти любая) связь подразумевает не-стереотипную зависимость (в том же направлении), поэтому использование ее явно не дает никакой дополнительной информации или эффекта.
Смежные вопросы