Типове UML релации: асоцииране, зависимост, обобщение
⚡ Умно обобщение
UML връзките свързват структурните, поведенческите и груповите елементи.ping елементи на модел, показващи как обектите зависят един от друг по време на изпълнение. Този ресурс обяснява асоциацията, зависимостта, обобщението, реализацията, композицията и агрегацията, с нотация и примери от реалния свят за всеки тип.

Какво е UML връзка?
Релации в UML се използват за представяне на връзка между структурни, поведенчески или груповиping неща. Нарича се още връзка, която описва как две или повече неща могат да се свържат помежду си по време на изпълнението на система. Видовете UML връзки са асоциация, зависимост, обобщение и реализация.
Нека ги проучим подробно
Типове UML релации на диаграма на клас
Асоциация
Това е набор от връзки, които свързват елементи от UML модела. Той също така определя колко обекта участват в тази връзка.
Зависимост
В отношенията на зависимост, както подсказва името, два или повече елемента са зависими един от друг. При този вид връзка, ако направим промяна в конкретен елемент, тогава е вероятно всички останали елементи също да бъдат засегнати от промяната.
Обобщение
Нарича се още връзка родител-дете. При обобщението един елемент е специализация на друг общ компонент. Може да бъде заменен с него. Използва се най-вече за представяне на наследство.
реализиране
В реализация на UML единият обект означава някаква отговорност, която не се изпълнява от самия него и другия обект, който ги прилага. Тази връзка се среща най-вече в случая на интерфейси.
Асоциация
Това е структурна връзка, която представлява обекти, които могат да бъдат свързани или свързани с друг обект в системата. Следните ограничения могат да бъдат приложени към връзката на асоцииране.
- {имплицитно} – Неявните ограничения уточняват, че връзката не е явна; тя се основава на концепция.
- {поръчан} – Подредените ограничения уточняват, че наборът от обекти в единия край на асоциацията са по специфичен начин.
- {сменяем} – Променливото ограничение указва, че връзката между различни обекти в системата може да се добавя, премахва и модифицира според изискването.
- {addOnly} – Указва, че новите връзки могат да се добавят от обект, който се намира в другия край на асоциацията.
- {замразено} – Указва, че когато се добави връзка между два обекта, тя не може да бъде модифицирана, докато замразеното ограничение е активно за дадената връзка или връзка.
Можем също да създадем клас, който има свойства на асоцииране; нарича се асоциативен клас.
Рефлексивна асоциация
Рефлексивната асоциация е подтип на асоциативна връзка в UML. В рефлексивна асоциация екземплярите от един и същи клас могат да бъдат свързани един с друг. Един екземпляр на клас също се нарича обект.
Рефлексивната асоциация гласи, че връзка или връзка може да присъства в обектите от същия клас.
Нека разгледаме пример за плод от клас. Класът плодове има два екземпляра, като манго и ябълка. Рефлексивната асоциация гласи, че може да има връзка между манго и ябълка, тъй като те са екземпляри от един и същи клас, като например плод.
Насочена асоциация
Както подсказва името, насочената асоциация е свързана с посоката на потока в класовете на асоциация.
При насочена асоциация потокът е насочен. Асоциацията от един клас към друг клас протича само в една посока.
Обозначава се с помощта на плътна линия със стрелка.
Пример:
Можете да кажете, че има насочена асоциативна връзка между сървър и клиент. Сървърът може да обработва заявките на клиента. Този поток е еднопосочен, който тече само от сървър към клиент. Следователно връзката на насочена асоциация може да присъства в сървърите и клиентите на системата.
Зависимост
Използвайки връзка на зависимост в UML, човек може да свърже как различните неща в дадена система зависят едно от друго. Зависимостта се използва за описание на връзката между различни елементи в UML, които са зависими един от друг.
стереотипи
- «обвързване» – Свързването е ограничение, което указва, че източникът може да инициализира шаблона в целево местоположение, като използва предоставени параметри или стойности.
- «извличам» – Представлява, че местоположението на изходен обект може да бъде изчислено от целевия обект.
- «приятел» – Указва, че източникът има уникална видимост в целевия обект.
- «instanceOf» – Указва, че екземплярът на целевия класификатор е изходният обект.
- «инстанцира» – Указва, че обектът източник е в състояние да създава екземпляри на целеви обект.
- «усъвършенствам» – Указва, че изходният обект има изключителни абсорбционни характеристикиtracция от тази на целевия обект.
- «използване» – Използва се, когато пакетите се създават в UML. Стереотипът за използване описва, че елементите на изходния пакет могат да присъстват и в целевия пакет. Той описва, че изходният пакет използва някои елементи от целевия пакет.
- «заместник» – уточнява, че клиентът може да бъде заменен от доставчика по време на изпълнение.
- «достъп» – Указва, че изходният пакет има достъп до елементите на целевия пакет което също се нарича частно сливане.
- "Импортиране" – Указва, че целта може да импортира елемента от изходния пакет, както са дефинирани вътре в цел, която също се нарича публично сливане.
- «разрешително» – указва, че елементът източник има достъп до елемента доставчик независимо от декларираната видимост на доставчика.
- "разшири" – Помага ви да укажете, че целта може да разшири поведението на изходния елемент.
- «включва» – Позволява ви да посочите изходния елемент, който може да включва поведението на друг елемент на определено място. (същото като извикване на функция в c/c++)
- «стана» – Указва, че целта е подобна на източника с различни стойности и роли.
- «обаждане» – Указва, че източникът може да извика метод на целеви обект.
- "копие" – Указва, че целевият обект е независим, копие на обект източник.
- „параметър“ – доставчикът е параметър на клиентските операции.
- «изпрати» – клиентът е операция, която изпраща на доставчика някаква неопределена цел.
Стереотипи сред държавната машина
- «изпрати» – Указва, че операцията източник изпраща целевото събитие.
Обобщение
Това е връзка между общ обект и уникален обект, който присъства в системата.
В връзката на обобщение, обектно-ориентираната концепция, наречена наследство може да се приложи. Съществува връзка на обобщение между два обекта, наричани още обекти или неща. В обобщаваща връзка един обект е родител, а друг се казва, че е дете. Тези обекти могат да бъдат представени с помощта на наследяване.
При наследяване дете на всеки родител може да осъществява достъп, да актуализира или наследява функционалността, както е посочено в родителския обект. Дъщерен обект може да добави своята функционалност към себе си, както и да наследи структурата и поведението на родителски обект.
Този тип връзка е известна като обобщаваща връзка.
Стереотипи и техните ограничения
- «изпълнение» – Този стереотип се използва, за да представи, че дъщерният обект се внедрява от родителския обект чрез наследяване на структурата и поведението на родителски обект, без да се нарушават правилата. Забележка: Този стереотип е широко използван в един наследство.
Връзката за обобщение съдържа ограничения като пълна, непълна, за да се провери дали всички дъщерни обекти са включени във връзката или не.
реализиране
В реализация на UML единият обект означава някаква отговорност, която не се изпълнява от самия него и другия обект, който ги прилага. Тази връзка се среща най-вече в случая на интерфейси.
Реализацията може да бъде представена по два начина:
- С помощта на канонична форма
- Използване на заличена форма

