UML prévoit une symbolique pour identifier les multiplicités d'une relation. Ceci permet de préciser le nombre d'instances des classes pouvant être utilisées dans une relation.
Multiplicité | Notation dans le diagramme de classes |
---|---|
exactement 1 | 1 ou 1..1 |
plusieurs | * ou 0..* |
au moins un | 1..* |
un intervalle de valeurs, par exemple entre 2 et 4 | 2..4 |
Celles qu'on retrouvera le plus souvent sont 1 et * (ou sa notation équivalente, 0..*).
Ces multiplicités permettent de définir différents types de relations :
Une seule instance de la première classe peut être associée à plusieurs instances de la seconde classe.
On lira toujours une multiplicité en ignorant le symbole qui est immédiatement à côté de la boîte de départ.
Par exemple, dans un système scolaire, un étudiant étudie dans un seul établissement et un établissement peut avoir plusieurs étudiants admis.
La table du côté du 1 s'appellera table maître et celle du côté de l'étoile s'appellera table détail. Dans cet exemple, la table maître est etablissements et la table détail est etudiants.
Plusieurs instances de la première classe peuvent être associées à plusieurs instances de la seconde classe.
Par exemple, dans un système scolaire, un étudiant peut être inscrit à plusieurs cours et un cours peut être donné à plusieurs étudiants.
Dans une relation de plusieurs à plusieurs, il est possible d'ajouter des attributs à la relation.
Voici un exemple de cas où on voudrait ajouter un attribut à une relation. Lorsqu'un étudiant est inscrit à un cours, on voudra savoir à quelle session cette inscription a lieu.
La session ne peut pas être un attribut de l'étudiant car un étudiant peut étudier pendant plusieurs sessions. Elle ne peut pas non plus être un attribut du cours car un cours peut être être offert à différentes sessions.
Une relation qui comporte des attributs s'appelle une classe-association.
Pour l'illustrer dans un diagramme de classes, on remplacera le mot sur la relation par une boîte dans laquelle on ajoutera le ou les attributs de la relation. On reliera cette boîte à la ligne de la relation à l'aide de pointillés.
Remarquez que le verbe se retrouve dans la classe-association et non sur la ligne de la relation.
Remarquez également qu'il n'y a pas de multiplicité sur la ligne pointillée. Seule la ligne pleine aura le symbole * (ou 0..*) à chacune de ses extrémités.
Ce type de relation est moins fréquent. Il indique que chaque instance d'une classe correspond à 0 ou 1 instance de l'autre classe.
Dans notre exemple des voyages organisés, déterminez la multiplicité à utiliser pour chacune des relations.
▼Publicité