Composition
Définition : Association de composition
On appelle composition une association particulière qui possède les propriétés suivantes :
La composition associe une classe composite et des classes parties, tel que tout objet partie appartient à un et un seul objet composite. C'est donc une association 1:N (voire 1:1).
La composition n'est pas partageable, donc un objet partie ne peut appartenir qu'à un seul objet composite à la fois.
Le cycle de vie des objets parties est lié à celui de l'objet composite, donc un objet partie disparaît quand l'objet composite auquel il est associé disparaît.
Remarque :
La composition est une association particulière (binaire de cardinalité contrainte).
La composition n'est pas symétrique, une classe joue le rôle de conteneur pour les classes liées, elle prend donc un rôle particulier a priori.
La composition est une agrégation avec des contraintes supplémentaires (non partageabilité et cycle de vie lié).
Syntaxe : Notation d'une composition en UML
Attention : Composition et cardinalité
La cardinalité côté composite est toujours de exactement 1.
Côté partie la cardinalité est libre, elle peut être 0..1, 1, * ou bien 1..*.
Exemple : Exemple de composition
On voit bien ici qu'un chapitre n'a de sens que faisant partie d'un livre, qu'il ne peut exister dans deux livres différents et que si le livre n'existe plus, les chapitres le composant non plus.
Remarque : Composition et entités faibles
Conseil : Composition et attribut multivalué
Une composition avec une classe partie dotée d'un seul attribut peut s'écrire avec un attribut multivalué.
Un attribut composé et multivalué peut s'écrire avec une composition.