Qu'est-ce qu'une contrainte sous forme d'opération UML ?

Il est souvent nécessaire de pouvoir exprimer une contrainte entre associations mais exprimer une contrainte entre associations avec la notation UML est relativement malaisé. Par ailleurs, une contrainte devrait pouvoir s’exprimer entre associations, entre attributs ou entre attributs et associations, ce que la notation UML ne permet pas.

Pour résoudre cette double problématique, nous nous appuierons sur la notion d’opération UML.

Nous avons défini un jeu d’opérations (des fonctions logiques de l'algèbre de Boole) représentant les contraintes entre associations et/ou attributs:

  • or - contrainte de disjonction "ou";
  • xor - contrainte de disjonction exclusive "ou exclusif";
  • nand - contrainte de non conjonction "non et";
  • and - contrainte de conjonction "et";
  • eqv - contrainte d'équivalence;
  • nor - contrainte de non disjonction "non ou";
  • imp - contrainte d'implication;
  • inh - contrainte d'inhibition.

Table de vérité récapitulative