UML-associatie versus. Aggregatie versus. Samenstelling [VOORBEELD]
Relaties in het UML-diagram worden gebruikt om een verband tussen verschillende dingen weer te geven. Een relatie is een verbinding tussen zaken als structurele, gedrags- of groeperingszaken in de uniforme modelleringstaal.
Hieronder staan de verschillende typen standaardrelaties in UML:
- Vereniging
- Afhankelijkheid
- Generalisatie
- Realisatie
Daarnaast staat UML het gebruik van aggregatie en een samenstellingsrelatie toe.
UML-vereniging
Het is een structurele relatie die weergeeft dat objecten kunnen worden verbonden of geassocieerd met een ander object binnen het systeem. De volgende beperkingen kunnen worden toegepast op de UML Association-relatie.
- {impliciet} – Impliciete beperkingen specificeren dat de relatie niet manifest is; het is gebaseerd op een concept.
- {besteld} – Geordende beperkingen specificeren dat de reeks objecten aan het ene uiteinde van een associatie zich op een specifieke manier bevindt.
- {veranderlijk} – Veranderlijke beperking geeft aan dat de verbinding tussen verschillende objecten in het systeem kan worden toegevoegd, verwijderd en gewijzigd volgens de vereisten.
- {addOnly} – Het specificeert dat de nieuwe verbindingen kunnen worden toegevoegd vanuit een object dat zich aan de andere kant van een associatie bevindt.
- {bevroren} – Het specificeert dat wanneer een link tussen twee objecten wordt ingevoegd, deze niet kan worden gewijzigd terwijl de bevroren beperking actief is op de gegeven link of een verbinding.
We kunnen ook een klasse maken die UML Association-eigenschappen heeft; het wordt een associatieklasse genoemd.
Reflexieve associatie
De reflexieve associatie is een subtype van associatierelatie in UML. Bij een reflexieve associatie kunnen de instanties van dezelfde klasse aan elkaar gerelateerd zijn. Een instantie van een klasse wordt ook wel een object genoemd.
Reflexieve associatie stelt dat er een link of een verbinding aanwezig kan zijn binnen de objecten van dezelfde klasse.
Voorbeeld:
Laten we een voorbeeld bekijken van een klassefruit.
De fruitklasse kent twee exemplaren, zoals mango en appel. Reflexieve associatie stelt dat er een verband tussen mango en appel aanwezig kan zijn, aangezien het exemplaren van dezelfde klasse zijn, zoals fruit.
Gerichte Vereniging
Zoals de naam al doet vermoeden, houdt de gerichte associatie verband met de richting van de stroom binnen associatieklassen.
Bij een gerichte associatie is de stroom gericht. De associatie van de ene klasse naar de andere klasse verloopt slechts in één richting.
Het wordt aangegeven met een ononderbroken lijn met een pijlpunt.
UML-associatievoorbeeld:
Je kunt zeggen dat er een gerichte associatierelatie bestaat tussen een server en een client.
Een server kan de verzoeken van een client verwerken. Deze stroom is unidirectioneel en stroomt alleen van server naar client. Er kan dus sprake zijn van een gerichte associatierelatie binnen servers en clients van een systeem.
UML-compositie
Het is geen standaard UML-relatie, maar het wordt nog steeds in verschillende toepassingen gebruikt.
Samengestelde aggregatie is een subtype van aggregatierelatie met kenmerken als:
- Het is een tweerichtingsassociatie tussen de objecten.
- Het is een geheel/deel-relatie.
- Als een composiet wordt verwijderd, worden alle andere daaraan gekoppelde onderdelen verwijderd.
Samengestelde aggregatie wordt beschreven als een binaire associatie versierd met een gevulde zwarte diamant aan het geaggregeerde (gehele) uiteinde.
De map kan veel bestanden bevatten, terwijl elk bestand precies één bovenliggende map heeft. Als een map wordt verwijderd, worden alle daarin opgenomen bestanden ook verwijderd.
Bij een samengestelde aggregatie kan een object slechts deel uitmaken van één samengestelde stof tegelijk.
UML-compositievoorbeeld:
Bijvoorbeeld, in een windowing systeem, behoort een Frame tot precies één Window. In een composite aggregation is het hele systeem verantwoordelijk voor de dispositie van zijn onderdelen, wat betekent dat het composite de creatie en vernietiging van zijn onderdelen moet beheren.
UML-aggregatie
Een aggregatie is een subtype van een associatierelatie in UML. Aggregatie en compositie zijn beide soorten associatierelaties in UML. Een aggregatierelatie kan in eenvoudige woorden worden beschreven als ‘een object van de ene klasse kan de objecten van een andere klasse bezitten of er toegang toe hebben’.
In een aggregatierelatie blijft het afhankelijke object binnen het bereik van een relatie, zelfs wanneer het bronobject wordt vernietigd.
UML-aggregatievoorbeeld:
Laten we een voorbeeld bekijken van een auto en een wiel.
Een auto heeft een wiel nodig om goed te kunnen functioneren, maar een wiel heeft niet altijd een auto nodig. Het kan ook worden gebruikt met de fiets, fiets of andere voertuigen, maar niet met een bepaalde auto. Hier is het wielobject zelfs zonder het autoobject betekenisvol. Een dergelijk type relatie wordt UML-aggregatierelatie genoemd.
Associatie versus. Aggregatie versus. Samenstelling
Vereniging | Aggregatie | Samenstelling: |
---|---|---|
De associatierelatie wordt aangegeven met een pijl. | De aggregatierelatie wordt aangegeven met een rechte lijn met aan één uiteinde een lege pijlpunt. | De compositierelatie wordt aangegeven met een rechte lijn met een gevulde pijlpunt aan een van de uiteinden. |
Er kan een associatie bestaan tussen twee of meer klassen in UML. | Aggregatie is een onderdeel van een associatierelatie. | De compositie is onderdeel van een associatierelatie. |
Er kan één-één, één-veel, veel-één en veel-veel-associatie aanwezig zijn tussen de associatieklassen. | Aggregatie wordt beschouwd als een zwak type associatie. | De compositie wordt beschouwd als een sterk type vereniging. |
In een associatierelatie kunnen één of meerdere objecten met elkaar geassocieerd worden. | In een aggregatierelatie kunnen objecten die aan elkaar zijn gekoppeld, zonder elkaar binnen de reikwijdte van een systeem blijven. | In een compositierelatie kunnen objecten die met elkaar geassocieerd zijn, niet zonder elkaar in de scope blijven. |
Objecten zijn met elkaar verbonden. | Gekoppelde objecten zijn niet afhankelijk van het andere object. | Objecten zijn sterk van elkaar afhankelijk. |
Bij UML-associatie kan het verwijderen van één element wel of niet van invloed zijn op een ander gekoppeld element. | Bij UML-aggregatie heeft het verwijderen van één element geen invloed op een ander gekoppeld element. | In UML-compositie heeft het verwijderen van één element invloed op een ander gekoppeld element. |
Voorbeeld: Een leraar is gekoppeld aan meerdere leerlingen. Or een leraar geeft instructies aan de leerlingen. |
Voorbeeld: Een auto heeft een wiel nodig, maar niet altijd hetzelfde wiel. Ook met een ander wiel kan een auto goed functioneren. |
Voorbeeld: Er wordt een bestand in de map geplaatst. Als iemand de map verwijdert, wordt het bestand dat bij die bepaalde map hoort ook verwijderd. |
Samenvatting
- Een relatie is een verbinding tussen dingen.
- Associatie, afhankelijkheid, generalisatie en realisatie zijn verschillend relaties geleverd door UML.
- Naast standaardrelaties wordt binnen de UML gebruik gemaakt van compositie en aggregatie.
- Aggregatie en compositie zijn beide soorten associatierelaties in UML.
- De UML-compositie is een tweerichtingsrelatie die ook wel een binaire relatie wordt genoemd.
Bekijk ons artikel over de beste UML-tools: - Klik Hier