Мини-справочник по обозначениям которые приняты в UML диаграммах классов для отношений между различными классами.
Обозначаются стрелками.
Отношения на уровне классов.
Generalization. Наследование.
Самое обычное наследование: class A extends B { }
Implementation. Имплементация.
Реализация интерфейса: class A implements I { }
Отношения на уровне объектов
Association. Ассоциация.
Семейство отношения между объектами классов. “Студент” – “Преподаватель”, “Покупатель” – “Продавец” и т.д. Может обозначаться вообще без стрелки.
Агрегация и Композиция – подтипы ассоциации.
Aggregation. Агрегация.
Подтип ассоциации. Например один класс содержит (агрегируют) объекты другого класса.
Composition. Композиция.
Похоже на агрегацию только более сильная связь. Поэтому закрашенный ромб. Например: если уничтожается композитор, то его объекты классов на которые он ссылается также перестают существовать.
Просто отношение
Dependency. Зависимость.
Классы “каким либо образом” зависят друг от друга. Например, если у одного класса меняются методы, конструкторы или поля, и поэтому приходится переписывать другой класс, то значит они зависимы. Одна из самых слабеньких связей. Например объекты одного класса передаются как параметр в методы другого класса и т.д.
Полезные ссылки
- Cтатья на wikipedia. Рекомендую прочитать также эту же статью на английской википедии.
- Официальный сайт UML. Спецификация и т.д.
- uml2.ru – в целом по UML