
- •7.1. История uml
- •7.2. Описание uml
- •7.3. Сущности uml
- •7.4. Отношения uml
- •7.5. Диаграммы uml
- •7.6. Расширения языка uml
- •7.7. Диаграммы классов
- •7.8. Диаграммы использования (use-case) (диаграммы прецедентов)
- •7.9. Диаграмма последовательности
- •7.10. Диаграмма кооперации
- •7.11. Диаграмма состояний
- •7.12. Диаграмма деятельности
- •7.13. Диаграмма компонентов
- •7.14. Диаграмма развертывания (диаграммы размещения)
7.4. Отношения uml
Отношения являются основными связующими конструкциями в UML и применяются для построения корректных моделей (слайд 4). В языке UML определены четыре типа отношений:
Зависимость (dependency) - это семантическое отношение между двумя сущностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой. Графически для изображения зависимости используют пунктирную линию, обычно со стрелкой, которая может содержать метку.
Ассоциация (association) - структурное отношение, описывающее совокупность связей, где под связью понимается некоторая смысловая связь между объектами. Графически ассоциация изображается в виде линии (иногда завершающейся стрелкой или содержащей метку), рядом с которой могут присутствовать дополнительные обозначения, например кратность и имена ролей.
Агрегация (aggregation) — специальная форма ассоциации, которая служит для представления отношения типа «часть-целое» между агрегатом (целое) и его составной частью.
Отношение агрегации имеет место между несколькими классами в том случае, если один из классов представляет собой сущность, которая включает в себя в качестве составных частей другие сущности. Отличие от обобщения заключается в том, что части системы никак не обязаны наследовать ее свойства и поведение, поскольку являются самостоятельными сущностями. Более того, части целого обладают собственными атрибутами и операциями, которые существенно отличаются от атрибутов и операций целого.
Композиция (composition) - разновидность отношения агрегации, при которой составные части целого имеют такое же время жизни, что и само целое. Эти части уничтожаются вместе с уничтожением целого.
Отношение композиции - частный случай отношения агрегации. Это отношение служит для спецификации более сильной формы отношения «часть-целое», при которой составляющие части тесно взаимосвязаны с целым. Особенность этой взаимосвязи заключается в том, что части не могут выступать в отрыве от целого, т.е. с уничтожением целого уничтожаются и все его составные части.
Обобщение (generalization) - это отношение "специализация/обобщение", при котором объект специализированного элемента (проще говоря, потомок) может быть подставлен вместо объекта обобщенного элемента (родителя, предка). Как и положено в объектно-ориентированном программировании, потомок (child) наследует структуру и поведение своего предка (parent). Графически отношение обобщения изображается в виде линии с незакрашенной стрелкой, указывающей на предка.
Реализация (realization) - это семантическое отношение между классификаторами, при котором один классификатор определяет обязательство, а другой гарантирует его выполнение. Отношение реализации встречаются в двух случаях: во-первых, между интерфейсами и реализующими их классами или компонентами, а во-вторых, между прецедентами и реализующими их кооперациями. Отношение реализации изображается в виде пунктирной линии с незакрашенной стрелкой, как нечто среднее между отношениями обобщения и зависимости.