В UML композиция подразумевает класс ассоциации? - PullRequest
1 голос
/ 08 апреля 2019

На диаграмме UML, где один класс состоит из другого класса, существует ли таблица неявных ассоциаций или ее нужно показать?

Например, если у меня есть главы, которые составляют абзацы,достаточно ли этого одного:

uml without explicit association class

Или класс ассоциации должен быть явно показан следующим образом:

uml with explicit association class

Я имеюникогда не видел, чтобы это делалось так, как в последнем примере, поэтому я предполагаю, что это подразумевается.Или, может быть, я не нормализовал данные должным образом (учитывая, что глава появляется в классе Chapter и классе Paragraph).

Ответы [ 3 ]

2 голосов
/ 08 апреля 2019

Нет, это не подразумевается.

Причина, по которой вы этого не видели, заключается в том, что в большинстве случаев это просто не имеет смысла.В классе ассоциации часть класса дополнительно описывает свойства ассоциации.В вашем примере вы создаете искусственный объект, который на самом деле приносит мало или ничего.Такой подход может быть полезен для отношений «многие ко многим», которые невозможно составить (каждая часть может содержать не более одного целого).Даже если вы захотите показать Foreign Key, он просто будет на одном из классов.Но это подразумевается самой ассоциацией.В соответствии со спецификацией UML встроенный атрибут эквивалентен ассоциации.

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

2 голосов
/ 08 апреля 2019

Просто нет никакого смысла.Если вам нужен класс ассоциации, вам нужно определить его.Тем не менее, UML - это не диаграммы, а моделирование.Вы можете опустить свой класс ассоциации в диаграмме, если хотите.Класс ассоциации все еще будет существовать в вашей модели.

1 голос
/ 09 апреля 2019

Нет, это не подразумевается.

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

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

Стандарт UML этого не требует.

Кстати, обозначения (PK) и (FK)) не соответствует стандарту UML.

...