In UML-diagrammen worden relaties gebruikt om verschillende zaken met elkaar te verbinden. Het is een verband tussen structurele, gedragsmatige of groeperende dingen. Hieronder volgen de standaard UML-relaties:
- Vereniging
- Afhankelijkheid
- Generalisatie
- Realisatie
Vereniging
Associatierelatie is een structurele relatie waarin verschillende objecten binnen het systeem met elkaar verbonden zijn. Het vertoont een binaire relatie tussen de objecten die een activiteit vertegenwoordigen. Het geeft de relatie weer tussen objecten, zoals een leraar, die kan worden geassocieerd met meerdere leraren.
Het wordt weergegeven door een lijn tussen de klassen, gevolgd door een pijl die in de richting navigeert, en wanneer de pijl zich aan beide kanten bevindt, wordt dit een bidirectionele associatie genoemd. We kunnen de veelheid van een associatie specificeren door de versieringen toe te voegen aan de lijn die de associatie aanduidt.
Voorbeeld:
1) Eén leraar heeft meerdere leerlingen.
2) Eén leerling kan met veel leraren omgaan.
De samenstelling en aggregatie zijn twee subsets van associaties. In beide gevallen is het object van de ene klasse eigendom van het object van een andere klasse; het enige verschil is dat het kind qua samenstelling niet onafhankelijk van zijn ouder bestaat, terwijl het kind in totaal niet afhankelijk is van zijn ouder, dat wil zeggen op zichzelf staand. Een aggregatie is een bijzondere vorm van associatie, en compositie is de bijzondere vorm van aggregatie.
Aggregatie
Aggregatie is een subset van associatie, het is een verzameling van verschillende dingen. Het vertegenwoordigt een relatie. Het is specifieker dan een associatie. Het beschrijft een deel-geheel- of een deel-van-relatie. Het is een binaire associatie, dat wil zeggen dat er slechts twee klassen bij betrokken zijn. Het is een soort relatie waarin het kind onafhankelijk is van zijn ouder.
Bijvoorbeeld:
Hier beschouwen we een auto- en een wielvoorbeeld. Een auto kan niet bewegen zonder wiel. Maar het wiel kan onafhankelijk worden gebruikt met de fiets, scooter, fiets of elk ander voertuig. Het wielobject kan bestaan zonder het autoobject, wat een aggregatierelatie blijkt te zijn.
Samenstelling
De compositie maakt deel uit van de aggregatie en geeft de relatie tussen de hele delen weer. Het geeft de afhankelijkheid weer tussen een composiet (ouder) en zijn onderdelen (kinderen), wat betekent dat als de composiet wordt weggegooid, ook de onderdelen ervan worden verwijderd. Het bestaat tussen vergelijkbare objecten.
Zoals u kunt zien in het onderstaande voorbeeld, verbindt de samenstellingsassociatierelatie de klasse Person met de klasse Brain, de klasse Heart en de klasse Legs. Als de persoon wordt vernietigd, worden ook de hersenen, het hart en de benen weggegooid.
Associatie versus aggregatie versus samenstelling
Vereniging | Aggregatie | Samenstelling |
---|---|---|
De associatierelatie wordt weergegeven met een pijl. | De aggregatierelatie wordt weergegeven door een rechte lijn met aan één uiteinde een lege ruit. | De compositierelatie wordt weergegeven door een rechte lijn met aan één uiteinde een zwarte diamant. |
In UML kan het tussen twee of meer klassen bestaan. | Het maakt deel uit van de associatierelatie. | Het maakt deel uit van de aggregatierelatie. |
Het omvat één-op-één, één-op-veel, veel-op-één en veel-op-veel-associatie tussen de klassen. | Het vertoont een soort zwakke relatie. | Het vertoont een sterk soort relatie. |
Het kan nog een object aan elkaar koppelen. | In een aggregatierelatie bestaan de bijbehorende objecten onafhankelijk binnen de reikwijdte van het systeem. | In een compositierelatie kunnen de bijbehorende objecten niet onafhankelijk bestaan binnen de reikwijdte van het systeem. |
Hierbij worden objecten aan elkaar gekoppeld. | Hierbij zijn de gekoppelde objecten onafhankelijk van elkaar. | Hier zijn de gekoppelde objecten van elkaar afhankelijk. |
Het kan al dan niet van invloed zijn op het andere gekoppelde element als één element wordt verwijderd. | Het verwijderen van één element in de aggregatierelatie heeft geen invloed op andere gekoppelde elementen. | Het beïnvloedt het andere element als een van de bijbehorende elementen wordt verwijderd. |
Voorbeeld: Een docent kan met meerdere leerlingen samenwerken, of één leerling kan met meerdere docenten samenwerken. | Voorbeeld: Een auto heeft een wiel nodig om goed te kunnen functioneren, maar het kan zijn dat niet hetzelfde wiel nodig is. Het kan ook met een ander wiel werken. | Voorbeeld: Als een bestand in een map wordt geplaatst en die map wordt verwijderd. Het bestand dat zich in die map bevindt, wordt ook verwijderd op het moment dat de map wordt verwijderd. |