1.      OCL.. 1

2.      Contraintes. 1

3.      Les contraintes OCL servent dans plusieurs situations : 1

4.      Notion de contexte. 1

5.      Invariants. 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

4.    Notion de contexte

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


Last modified: Wednesday, 6 November 2024, 10:07 PM