Associations
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Savoir représenter les relations entre des classes grâce aux associations ;
Savoir ajouter des contraintes sur les associations.
Mise en situation
Imaginez que vous développiez une application à destination des agences immobilières pour faciliter la gestion des locations d'appartements ou de maisons.
Dans votre modélisation, vous avez identifié plusieurs acteurs : les locataires, les bailleurs, les biens immobiliers, etc. Chacun de ces acteurs est représenté par une classe UML.
Mais comment représenter les relations qui existent entre ces classes ? Par exemple, un bailleur peut posséder plusieurs biens immobiliers, mais un bien immobilier ne peut être loué que par un seul locataire.
Dans ce module, vous allez découvrir les associations UML, qui permettent d'exprimer efficacement les relations entre plusieurs classes, ainsi que leurs contraintes.
Définition : Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire) qui définit un ensemble de liens entre les objets de ces classes.
Une association est nommée, généralement par un verbe. Une association peut avoir des propriétés (à l'instar d'une classe). Une association définit le nombre minimum et maximum d'instances autorisées dans la relation (on parle de cardinalité).
Syntaxe :
Attention :
Le nom de l'association (verbe qui la décrit) est obligatoire, au même titre que le nom d'une classe ou d'un attribut.
Remarque :
Une association est généralement bidirectionnelle (c'est à dire qu'elle peut se lire dans les deux sens). Les associations qui ne respectent pas cette propriété sont dites unidirectionnelles ou à navigation restreinte.
Exemple : L'association Conduit
L'association « Conduit »
entre les classes « Conducteur »
et « Voiture »
exprime que les conducteurs conduisent des voitures.
Définition : Cardinalité d'une association
La cardinalité d'une association permet de représenter le nombre minimum et maximum d'instances qui sont autorisées à participer à la relation. La cardinalité est définie pour les deux sens de la relation.
Syntaxe :
Si mina (resp. maxa) est le nombre minimum (resp. maximum) d'instances de la classe A autorisées à participer à l'association, on note sur la relation, à côté de la classe A : mina..maxa.
Si le nombre maximum est indéterminé, on note n ou *.
Remarque :
Les cardinalités les plus courantes sont :
0..1 (optionnel)
1..1 ou 1 (un)
0..n ou 0..* ou * (plusieurs)
1..n ou 1..* (obligatoire)
Exemple : La cardinalité de l'association Possède
Ici un conducteur peut posséder plusieurs voitures (y compris aucune) et une voiture n'est possédée que par un seul conducteur.
Attention : Terminologie
On appelle association 1:1 les associations de type :
0..1:0..1
0..1:1..1
1..1:0..1
1..1:1..1
On appelle association 1:N les associations de type :
0..1:0..N
0..1:1..N
1..1:0..N
1..1:1..N
On appelle association N:M (ou M:N) les associations de type :
0..N:0..M
0..N:1..M
1..N:0..M
1..N:1..M
Complément :
La notation de la cardinalité en UML est opposée à celle adoptée en E-A. En UML on note à gauche (resp. à droite) le nombre d'instances de la classe de gauche (resp. de droite) autorisées dans l'association. En E-A, on note à gauche (resp. à droite) le nombre d'instances de la classe de droite (resp. de gauche) autorisées dans l'association.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.