UML асоциация срещу. Агрегиране Vs. Състав [ПРИМЕР]
Релациите в UML диаграмата се използват за представяне на връзка между различни неща. Връзката е връзка между неща като структурни, поведенчески или групиращи неща в унифициран език за моделиране.
Следват различните типове стандартни релации в UML,
- Асоциация
- Зависимост
- Обобщение
- реализиране
Освен тези, UML позволява използването на агрегиране и връзка на композиция.
UML асоциация
Това е структурна връзка, която представлява обекти, които могат да бъдат свързани или свързани с друг обект в системата. Следните ограничения могат да бъдат приложени към връзката UML асоциация.
- {имплицитно} – Неявните ограничения уточняват, че връзката не е явна; тя се основава на концепция.
- {поръчан} – Подредените ограничения уточняват, че наборът от обекти в единия край на асоциацията са по специфичен начин.
- {сменяем} – Променливото ограничение указва, че връзката между различни обекти в системата може да се добавя, премахва и модифицира според изискването.
- {addOnly} – Указва, че новите връзки могат да се добавят от обект, който се намира в другия край на асоциацията.
- {замразено} – Указва, че когато се вмъкне връзка между два обекта, тя не може да бъде модифицирана, докато замразеното ограничение е активно за дадената връзка или връзка.
Можем също така да създадем клас, който има свойства на UML Association; нарича се асоциативен клас.
Рефлексивна асоциация
Рефлексивната асоциация е подтип асоциативна връзка в UML. В рефлексивна асоциация екземплярите от един и същи клас могат да бъдат свързани един с друг. Един екземпляр на клас също се нарича обект.
Рефлексивната асоциация гласи, че връзка или връзка може да присъства в обектите от същия клас.
Пример:
Нека разгледаме пример за плод от клас.
Класът плодове има два екземпляра, като манго и ябълка. Рефлексивната асоциация гласи, че може да има връзка между манго и ябълка, тъй като те са екземпляри от един и същи клас, като например плод.
Насочена асоциация
Както подсказва името, насочената асоциация е свързана с посоката на потока в класовете на асоциация.
При насочена асоциация потокът е насочен. Асоциацията от един клас към друг клас протича само в една посока.
Обозначава се с помощта на плътна линия със стрелка.
Пример за UML асоциация:
Можете да кажете, че има насочена асоциативна връзка между сървър и клиент.
Сървърът може да обработва заявките на клиента. Този поток е еднопосочен, който тече само от сървър към клиент. Следователно връзката на насочена асоциация може да присъства в сървърите и клиентите на системата.
Състав на UML
Не е стандарт UML връзка, но все още се използва в различни приложения.
Композитното агрегиране е подтип на релация на агрегиране с характеристики като:
- Това е двустранна връзка между обектите.
- Това е връзка цяло/част.
- Ако даден композит бъде изтрит, всички други части, свързани с него, се изтриват.
Композитното агрегиране се описва като двоична асоциация, украсена със запълнен черен диамант в края на агрегата (цялото).
Папката може да съдържа много файлове, докато всеки файл има точно една родителска папка. Ако дадена папка бъде изтрита, всички съдържащи се файлове също се премахват.
В съставно агрегиране даден обект може да бъде част само от един композит в даден момент.
Пример за съставяне на UML:
Например, в система с прозорци рамката принадлежи точно на един прозорец. В съставно агрегиране цялата система е отговорна за разположението на своите части, което означава, че композитът трябва да управлява създаването и унищожаването на своите части.
UML агрегиране
Агрегацията е подтип на асоциативна връзка в UML. Агрегиране и състав са и двата вида асоциативна връзка в UML. Връзката на агрегиране може да бъде описана с прости думи като „обект от един клас може да притежава или да има достъп до обектите от друг клас“.
В агрегираща връзка зависимият обект остава в обхвата на връзка дори когато обектът източник е унищожен.
Пример за UML агрегиране:
Нека разгледаме пример за кола и колело.
Колата се нуждае от колело, за да функционира правилно, но колелото не винаги се нуждае от кола. Може да се използва и с велосипеда, велосипеда или всякакви други превозни средства, но не и конкретна кола. Тук обектът колело има значение дори без обекта кола. Такъв тип връзка се нарича UML Aggregation релация.
Асоциация Vs. Агрегиране Vs. Състав
Асоциация | Агрегация | композиция |
---|---|---|
Асоциативната връзка се обозначава със стрелка. | Връзката на агрегиране се обозначава с помощта на права линия с празна стрелка в единия край. | Композиционната връзка се обозначава с помощта на права линия със запълнен връх на стрелка в който и да е от краищата. |
Асоциацията може да съществува между два или повече класа в UML. | Агрегирането е част от асоциативна връзка. | Композицията е част от асоциативна връзка. |
Може да има асоциация едно-едно, едно-много, много-едно и много-много между асоциативните класове. | Агрегацията се счита за слаб тип асоциация. | Композицията се счита за силен тип асоциация. |
В връзка на асоцииране един или повече обекти могат да бъдат свързани един с друг. | В връзка на агрегиране обектите, които са свързани един с друг, могат да останат в обхвата на системата един без друг. | В композиционна връзка обектите, които са свързани един с друг, не могат да останат в обхвата един без друг. |
Обектите са свързани един с друг. | Свързаните обекти не зависят от другия обект. | Обектите са силно зависими един от друг. |
В UML асоцииране изтриването на един елемент може или не може да засегне друг свързан елемент. | В UML Aggregation изтриването на един елемент не засяга друг свързан елемент. | В UML Composition изтриването на един елемент засяга друг свързан елемент. |
Пример: Един учител е свързан с множество ученици. Or учител дава инструкции на учениците. |
Пример: Колата се нуждае от колело, но не винаги изисква едно и също колело. Една кола може да работи адекватно и с друго колело. |
Пример: В папката се поставя файл. Ако някой изтрие папката, тогава файлът, свързан с тази папка, също се изтрива. |
Oбобщение
- Връзката е връзка между нещата.
- Асоциацията, зависимостта, обобщението и реализацията са различни връзки, предоставени от UML.
- Освен стандартните връзки, композицията и агрегацията се използват в UML.
- Агрегирането и композицията са двата вида асоциативна връзка в UML.
- UML композицията е двупосочна връзка, която също се нарича двоична връзка.
Вижте нашата статия за най-добрите UML инструменти: - Натисни тук