Типы отношений UML: ассоциация, зависимость, обобщение

Что такое UML-отношения?

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

Изучим их подробно

Типы отношений диаграммы классов UML

Отношения диаграммы классов UML

Объединение

Это набор ссылок, соединяющих элементы модели UML. Он также определяет, сколько объектов участвует в этом отношении.

Зависимость

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

Обобщение

Это еще называют отношениями родитель-ребенок. В обобщении один элемент является специализацией другого общего компонента. Его можно заменить. Чаще всего он используется для обозначения наследования.

Реализация

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

Объединение

Это структурная связь, которая представляет, что объекты могут быть связаны или ассоциированы с другим объектом внутри системы. Фоллоwing К отношениям ассоциации могут быть применены ограничения.

  • {скрытый} – Неявные ограничения указывают, что взаимосвязь не очевидна; оно основано на концепции.
  • {заказал} – Упорядоченные ограничения указывают, что набор объектов на одном конце ассоциации расположен определенным образом.
  • {Сменный} – Изменяемое ограничение указывает, что связь между различными объектами в системе можно добавлять, удалять и изменять в соответствии с требованиями.
  • {addOnly} – Он указывает, что новые соединения могут быть добавлены из объекта, который находится на другом конце ассоциации.
  • {заморожено} – Он указывает, что когда ссылка добавляется между двумя объектами, ее нельзя изменить, пока замороженное ограничение активно для данной ссылки или соединения.

Мы также можем создать класс со свойствами ассоциации; он называется классом ассоциации.

Рефлексивная ассоциация

Рефлексивная ассоциация — это подтип ассоциативных отношений в UML. В рефлексивной ассоциации экземпляры одного и того же класса могут быть связаны друг с другом. Экземпляр класса также называется объектом.

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

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

Направленная ассоциация

Как следует из названия, направленная ассоциация связана с направлением потока внутри классов ассоциации.

В направленной ассоциации поток направлен. Ассоциация одного класса с другим протекает только в одном направлении.

Обозначается сплошной линией со стрелкой.

Пример:

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

Зависимость

Используя отношения зависимости в UML, можно определить, как различные вещи внутри конкретной системы зависят друг от друга. Зависимость используется для описания отношений между различными элементами UML, которые зависят друг от друга.

Стереотипы

  • "связывать" – Bind — это ограничение, которое указывает, что источник может инициализировать шаблон в целевом местоположении, используя предоставленные параметры или значения.
  • «выводить» – Это означает, что местоположение исходного объекта можно вычислить по целевому объекту.
  • «друг» – Он указывает, что источник имеет уникальную видимость в целевом объекте.
  • "случай" – Он указывает, что экземпляр целевого классификатора является исходным объектом.
  • «создать экземпляр» – Он указывает, что исходный объект способен создавать экземпляры целевого объекта.
  • «уточнить» – Он указывает, что исходный объект имеет исключительную абстракцию, чем абстракция целевого объекта.
  • "использовать" – Используется при создании пакетов в UML. Стереотип использования описывает, что элементы исходного пакета также могут присутствовать внутри целевого пакета. Он описывает, что исходный пакет использует некоторые элементы целевого пакета.
  • "заменять" – указывает, что клиент может быть заменен поставщиком во время выполнения.
  • "доступ" – Он указывает, что исходный пакет имеет доступ к элементам целевого пакета. которое также называется частным слиянием.
  • "Импортировать" – Он указывает, что цель может импортировать элемент исходного пакета, как он определен внутри цель, которую также называют публичным слиянием.
  • "разрешать" – указывает, что исходный элемент имеет доступ к элементу поставщика независимо от заявленной видимости поставщика.
  • "продлевать" – Помогает указать, что цель может расширить поведение исходного элемента.
  • "включать" – Позволяет указать исходный элемент, в который можно включить поведение другого элемента в указанном месте. (то же самое, что вызов функции в c/С++)
  • "становиться" – Он указывает, что цель аналогична источнику с другими значениями и ролями.
  • "вызов" – Он указывает, что источник может вызывать метод целевого объекта.
  • "Копировать" – Он указывает, что целевой объект является независимой копией исходного объекта.
  • «параметр» – поставщик — параметр клиентских операций.
  • "отправлять" - клиент — это операция, которая отправляет поставщику некую неопределенную цель.

