UML Association vs. Aggregation vs. Komposition [EXEMPEL]
Relationer i UML-diagram används för att representera ett samband mellan olika saker. En relation är en koppling mellan saker som strukturella, beteendemässiga eller gruppering av saker i det enhetliga modelleringsspråket.
Följande är de olika typerna av standardrelationer i UML,
- Förening
- Dependency
- Generalisering
- Insikt
Förutom dessa tillåter UML användningen av aggregering och ett sammansättningsförhållande.
UML-föreningen
Det är en strukturell relation som representerar objekt som kan kopplas till eller associeras med ett annat objekt inuti systemet. Följande begränsningar kan tillämpas på UML Association-relationen.
- {implicit} – Implicita begränsningar anger att förhållandet inte är uppenbart; den bygger på ett koncept.
- {beordrade} – Ordnade begränsningar anger att uppsättningen objekt i ena änden av en association är på ett specifikt sätt.
- {föränderlig} – Changeable constraint specificerar att kopplingen mellan olika objekt i systemet kan läggas till, tas bort och modifieras enligt kravet.
- {addOnly} – Den specificerar att de nya anslutningarna kan läggas till från ett objekt som är beläget i andra änden av en association.
- {frysta} – Den anger att när en länk infogas mellan två objekt kan den inte ändras medan den frysta begränsningen är aktiv på den givna länken eller en anslutning.
Vi kan också skapa en klass som har UML Association-egenskaper; det kallas som en föreningsklass.
Reflexiv förening
Den reflexiva associationen är en undertyp av associationsrelation i UML. I en reflexiv association kan instanserna av samma klass relateras till varandra. En instans av en klass sägs också vara ett objekt.
Reflexiv association anger att en länk eller en koppling kan finnas inom objekten i samma klass.
Exempelvis:
Låt oss betrakta ett exempel på en klassfrukt.
Fruktklassen har två instanser, som mango och äpple. Reflexiv association säger att en koppling mellan mango och äpple kan finnas eftersom de är instanser av samma klass, såsom frukt.
Riktad förening
Som namnet antyder är den riktade associationen relaterad till flödesriktningen inom föreningsklasser.
I en riktad association är flödet riktat. Associationen från en klass till en annan klass flyter endast i en enda riktning.
Det betecknas med en heldragen linje med en pilspets.
UML Association Exempel:
Man kan säga att det finns en riktad associationsrelation mellan en server och en klient.
En server kan behandla förfrågningar från en klient. Detta flöde är enkelriktat, som endast flyter från server till klient. Därför kan en riktad associationsrelation finnas inom servrar och klienter i ett system.
UML sammansättning
Det är ingen standard UML-förhållande, men det används fortfarande i olika applikationer.
Sammansatt aggregation är en undertyp av aggregationsrelation med egenskaper som:
- Det är en tvåvägsassociation mellan objekten.
- Det är en hel/del relation.
- Om en komposit raderas raderas alla andra delar som är associerade med den.
Sammansatt aggregering beskrivs som en binär association dekorerad med en fylld svart diamant i aggregatets (hela) ände.
Mappen kan innehålla många filer, medan varje fil har exakt en mappförälder. Om en mapp raderas tas alla ingående filer bort också.
I en sammansatt aggregering kan ett objekt vara en del av endast en sammansättning åt gången.
Exempel på UML-sammansättning:
Till exempel, i ett fönstersystem hör en ram till exakt ett fönster. I en sammansatt aggregering är hela systemet ansvarigt för dispositionen av sina delar, vilket innebär att kompositen måste hantera skapandet och förstörelsen av sina delar.
UML Aggregation
En aggregering är en undertyp av en associationsrelation i UML. Aggregation och sammansättning är båda typerna av associationsrelationer i UML. En aggregeringsrelation kan med enkla ord beskrivas som "ett objekt i en klass kan äga eller komma åt objekt i en annan klass."
I en aggregeringsrelation förblir det beroende objektet inom ramen för en relation även när källobjektet förstörs.
UML Aggregation Exempel:
Låt oss överväga ett exempel på en bil och ett hjul.
En bil behöver ett hjul för att fungera korrekt, men ett hjul behöver inte alltid en bil. Den kan också användas med cykeln, cykeln eller andra fordon men inte en speciell bil. Här är hjulobjektet meningsfullt även utan bilobjektet. En sådan typ av relation kallas UML Aggregation relation.
Föreningen vs. Aggregation vs. Sammansättning
Förening | aggregation | Sammansättning |
---|---|---|
Associationsförhållande markeras med en pil. | Aggregationsförhållandet anges med en rak linje med en tom pilspets i ena änden. | Sammansättningsförhållandet anges med en rak linje med en fylld pilspets vid någon av ändarna. |
Samband kan finnas mellan två eller flera klasser i UML. | Aggregation är en del av en föreningsrelation. | Sammansättningen är en del av en associationsrelation. |
Det kan finnas en-en, en-många, många-en och många-många förening närvarande mellan föreningsklasserna. | Aggregation betraktas som en svag typ av association. | Sammansättningen anses vara en stark typ av association. |
I en associationsrelation kan ett eller flera objekt associeras med varandra. | I ett aggregeringsförhållande kan objekt som är associerade med varandra förbli inom ramen för ett system utan varandra. | I ett kompositionsförhållande kan objekt som är associerade med varandra inte förbli i omfånget utan varandra. |
Objekt är kopplade till varandra. | Länkade objekt är inte beroende av det andra objektet. | Objekt är mycket beroende av varandra. |
I UML Association kan borttagning av ett element påverka ett annat associerat element eller inte. | I UML Aggregation påverkar inte borttagning av ett element ett annat associerat element. | I UML Composition påverkar borttagning av ett element ett annat associerat element. |
Exempelvis: En lärare är kopplad till flera elever. Or en lärare ger instruktioner till eleverna. |
Exempelvis: En bil behöver ett hjul, men det kräver inte alltid samma hjul. En bil kan fungera bra med ett annat hjul också. |
Exempelvis: En fil placeras i mappen. Om man tar bort mappen raderas också filen som är associerad med den givna mappen. |
Sammanfattning
- En relation är ett samband mellan saker.
- Association, beroende, generalisering och realisering är olika relationer som tillhandahålls av UML.
- Förutom standardrelationer används komposition och aggregering i UML.
- Aggregation och sammansättning är båda typerna av associationsrelationer i UML.
- UML-kompositionen är en tvåvägsrelation som också kallas för en binär relation.
Läs vår artikel om bästa UML-verktyg:- Klicka här