В горната диаграма бизнес правилата на акаунта реализират интерфейса IRuleAgent.
Видове реализация
- Канонична форма: В UML реализационна връзка, каноничната форма се използва за реализиране на интерфейси в системата. Използва се стереотип на интерфейса, за да се създаде интерфейс, а реализационната връзка се използва за реализиране на конкретния интерфейс. В канонична форма реализационната връзка се обозначава с помощта на пунктирана насочена линия с голяма отворена стрелка. В горната диаграма, интерфейсът Iruleagent се реализира с помощта на обект, наречен Account Business Rules.
- Пропусната форма: Реализация в UML класова диаграма може да се покаже и с помощта на елидирана форма. В елидирана форма интерфейсът се обозначава с помощта на кръг, който се нарича още нотация тип „близалка“. Този интерфейс, когато е реализиран с помощта на нещо, налично в системата, създава елидирана структура. В горната диаграма интерфейсът Iruleagent е обозначен с елидирана форма, която се реализира от acctrule.dll.
композиция
Това не е стандартна UML връзка, но все пак се използва в различни приложения.
Композитното агрегиране е подтип на релация на агрегиране с характеристики като:
- това е двупосочна връзка между обектите.
- Това е връзка цяло/част.
- Ако даден композит бъде изтрит, всички други части, свързани с него, се изтриват.
Композитното агрегиране се описва като двоична асоциация, украсена със запълнен черен диамант в края на агрегата (цялото).
Папката е структура, която съдържа n на брой файлове в нея. Папката се използва за съхраняване на файловете в нея. Всяка папка може да бъде свързана с произволен брой файлове. В една компютърна система всеки един файл е част от поне една папка в системата за организиране на файлове. Същият файл може да бъде и част от друга папка, но не е задължително. Всеки път, когато файл бъде премахнат от папката, папката остава незасегната, докато данните, свързани с този конкретен файл, се унищожават. Ако в папката се изпълни операция за изтриване, тя засяга и всички файлове, които се намират в папката. Всички файлове, свързани с папката, се унищожават автоматично, след като папката бъде премахната от системата.
Този тип релация в UML е известна като релация на съставно агрегиране.
Агрегация
An съвкупност е подтип на асоциативна връзка в UML. Агрегирането и композицията са двата вида асоциативна връзка в UML. Агрегационната връзка може да се опише с прости думи като „обект от един клас може да притежава или да има достъп до обекти от друг клас“.
В агрегираща връзка зависимият обект остава в обхвата на връзка дори когато обектът източник е унищожен.
Нека разгледаме пример за кола и колело. Колата се нуждае от колело, за да функционира правилно, но колелото не винаги се нуждае от кола. Може да се използва и с велосипеда, велосипеда или всякакви други превозни средства, но не и конкретна кола. Тук обектът колело има значение дори без обекта кола. Такъв тип връзка се нарича връзка на агрегиране.

