UML 2 pour les bases de données
54
© Éditions Eyrolles
Notation UML
Bien que la contrainte de simultanéité ne soit pas proposée par UML, on la programme à l’aide
de l’invariant OCL suivant en l’attachant une note à la classe Pilote (de la même manière
qu’à l’exemple 1-41).
inv:
((detachement->isEmpty() and operation->isEmpty()) or
(detachement->notEmpty() and operation->notEmpty()))
Les contraintes prédéfinies de UML 2
La spécification UML 2 définit quelques contraintes qui se notent à l’extrémité d’un lien
d’association (au même niveau que le rôle). Nous les citons ici pour mémoire mais elles ne
sont pas toutes intéressantes dans un contexte de bases de données.
●
{subsets nom_rôle} exprime l’inclusion d’une association par rapport à une autre (déjà
étudié).
●
{redefined nom_rôle} redéfinit un rôle.
●
{union} signifie que le rôle rassemble une union de sous-ensembles.
●
{ordered} exprime un ordre au niveau des objets reliés.
●
{bag} exprime qu’un même objet cible peut apparaître plusieurs fois dans l’association.
●
{sequence} notée aussi {seq} combine les caractéristiques de bag et de ordered.
●
{xor} qui indique le ou exclusif entre objets reliés par deux associations (déjà étudié).
En l’absence de ces contraintes (cas le plus général et celui par défaut), la terminaison d’une
association est dite de type set (chaque objet relié n’est présent au plus qu’une seule fois dans
l’association).
Dans l’exemple 1-50, ordered précise l’ordre d’obtention d’un diplôme (chronologique par
exemple), alors que subsets indique que, pour être major d’un diplôme, l’étudiant doit aussi
y être associé en tant que titulaire.
Figure 1-50 Contraintes prédéfinies UML
Etudiant
Diplome
titulaire
*
*
{ordered }
major
1
*
{subsets titulaire }
54
© Éditions Eyrolles
Notation UML
Bien que la contrainte de simultanéité ne soit pas proposée par UML, on la programme à l’aide
de l’invariant OCL suivant en l’attachant une note à la classe Pilote (de la même manière
qu’à l’exemple 1-41).
inv:
((detachement->isEmpty() and operation->isEmpty()) or
(detachement->notEmpty() and operation->notEmpty()))
Les contraintes prédéfinies de UML 2
La spécification UML 2 définit quelques contraintes qui se notent à l’extrémité d’un lien
d’association (au même niveau que le rôle). Nous les citons ici pour mémoire mais elles ne
sont pas toutes intéressantes dans un contexte de bases de données.
●
{subsets nom_rôle} exprime l’inclusion d’une association par rapport à une autre (déjà
étudié).
●
{redefined nom_rôle} redéfinit un rôle.
●
{union} signifie que le rôle rassemble une union de sous-ensembles.
●
{ordered} exprime un ordre au niveau des objets reliés.
●
{bag} exprime qu’un même objet cible peut apparaître plusieurs fois dans l’association.
●
{sequence} notée aussi {seq} combine les caractéristiques de bag et de ordered.
●
{xor} qui indique le ou exclusif entre objets reliés par deux associations (déjà étudié).
En l’absence de ces contraintes (cas le plus général et celui par défaut), la terminaison d’une
association est dite de type set (chaque objet relié n’est présent au plus qu’une seule fois dans
l’association).
Dans l’exemple 1-50, ordered précise l’ordre d’obtention d’un diplôme (chronologique par
exemple), alors que subsets indique que, pour être major d’un diplôme, l’étudiant doit aussi
y être associé en tant que titulaire.
Figure 1-50 Contraintes prédéfinies UML
Etudiant
Diplome
titulaire
*
*
{ordered }
major
1
*
{subsets titulaire }
