Association UML contre. Agrégation vs. Composition [EXEMPLE]

Les relations dans le diagramme UML sont utilisées pour représenter une connexion entre diverses choses. Une relation est une connexion entre des éléments tels que des éléments structurels, comportementaux ou de regroupement dans le langage de modélisation unifié.

Voici les différents types de relations standard dans UML,

  • Association
  • Dépendance
  • Généralisation
  • Réalisation

En dehors de cela, UML permet l’utilisation de l’agrégation et d’une relation de composition.

Association UML

Il s'agit d'une relation structurelle qui représente que les objets peuvent être connectés ou associés à un autre objet à l'intérieur du système. Les contraintes suivantes peuvent être appliquées à la relation d'association UML.

  • {implicite} – Les contraintes implicites précisent que la relation n'est pas manifeste ; il est basé sur un concept.
  • {commandé} – Les contraintes ordonnées spécifient que l'ensemble des objets à une extrémité d'une association est d'une manière spécifique.
  • {changeable} – La contrainte modifiable spécifie que la connexion entre divers objets du système peut être ajoutée, supprimée et modifiée selon les exigences.
  • {addOnly} – Il précise que les nouvelles connexions peuvent être ajoutées à partir d'un objet qui se situe à l'autre extrémité d'une association.
  • {congelé} – Il précise que lorsqu'un lien est inséré entre deux objets, alors il ne peut pas être modifié tant que la contrainte figée est active sur le lien donné ou une connexion.

Nous pouvons également créer une classe qui possède des propriétés d'association UML ; on l'appelle classe d'association.

Association réflexive

L'association réflexive est un sous-type de relation d'association dans UML. Dans une association réflexive, les instances d'une même classe peuvent être liées les unes aux autres. Une instance d’une classe est également appelée un objet.

L'association réflexive indique qu'un lien ou une connexion peut être présent au sein des objets d'une même classe.

Exemple:

Prenons un exemple de classe fruit.

La classe des fruits comprend deux instances, comme la mangue et la pomme. L'association réflexive indique qu'un lien entre la mangue et la pomme peut être présent car ce sont des instances de la même classe, comme le fruit.

Association réflexive
Association réflexive

Association dirigée

Comme son nom l’indique, l’association dirigée est liée à la direction du flux au sein des classes d’association.

Dans une association dirigée, le flux est dirigé. L'association d'une classe à une autre classe s'effectue dans un seul sens.

Il est indiqué par une ligne continue avec une pointe de flèche.

Exemple d'association UML:

On peut dire qu'il existe une relation d'association dirigée entre un serveur et un client.

Un serveur peut traiter les requêtes d'un client. Ce flux est unidirectionnel, il circule uniquement du serveur vers le client. Par conséquent, une relation d’association dirigée peut être présente au sein des serveurs et des clients d’un système.

Association dirigée

Association dirigée

Composition UML

Ce n'est pas une norme Relation UML, mais il est toujours utilisé dans diverses applications.

L'agrégation composite est un sous-type de relation d'agrégation avec les caractéristiques suivantes :

  • C'est une association bidirectionnelle entre les objets.
  • C'est une relation tout/partie.
  • Si un composite est supprimé, toutes les autres pièces qui lui sont associées sont supprimées.

L'agrégation composite est décrite comme une association binaire décorée d'un diamant noir rempli à l'extrémité globale (entière).

Composition UML

Le dossier peut contenir plusieurs fichiers, tandis que chaque fichier a exactement un parent de dossier. Si un dossier est supprimé, tous les fichiers qu'il contient sont également supprimés.

Dans une agrégation composite, un objet ne peut faire partie que d'un seul composite à la fois.

Exemple de composition UML:

Par exemple, dans un système de fenêtrage, un Frame appartient précisément à une seule fenêtre. Dans une agrégation composite, l'ensemble du système est responsable de la disposition de ses parties, ce qui signifie que le composite doit gérer la création et la destruction de ses parties.

Composition UML

Composition

Agrégation UML

Une agrégation est un sous-type de relation d'association en UML. Agrégation et composition sont les deux types de relation d’association dans UML. Une relation d'agrégation peut être décrite en termes simples comme « un objet d'une classe peut posséder ou accéder aux objets d'une autre classe ».

Dans une relation d'agrégation, l'objet dépendant reste dans la portée d'une relation même lorsque l'objet source est détruit.

Exemple d'agrégation UML:

Prenons l'exemple d'une voiture et d'une roue.

Une voiture a besoin d’une roue pour fonctionner correctement, mais une roue n’a pas toujours besoin d’une voiture. Il peut également être utilisé avec le vélo, le vélo ou tout autre véhicule mais pas avec une voiture en particulier. Ici, l’objet roue a un sens même sans l’objet voiture. Ce type de relation est appelé relation d'agrégation UML.

Relation d'agrégation UML

Agrégation

Association contre. Agrégation vs. Composition

Association Agrégation Composition
La relation d'association est indiquée par une flèche. La relation d'agrégation est représentée par une ligne droite avec une pointe de flèche vide à une extrémité. La relation de composition est indiquée par une ligne droite avec une pointe de flèche remplie à l'une des extrémités.
Une association peut exister entre deux ou plusieurs classes en UML. L'agrégation fait partie d'une relation d'association. La composition s'inscrit dans une relation d'association.
Il peut y avoir une association un-un, un-plusieurs, plusieurs-un et plusieurs-plusieurs entre les classes d'association. L'agrégation est considérée comme un type d'association faible. La composition est considérée comme un type d’association fort.
Dans une relation d'association, un ou plusieurs objets peuvent être associés les uns aux autres. Dans une relation d'agrégation, les objets associés les uns aux autres peuvent rester dans la portée d'un système sans les autres. Dans une relation de composition, les objets associés les uns aux autres ne peuvent pas rester dans la portée les uns sans les autres.
Les objets sont liés les uns aux autres. Les objets liés ne dépendent pas de l'autre objet. Les objets dépendent fortement les uns des autres.
Dans l'association UML, la suppression d'un élément peut ou non affecter un autre élément associé. Dans l'agrégation UML, la suppression d'un élément n'affecte pas un autre élément associé. Dans la composition UML, la suppression d'un élément affecte un autre élément associé.
Exemple :
Un enseignant est associé à plusieurs étudiants.
Or
un enseignant donne des instructions aux élèves.
Exemple :
Une voiture a besoin d’une roue, mais elle n’a pas toujours besoin de la même roue. Une voiture peut également fonctionner correctement avec une autre roue.
Exemple :
Un fichier est placé dans le dossier. Si l'on supprime le dossier, le fichier associé à ce dossier donné est également supprimé.

Résumé

  • Une relation est une connexion entre des choses.
  • L'association, la dépendance, la généralisation et la réalisation sont diverses relations fournies par UML.
  • Outre les relations standard, la composition et l'agrégation sont utilisées dans UML.
  • L'agrégation et la composition sont deux types de relations d'association dans UML.
  • La composition UML est une relation bidirectionnelle également appelée relation binaire.

Consultez notre article sur les meilleurs outils UML :- Cliquez ici