logo

UML Association vs. Aggregation vs. Composition

I UML-diagram används relationer för att länka flera saker. Det är ett samband mellan strukturella, beteendemässiga eller grupperande saker. Följande är standard UML-relationerna nedan:

  • Förening
  • Beroende
  • Generalisering
  • Insikt

Förening

Associationsrelation är en strukturell relation där olika objekt är sammanlänkade inom systemet. Den uppvisar ett binärt förhållande mellan objekten som representerar en aktivitet. Den skildrar förhållandet mellan objekt, till exempel en lärare, kan associeras med flera lärare.

Den representeras av en linje mellan klasserna följt av en pil som navigerar i riktningen, och när pilen är på båda sidor kallas den då för en dubbelriktad association. Vi kan specificera mångfalden av en association genom att lägga till utsmyckningarna på raden som kommer att beteckna associationen.

Exempel:

1) En enskild lärare har flera elever.

UML Association vs. Aggregation vs. Composition

2) En enskild elev kan umgås med många lärare.

UML Association vs. Aggregation vs. Composition

Sammansättningen och aggregeringen är två undergrupper av associationer. I båda fallen ägs föremålet för en klass av föremålet för en annan klass; den enda skillnaden är att i sammansättningen existerar barnet inte oberoende av sin förälder, medan barnet i sammansättning inte är beroende av sin förälder, dvs. fristående. En aggregering är en speciell form av association, och sammansättning är den speciella formen av aggregering.

UML Association vs. Aggregation vs. Composition

Aggregation

Aggregation är en delmängd av association, är en samling av olika saker. Det representerar har en relation. Det är mer specifikt än en förening. Den beskriver en del av hela eller en del av ett förhållande. Det är en binär association, dvs den involverar bara två klasser. Det är en sorts relation där barnet är oberoende av sin förälder.

Till exempel:

Här överväger vi ett exempel på en bil och ett hjul. En bil kan inte röra sig utan ett hjul. Men hjulet kan användas självständigt med cykeln, skotern, cykeln eller vilket annat fordon som helst. Hjulobjektet kan existera utan bilobjektet, vilket visar sig vara ett aggregeringsförhållande.

UML Association vs. Aggregation vs. Composition

Sammansättning

Kompositionen är en del av aggregering, och den skildrar helhetsförhållandet. Den skildrar beroendet mellan en sammansatt (förälder) och dess delar (barn), vilket innebär att om sammansättningen kasseras, så kommer dess delar att raderas. Det finns mellan liknande föremål.

Som du kan se från exemplet nedan kopplar sammansättningsassocieringsrelationen samman personklassen med hjärnklassen, hjärtklassen och benklassen. Om personen förstörs kommer även hjärnan, hjärtat och benen att kasseras.

UML Association vs. Aggregation vs. Composition

Association vs. aggregation vs. sammansättning

Förening Aggregation Sammansättning
Associationsrelation representeras med en pil. Aggregationsförhållandet representeras av en rak linje med en tom romb i ena änden. Sammansättningsförhållandet representeras av en rak linje med en svart diamant i ena änden.
I UML kan det finnas mellan två eller flera klasser. Det är en del av föreningsrelationen. Det är en del av aggregeringsförhållandet.
Den innehåller en-till-en, en-till-många, många-till-en och många-till-många association mellan klasserna. Det uppvisar ett slags svagt förhållande. Det uppvisar en stark typ av relation.
Den kan associera ytterligare ett objekt. I en aggregeringsrelation existerar de associerade objekten oberoende av varandra inom systemets räckvidd. I ett sammansättningsförhållande kan de associerade objekten inte existera oberoende inom systemets räckvidd.
I denna länkas objekt samman. I detta är de länkade objekten oberoende av varandra. Här är de länkade objekten beroende av varandra.
Det kan eller kanske inte påverkar det andra associerade elementet om ett element tas bort. Att ta bort ett element i aggregeringsrelationen påverkar inte andra associerade element. Det påverkar det andra elementet om ett av dess associerade element tas bort.
Exempel: En handledare kan umgås med flera elever, eller en elev kan umgås med flera lärare. Exempel: En bil behöver ett hjul för att den ska fungera, men den behöver kanske inte samma hjul. Det kan fungera med ett annat hjul också. Exempel: Om en fil placeras i en mapp och det är mappen raderas. Filen som finns i den mappen kommer också att raderas när mappen raderas.