Saturday, December 8, 2007

Compositie vs Aggretatie vs Associatie

Laatst tijdens een review van een technischontwerp kwamen we op het onderwerp: uml-associaties.

Het valt mij al een tijdje op dat de drie verschillende soorten associaties willekeurig worden gebruikt. Niet geheel terecht want het juist gebruik van een associatie kan op een overzichtelijke manier zeer nuttige informatie aan het diagram toevoegen over de aard van de relaties.

Maar wat was het verschil tussen Composition vs Aggregation vs Association ook alweer en hoe leg je het op een eenvoudige manier uit?

Om te beginnen een voorbeeld:
  • Associatie: zoals leraar zich tot student verhoudt
  • Compositie: zoals een automotor zich tot de auto verhoudt
  • Aggregatie: zoals een auto zich tot een autoradio met slede verhoudt

De uitleg:

Associatie: twee gelijkwaardige entiteiten die een relatie met elkaar hebben. Iedere entiteit heeft zijn eigen levenscyclus. Zoals auto en de persoon die de auto bestuurt.

Aggregatie: twee ongelijkwaardige entiteiten die een relatie met elkaar hebben. De ene entiteit is eigenaar van de andere. Als we de eigenaar vernietigen dan wordt de afhankelijke niet vernietigd maar de afhankelijke kan maar bij een eigenaar horen. Bijvoorbeeld afdeling en een persoon die afdelingshoofd is. Iedere entiteit heeft zijn eigen levenscyclus.

Compositie: twee ongelijkwaardige entiteiten die een relatie met elkaar hebben. De ene entiteit is de eigenaar van de andere. Als we de eigenaar vernietigen dan wordt de afhankelijke ook vernietigd. Alleen de eigenaar heeft een eigen levenscyclus. Bijvoorbeeld huis en kamers: een kamer hoort altijd bij 1 huis en als we het huis vernietigen, vernietigen we de kamer ook. Een kamer kan niet uit een huis worden gehaald.

No comments: