Подразумевает ли композиция в UML класс ассоциации?

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

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

Подразумевает ли композиция в UML класс ассоциации?

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

Подразумевает ли композиция в UML класс ассоциации?

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

В качестве примечания: вы не можете создать черновик главы без содержания с этой моделью.

qwerty_so 08.04.2019 14:04

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

Jim L. 08.04.2019 14:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
422
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

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

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

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

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

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

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

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

Другие вопросы по теме