Стереотипы среди государственной машины

  • "отправлять" – Указывает, что исходная операция отправляет целевое событие.

Обобщение

Это связь между общей сущностью и уникальной сущностью, присутствующей внутри системы.

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

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

Этот тип отношений в совокупности известен как отношения обобщения.

Стереотипы и их ограничения

  • "выполнение" – Этот стереотип используется для представления того, что дочерняя сущность реализуется родительской сущностью путем наследования структуры и поведения родительского объекта без нарушения правил.Внимание Этот стереотип, если его широко использовать в одном наследование.

Отношения обобщения содержат такие ограничения, как «полный», «неполный», чтобы проверить, включены ли все дочерние объекты в отношения или нет.

Реализация

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

Реализация может быть представлена ​​двумя способами:

  • Использование каноническая форма
  • Использование год пропущенная форма
Реализация в UML
Реализация в UML

На приведенной выше диаграмме бизнес-правила учетной записи реализуют интерфейс IRuleAgent.

Виды реализации

  1. Каноническая форма. В отношениях реализации UML каноническая форма используется для реализации интерфейсов в системе. Он использует стереотип интерфейса для создания интерфейса, а отношения реализации используются для реализации конкретного интерфейса. В каноническом виде связь реализации обозначается пунктирной направленной линией с крупным открытым наконечником стрелки. На приведенной выше диаграмме интерфейс Iruleagent реализован с использованием объекта, называемого бизнес-правилами учетной записи.
  2. Исключенная форма Реализация в Диаграмма классов UML также может быть показано с использованием пропущенной формы. В пропущенной форме интерфейс обозначается кружком, который также называется обозначением леденца. Этот интерфейс, реализованный с использованием всего, что присутствует внутри системы, создает скрытую структуру. На приведенной выше диаграмме интерфейс Iruleagent обозначен с использованием скрытой формы, которая реализуется с помощью acctrule.dll.

Состав

Это не стандартное отношение UML, но оно все еще используется в различных приложениях.

Составная агрегация — это подтип отношения агрегации со следующими характеристиками:

  • это двусторонняя связь между объектами.
  • Это отношения целое/часть.
  • При удалении композиции все остальные части, связанные с ней, удаляются.

Сложная агрегация описывается как бинарная ассоциация, украшенная черным ромбом на агрегатном (целом) конце.

Композиция в UML

Композиция в UML

Папка — это структура, в которой хранится n файлов. Папка используется для хранения файлов внутри нее. Каждая папка может быть связана с любым количеством файлов. В компьютерной системе каждый файл является частью хотя бы одной папки внутри системы организации файлов. Тот же файл также может быть частью другой папки, но это не обязательно. Всякий раз, когда файл удаляется из папки, папка остается неизменной, тогда как данные, относящиеся к этому конкретному файлу, уничтожаются. Если в папке выполняется операция удаления, она также влияет на все файлы, находящиеся внутри папки. Все файлы, связанные с папкой, автоматически уничтожаются после удаления папки из системы.

Этот тип отношений в UML известен как составное отношение агрегации.

агрегирование

An агрегирование — это подтип отношения ассоциации в UML. Агрегация и композиция являются типами отношений ассоциации в UML. Отношения агрегации можно описать простыми словами: «объект одного класса может владеть объектами другого класса или получать к ним доступ».

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

Рассмотрим пример автомобиля и колеса. Для правильной работы автомобилю необходимо колесо, но колесу не всегда нужна машина. Его также можно использовать с велосипедом, велосипедом или любым другим транспортным средством, но не с конкретным автомобилем. Здесь объект колеса имеет смысл даже без объекта автомобиля. Такой тип отношений называется отношением агрегации.

Выводы

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