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


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

Обозначаются стрелками.

Отношения на уровне классов.

Generalization. Наследование.


Самое обычное наследование: class A extends B {    }

Implementation. Имплементация.


Реализация интерфейса: class A implements I {   }

Отношения на уровне объектов

Association. Ассоциация.


Семейство отношения между объектами классов.  “Студент” – “Преподаватель”, “Покупатель” – “Продавец” и т.д.  Может обозначаться вообще без стрелки.
Агрегация и Композиция  –  подтипы ассоциации.

Aggregation. Агрегация.


Подтип ассоциации. Например один класс содержит (агрегируют) объекты другого класса.

Composition. Композиция.


Похоже на агрегацию только более сильная связь. Поэтому закрашенный ромб. Например: если уничтожается композитор, то его объекты классов на которые он ссылается также перестают существовать.

Просто отношение

Dependency. Зависимость.

диаграмма классов зависимость

Классы “каким либо образом” зависят друг от друга. Например, если у одного класса меняются методы, конструкторы или поля, и поэтому приходится переписывать другой класс, то значит они зависимы.  Одна из самых слабеньких связей.  Например объекты одного класса передаются как параметр в методы другого класса и т.д.

Полезные ссылки

  1. Cтатья на  wikipedia. Рекомендую прочитать также эту же статью на английской википедии.
  2. Официальный сайт UML. Спецификация и т.д.
  3. uml2.ru – в целом по UML
Любое использование либо копирование материалов или подборки материалов сайта, элементов дизайна и оформления допускается лишь с разрешения правообладателя и только со ссылкой на источник: programador.ru

Телеграм канал: @prgrmdr
Почта для связи: vit [at] programmisty.com