Association – чисто семантична връзка от например тип HAS-A, например доктор има пациенти и т.н… Програмно може например да се реализира като един клас Доктор има едно или повече пропъртита – обекти от клас Пациент.
Dependency – тук имаме директна зависимост между различни елементи, които не могат да съществуват един без друг. Например наследяване на класове, имплементиране на интерфейси… Този тип отношение може да се раздели на две: specification и generalization.
Aggregation – тук имаме отношение на отделни елементи, които в случая са част от дадена цялостна система, но също така могат и да съществуват свободно и извън нея (системата). Добър пример – птица и ято. Ятото се състои от птици, но отделните птици са си птици и без ятото. Или държави, участващи в дадена международна организация като например Европейски Съюз. Всяка може да съществъва сама по себе си.
Има и разновидност на aggregation наречена Acquaintance – Acquaintance is a weaker relationship than aggregation and suggests much looser coupling between objects.
Composition – отношение parent – child, като например Orders – OrderItems. Децата не могат да съществуват и нямат смисъл без родителя. Изчезне ли едното, изчезва(т) и дугото(другите). Добър пример – стаи и сграда. Ако разрушим сградата, няма как да имаме нейните стаи.
Друга важна концепция е т.н. Multiplicity – концепция, която допълва семантичните зависимости между отделните обекти в дадената система, с количествени характеристики. Това означава, че можем допълнително да опишем и количествените ограничения върху дадените семантични отношения.
Литература:
https://www.guru99.com/uml-relationships-with-example.html
http://10minbasics.com/uml-essentials-in-10-minutes/