UML-ассоциация против. Агрегация против. Состав [ПРИМЕР]
Отношения в диаграмме UML используются для представления связи между различными вещами. Отношения — это связи между такими вещами, как структурные, поведенческие или групповые, в едином языке моделирования.
Ниже приведены различные типы стандартных отношений в UML.
- Фонды и ассоциации
- Зависимость
- Обобщение
- Реализация
Помимо этого, UML позволяет использовать агрегацию и отношения композиции.
UML-ассоциация
Это структурная связь, которая представляет, что объекты могут быть связаны или ассоциированы с другим объектом внутри системы. Следующие ограничения могут быть применены к отношениям ассоциации UML.
- {скрытый} – Неявные ограничения указывают, что взаимосвязь не очевидна; оно основано на концепции.
- {заказал} – Упорядоченные ограничения указывают, что набор объектов на одном конце ассоциации расположен определенным образом.
- {Сменный} – Изменяемое ограничение указывает, что связь между различными объектами в системе можно добавлять, удалять и изменять в соответствии с требованиями.
- {addOnly} – Он указывает, что новые соединения могут быть добавлены из объекта, который находится на другом конце ассоциации.
- {заморожено} – Он указывает, что когда ссылка вставляется между двумя объектами, ее нельзя изменить, пока замороженное ограничение активно для данной ссылки или соединения.
Мы также можем создать класс со свойствами ассоциации UML; он называется классом ассоциации.
Рефлексивная ассоциация
Рефлексивная ассоциация – это разновидность ассоциативных отношений в UML-. В рефлексивной ассоциации экземпляры одного и того же класса могут быть связаны друг с другом. Экземпляр класса также называется объектом.
Рефлексивная ассоциация утверждает, что ссылка или соединение могут присутствовать внутри объектов одного и того же класса.
Пример:
Рассмотрим пример класса фруктов.
Класс фруктов имеет два экземпляра, например манго и яблоко. Рефлексивная ассоциация утверждает, что связь между манго и яблоком может присутствовать, поскольку они являются экземплярами одного и того же класса, например фруктов.
Направленная ассоциация
Как следует из названия, направленная ассоциация связана с направлением потока внутри классов ассоциации.
В направленной ассоциации поток направлен. Ассоциация одного класса с другим протекает только в одном направлении.
Обозначается сплошной линией со стрелкой.
Пример ассоциации UML:
Можно сказать, что между сервером и клиентом существует направленная ассоциация.
Сервер может обрабатывать запросы клиента. Этот поток является однонаправленным и передается только от сервера к клиенту. Следовательно, отношения направленной ассоциации могут присутствовать на серверах и клиентах системы.
UML-композиция
Это не стандарт UML-отношения, но он до сих пор используется в различных приложениях.
Составная агрегация — это подтип отношения агрегации со следующими характеристиками:
- Это двусторонняя связь между объектами.
- Это отношения целое/часть.
- При удалении композиции все остальные части, связанные с ней, удаляются.
Сложная агрегация описывается как бинарная ассоциация, украшенная черным ромбом на агрегатном (целом) конце.
Папка может содержать множество файлов, при этом каждый файл имеет ровно одну родительскую папку. Если папка удаляется, все содержащиеся в ней файлы также удаляются.
В составной агрегации объект может одновременно быть частью только одной составной части.
Пример композиции UML:
Например, в оконной системе фрейм принадлежит только одному окну. В составной агрегации вся система отвечает за расположение своих частей, а это означает, что составная часть должна управлять созданием и уничтожением своих частей.
UML-агрегация
Агрегация — это подтип отношения ассоциации в UML. Агрегация и состав оба являются типами ассоциативных отношений в UML. Отношения агрегации можно описать простыми словами: «объект одного класса может владеть объектами другого класса или иметь доступ к ним».
В отношении агрегации зависимый объект остается в области отношения даже при уничтожении исходного объекта.
Пример агрегации UML:
Рассмотрим пример автомобиля и колеса.
Для правильной работы автомобилю необходимо колесо, но колесу не всегда нужна машина. Его также можно использовать с велосипедом, велосипедом или любым другим транспортным средством, но не с конкретным автомобилем. Здесь объект колеса имеет смысл даже без объекта автомобиля. Такой тип отношений называется отношением агрегации UML.
Ассоциация против. Агрегация против. Состав
Фонды и ассоциации | агрегирование | Состав |
---|---|---|
Отношения ассоциации обозначены стрелкой. | Отношения агрегации обозначаются прямой линией с пустой стрелкой на одном конце. | Отношения композиции обозначаются прямой линией с закрашенной стрелкой на любом из концов. |
Ассоциация может существовать между двумя или более классами UML. | Агрегация является частью отношения ассоциации. | Композиция является частью ассоциативного отношения. |
Между классами ассоциаций могут существовать ассоциации один-один, один-многие, многие-один и многие-многие. | Агрегация рассматривается как слабый тип ассоциации. | Композиция рассматривается как сильный тип ассоциации. |
В отношениях ассоциации один или несколько объектов могут быть связаны друг с другом. | В отношениях агрегации объекты, связанные друг с другом, могут оставаться в пределах системы друг без друга. | В отношениях композиции объекты, связанные друг с другом, не могут оставаться в области действия друг без друга. |
Объекты связаны друг с другом. | Связанные объекты не зависят от другого объекта. | Объекты сильно зависят друг от друга. |
В ассоциации UML удаление одного элемента может повлиять или не повлиять на другой связанный элемент. | В агрегации UML удаление одного элемента не влияет на другой связанный элемент. | В композиции UML удаление одного элемента влияет на другой связанный элемент. |
Пример: Учитель связан с несколькими учениками. Or Учитель дает инструкции ученикам. |
Пример: Машине нужно колесо, но не всегда требуется одно и то же колесо. Автомобиль может адекватно функционировать и с другим колесом. |
Пример: Внутри папки помещается файл. Если удалить папку, то файл, связанный с этой папкой, также будет удален. |
Резюме
- Отношения – это связь между вещами.
- Ассоциация, зависимость, обобщение и реализация различны. отношения, предоставляемые UML.
- Помимо стандартных отношений, внутри UML используются композиция и агрегирование.
- Агрегация и композиция являются типами отношений ассоциации в UML.
- Композиция UML — это двусторонняя связь, которую также называют бинарной связью.
Ознакомьтесь с нашей статьей о лучших инструментах UML:- Кликните сюда