OCL
3. Les contraintes OCL servent dans plusieurs situations : 1
6. Pre-conditions & Post-conditions. 2
1. OCL
The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard.
2. Contraintes
Constraints are depicted after the model element / stereotype as text within curly braces { >0 }
• Constraints specify some condition or rule about the modeling element that must be maintained as true
Relation entre éléments de modélisation : propriété qui doit être vraie
Notation : − − − − − − − − {contrainte}
3. Les contraintes OCL servent dans plusieurs situations :
Description d’invariants de classe
Une contrainte qui doit être respectée en permanence par toutes les instances d’une classe
Précondition et postconditions à l’exécution d’une opération
Une contrainte qui doit être toujours vraie avant/après l’exécution d’une opération
contraintes sur la valeur retournée par une méthode
Toute contrainte OCL est liée à un contexte spécifique, l´élément auquel la contrainte est attachée.
Syntaxe :
context monContexte
<stéréotype> nomContrainte : Expression de la contrainte
5. Invariants
Un invariant exprime une contrainte sur un objet ou un groupe
d’objets qui doit être respectée en permanence
<stéréotype> : inv
context Compte inv: solde > 0 -- solde d’un compte doit toujours etre positif
6. Pre-conditions & Post-conditions
Spécifie une contrainte qui doit être vérifiée avant/après l’appel d’une opération
<stereotype> : pre post
context Personne::setAge(a :entier)
pre : (a <= 140) and (a >=0) and (a >= age)
post : age = a -- on peut ´ecrire ´egalement a=age
context Compte::débiter(somme : Real)
pre: somme > 0
post: solde = solde@pre - somme
context Compte::getSolde() : Real
post: result = somme