OCL Le langage de contraintes d’UML

OCL: Object Constraint Language (Le langage de contraintes d’UML)

Diagrammes UML insuffisants
Pour spécifier complètement une application :
Diagrammes UML seuls sont généralement insuffisants
Nécessité de rajouter des contraintes
Comment exprimer ces contraintes ?
Langue naturelle mais manque de précision, compréhension pouvant être ambigü e
Langage formel avec sémantique précise : par exemple OCL

OCL : Object Constraint Language
Langage de contraintes orienté-objet
Langage formel (mais simple à utiliser) avec une syntaxe, une grammaire, une sémantique (manipulable par un outil)
S’applique sur les diagrammes UML

Le langage OCL
OCL fait partie de la norme UML 1.3 (et sup.) de l’OMG (Object Management Group)
OCL en version 2.0 : spécification à part de la norme UML 2.0, en cours de normalisation par l’OMG
OCL permet principalement d’exprimer deux types de contraintes sur l’état d’un objet ou d’un ensemble d’objets :
Des invariants qui doivent être respectés en permanence
Des pré et post-conditions pour une opération :
Précondition : doit être vérifiée avant l’exécution
Postcondition : doit être vérifiée après l’exécution

Attention : une expression OCL décrit une contrainte à respecter et pas le « code » d’une méthode
Utilisation d’OCL
OCL peut s’appliquer sur la plupart des diagrammes UML Il sert, entre autres, à spécifier des :
Invariants sur des classes
Pré et postconditions sur des opérations
Gardes sur transitions de diagrammes d’états ou de messages de diagrammes de séquence / collaboration
Des ensembles d’objets destinataires pour un envoi de message
Des attributs dérivés
Des stéréotypes

Contexte
Une expression OCL est toujours définie dans un contexte
Ce contexte est une instance d’une classe
Mot-clé : context
Exemple :
context Compte
L’expression OCL s’applique à la classe Compte, c’est-à-dire à toutes les instances de cette classe
Invariants
Un invariant exprime une contrainte sur un objet ou un groupe d’objets qui doit être respectée en permanence
Mot-clé : inv:
Exemple :
context Compte
inv: solde > 0
Pour toutes les instances de la classe Compte, l’attribut solde doit toujours être positif
Pré et postconditions
Pour spécifier une opération :
Précondition : état qui doit être respecté avant l’appel de l’opération
Postcondition : état qui doit être respecté après l’appel
Mots-clés : pre: et post:
Dans la postcondition, deux éléments particuliers sont utilisables :
Attribut result : référence la valeur retournée par l’opération
mon_attribut@pre : référence la valeur de mon_attribut avant l’appel de l’opération
Syntaxe pour préciser l’opération :
context ma_classe::mon_op(liste_param) : type_retour

LIRE AUSSI :  UML est un langage de modélisation objet

1. Pourquoi OCL ? Introduction par l’exemple
2. Les principaux concepts d’OCL
3. Exemple d’application sur un autre modèle
4. Utilisation en pratique d’OCL lors d’un développement logiciel

OCL Le langage de contraintes d'UMLTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *