Существует четыре типа связей в UML: Зависимость, Ассоциация, Обобщение, Реализация
Зависимость – семантически представляет собой связь между двумя элементами модели, в которой изменение одного элемента (независимого) может привести к изменению семантики другого элемента (зависимого). стрелка, направлена к той сущности, от которой зависит еще одна.
Ассоциация – это структурная связь между элементами модели. Ассоциация показывает, что объекты одной сущности (класса) связаны с объектами другой сущности таким образом, что можно перемещаться от объектов одного класса к другому. Стрелка, указывает на направление ассоциации. Двойные ассоциации представляются линией без стрелок на концах.
Множественность ассоциации указывает возможное количество связанных объектов.
Агрегация – особая разновидность ассоциации, представляющая структурную связь целого с его частями. Одно отношение агрегации не может включать более двух классов (контейнер и содержимое).
Причём, по умолчанию агрегацией называют агрегацию по ссылке - если контейнер будет уничтожен, то его содержимое — нет.
Графически: пустой ромб на блоке класса «целое», и линией, идущей от этого ромба к классу «часть».
Композиция — более строгий вариант агрегации. Известна также как агрегация по значению - если контейнер будет уничтожен, то всё его содержимое будет также уничтожено.
Обобщение – выражает специализацию или наследование, в котором специализированный элемент (потомок) строится по спецификациям обобщенного элемента (родителя). пустая стрелка, указывает на родителя.
Реализация – это семантическая связь между классами, когда один из них (поставщик) определяет соглашение, которого второй (клиент) обязан придерживаться. Это связи между интерфейсами и классами, которые реализуют эти интерфейсы. треугольник указывает на поставщика, а второй конец пунктирной линии – на клиента.