UML асоциация срещу. Агрегиране Vs. Състав [ПРИМЕР]

Релациите в UML диаграмата се използват за представяне на връзка между различни неща. Връзката е връзка между неща като структурни, поведенчески или групиращи неща в унифициран език за моделиране.

Следват различните типове стандартни релации в UML,

  • Асоциация
  • Зависимост
  • Обобщение
  • реализиране

Освен тези, UML позволява използването на агрегиране и връзка на композиция.

UML асоциация

Това е структурна връзка, която представлява обекти, които могат да бъдат свързани или свързани с друг обект в системата. Следните ограничения могат да бъдат приложени към връзката UML асоциация.

  • {имплицитно} – Неявните ограничения уточняват, че връзката не е явна; тя се основава на концепция.
  • {поръчан} – Подредените ограничения уточняват, че наборът от обекти в единия край на асоциацията са по специфичен начин.
  • {сменяем} – Променливото ограничение указва, че връзката между различни обекти в системата може да се добавя, премахва и модифицира според изискването.
  • {addOnly} – Указва, че новите връзки могат да се добавят от обект, който се намира в другия край на асоциацията.
  • {замразено} – Указва, че когато се вмъкне връзка между два обекта, тя не може да бъде модифицирана, докато замразеното ограничение е активно за дадената връзка или връзка.

Можем също така да създадем клас, който има свойства на UML Association; нарича се асоциативен клас.

Рефлексивна асоциация

Рефлексивната асоциация е подтип асоциативна връзка в UML. В рефлексивна асоциация екземплярите от един и същи клас могат да бъдат свързани един с друг. Един екземпляр на клас също се нарича обект.

Рефлексивната асоциация гласи, че връзка или връзка може да присъства в обектите от същия клас.

Пример:

Нека разгледаме пример за плод от клас.

Класът плодове има два екземпляра, като манго и ябълка. Рефлексивната асоциация гласи, че може да има връзка между манго и ябълка, тъй като те са екземпляри от един и същи клас, като например плод.

Рефлексивна асоциация
Рефлексивна асоциация

Насочена асоциация

Както подсказва името, насочената асоциация е свързана с посоката на потока в класовете на асоциация.

При насочена асоциация потокът е насочен. Асоциацията от един клас към друг клас протича само в една посока.

Обозначава се с помощта на плътна линия със стрелка.

Пример за UML асоциация:

Можете да кажете, че има насочена асоциативна връзка между сървър и клиент.

Сървърът може да обработва заявките на клиента. Този поток е еднопосочен, който тече само от сървър към клиент. Следователно връзката на насочена асоциация може да присъства в сървърите и клиентите на системата.

Насочена асоциация

Насочена асоциация

Състав на UML

Не е стандарт UML връзка, но все още се използва в различни приложения.

Композитното агрегиране е подтип на релация на агрегиране с характеристики като:

  • Това е двустранна връзка между обектите.
  • Това е връзка цяло/част.
  • Ако даден композит бъде изтрит, всички други части, свързани с него, се изтриват.

Композитното агрегиране се описва като двоична асоциация, украсена със запълнен черен диамант в края на агрегата (цялото).

Състав на UML

Папката може да съдържа много файлове, докато всеки файл има точно една родителска папка. Ако дадена папка бъде изтрита, всички съдържащи се файлове също се премахват.

В съставно агрегиране даден обект може да бъде част само от един композит в даден момент.

Пример за съставяне на UML:

Например, в система с прозорци рамката принадлежи точно на един прозорец. В съставно агрегиране цялата система е отговорна за разположението на своите части, което означава, че композитът трябва да управлява създаването и унищожаването на своите части.

Състав на UML

композиция

UML агрегиране

Агрегацията е подтип на асоциативна връзка в UML. Агрегиране и състав са и двата вида асоциативна връзка в UML. Връзката на агрегиране може да бъде описана с прости думи като „обект от един клас може да притежава или да има достъп до обектите от друг клас“.

В агрегираща връзка зависимият обект остава в обхвата на връзка дори когато обектът източник е унищожен.

Пример за UML агрегиране:

Нека разгледаме пример за кола и колело.

Колата се нуждае от колело, за да функционира правилно, но колелото не винаги се нуждае от кола. Може да се използва и с велосипеда, велосипеда или всякакви други превозни средства, но не и конкретна кола. Тук обектът колело има значение дори без обекта кола. Такъв тип връзка се нарича UML Aggregation релация.

Връзка на агрегиране на UML

Агрегация

Асоциация Vs. Агрегиране Vs. Състав

Асоциация Агрегация композиция
Асоциативната връзка се обозначава със стрелка. Връзката на агрегиране се обозначава с помощта на права линия с празна стрелка в единия край. Композиционната връзка се обозначава с помощта на права линия със запълнен връх на стрелка в който и да е от краищата.
Асоциацията може да съществува между два или повече класа в UML. Агрегирането е част от асоциативна връзка. Композицията е част от асоциативна връзка.
Може да има асоциация едно-едно, едно-много, много-едно и много-много между асоциативните класове. Агрегацията се счита за слаб тип асоциация. Композицията се счита за силен тип асоциация.
В връзка на асоцииране един или повече обекти могат да бъдат свързани един с друг. В връзка на агрегиране обектите, които са свързани един с друг, могат да останат в обхвата на системата един без друг. В композиционна връзка обектите, които са свързани един с друг, не могат да останат в обхвата един без друг.
Обектите са свързани един с друг. Свързаните обекти не зависят от другия обект. Обектите са силно зависими един от друг.
В UML асоцииране изтриването на един елемент може или не може да засегне друг свързан елемент. В UML Aggregation изтриването на един елемент не засяга друг свързан елемент. В UML Composition изтриването на един елемент засяга друг свързан елемент.
Пример:
Един учител е свързан с множество ученици.
Or
учител дава инструкции на учениците.
Пример:
Колата се нуждае от колело, но не винаги изисква едно и също колело. Една кола може да работи адекватно и с друго колело.
Пример:
В папката се поставя файл. Ако някой изтрие папката, тогава файлът, свързан с тази папка, също се изтрива.

Oбобщение

  • Връзката е връзка между нещата.
  • Асоциацията, зависимостта, обобщението и реализацията са различни връзки, предоставени от UML.
  • Освен стандартните връзки, композицията и агрегацията се използват в UML.
  • Агрегирането и композицията са двата вида асоциативна връзка в UML.
  • UML композицията е двупосочна връзка, която също се нарича двоична връзка.

Вижте нашата статия за най-добрите UML инструменти: - Натисни тук