Association de composition

DéfinitionAssociation 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é).

SyntaxeNotation d'une composition en UML

Notation de la composition en UML

@startuml

hide circle

class Composite *-- "1..*" Composant

@enduml

ExempleExemple de composition

Livre et chapitres

@startuml

hide circle

class Livre {

}

class Chapitre {

}

Livre *-- "1..*" Chapitre

@enduml

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.

AttentionComposition 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..*.

AttentionComposition et agrégation

L'agrégation (noté avec un losange blanc) est différent de la composition, puisqu'elle ne pose aucune dépendance au cycle de vie (c'est une association classique)

ComplémentComposition et entités faibles

La composition permet d'exprimer une association analogue à celle qui relie une entité faible à une entité identifiante en modélisation E-A[1]. L'entité de type faible correspond à un objet partie et l'entité identifiante à un objet composite.

ComplémentVoir aussi