Support de cours langage de contraintes objet OCL

Extrait du support de cours langage de contraintes objet OCL

1 Intérêt d’un langage de contraintes objet comme OCL
1.1 OCL – Introduction
QuesacOCL ?
C’est avec OCL (Object Constraint Language) qu’UML formalise l’expression des contraintes. Il s’agit donc d’un langage formel d’expression de contraintes bien adapté aux diagrammes d’UML, et en particulier au diagramme de classes.
OCL existe depuis la version 1.1 d’UML et est une contribution d’IBM. OCL fait partie intégrante de la norme UML depuis la version 1.3 d’UML. Dans le cadre d’UML 2.0, les spécifications du langage OCL figurent dans un document indépendant de la norme d’UML,décrivant en détail la syntaxe formelle et la façon d’utiliser ce langage.
OCL peut s’appliquer sur la plupart des diagrammes d’UML et permet de spécifier des contraintes sur l’état d’un objet ou d’un ensemble d’objets comme :
• des invariants sur des classes ;
• des préconditions et des postconditions à l’exécution d’opérations:
◦ les préconditions doivent être vérifiées avant l’exécution,
◦ les postconditions doivent être vérifiées après l’exécution ;
• des gardes sur des transitions de diagrammes d’états-transitions ou des messages de diagrammes d’interaction ;
• des ensembles d’objets destinataires pour un envoi de message ;
• des attributs dérivés, etc.
Pourquoi OCL ?
Nous avons dit que les contraintes pouvaient être écrites en langage naturel, alors pourquoi s’embarrasser du langage OCL ? L’intérêt du langage naturel est qu’il est simple à mettre en œuvre et compréhensible par tous. Par contre (et comme toujours), il est ambigu et imprécis, il rend difficile l’expression des contraintes complexes et ne facilite pas les références à d’autres éléments (autres que celui sur lequel porte la contrainte) du modèle.OCL est un langage formel volontairement simple d’accès. Il possède une grammaire élémentaire (OCL peut être interprété par des outils) que nous décrirons dans les sections 4.3 à 4.6. OCL représente, en fait, un juste milieu entre le langage naturel et un langage très technique (langage mathématique, informatique, …). Il permet ainsi de limiter les ambiguïtés, tout en restant accessible. (Cours langage de contraintes objet)
1.2 Illustration par l’exemple
Mise en situation
Plaçons-nous dans le contexte d’une application bancaire. Il nous faut donc gérer :
• des comptes bancaires,
• des clients,
• et des banques.
De plus, on aimerait intégrer les contraintes suivantes dans notre modèle :
• un compte doit avoir un solde toujours positif ;
• un client peut posséder plusieurs comptes ;
• une personne peut être cliente de plusieurs banques ;
• un client d’une banque possède au moins un compte dans cette banque ;
• un compte appartient forcément à un client ;
• une banque gère plusieurs comptes ;
• une banque possède plusieurs clients.
2 Typologie des contraintes OCL
2.1 Contexte (context)
Une contrainte est toujours associée à un élément de modèle. C’est cet élément qui constitue le contexte de la contrainte. Il existe deux manières pour spécifier le contexte d’une contrainte OCL.
Syntaxe
context <élément>
Exemple
Le contexte est la classe Compte:
context Compte
Le contexte est l’opération getSolde() de la classe Compte:
context Compte::getSolde()
2.2 Invariants (inv)
Un invariant exprime une contrainte prédicative sur un objet, ou un groupe d’objets, qui doit être respectée en permanence.
Syntaxe
inv : <expression_logique>
<expression_logique> est une expression logique qui doit toujours être vraie.
Exemple
Le solde d’un compte doit toujours être positif.

…….

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Support de cours langage de contraintes objet OCL:  (302 KO) (Cours PDF)
Cours langage de contraintes objet

Télécharger aussi :

Laisser un commentaire

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