Les Contraintes UML
Par: Sari Meriem
1
UNIVERSITE MOHAMED CHERIF MESAADIA
SOUK-AHRAS
Exposé sur:
Définition
2
une condition ou une restriction sémantique exprimée sous forme
d’instruction dans un langage textuel.
 Une ...
Les Contraintes
3
 Une contrainte peut être un corps écrit dans un langage de
contrainte qui peut être:
 Naturel.
 Dédi...
Les Contraintes
4
Nous avons déjà vu comment exprimer certaines formes de
contraintes avec UML :
 Contraintes structurel...
Représentation d’une Contrainte
5
 Une contrainte est représenté sous la forme d’une chaîne de texte
placée entre accolad...
Contraintes et contraintes prédéfinies
6
UML permet d’associer une contrainte à un, ou plusieurs, élément(s)
de modèle de ...
Types de Contraintes
7
 Invariant de Classe: une contrainte qui doit être satisfaite par
toutes les instances de la class...
OCL
8
un langage formel textuel d’expression de contraintes bien adapté
aux diagrammes d’UML.
 Acronyme de: Object Constr...
Intérêt du OCL
9
C’est un langage formel volontairement simple d’accès.
 Peut être interprété par des outils.
 Représen...
Typologie des contraintes OCL
10
1. Contexte (context).
2. Invariants (inv).
3. Préconditions et postconditions (pre, post...
Contexte (context)
11
 Une contrainte est toujours associée à un élément de modèle.
 C’est cet élément qui constitue le ...
Invariants (inv)
12
 Un invariant exprime une contrainte prédicative sur un objet qui
doit être respectée en permanence.
...
Préconditions & postconditions (pre, post)
13
 Une précondition permet de spécifier une contrainte prédicative
qui doit ê...
Résultat d’une méthode (body)
14
 Permet de définir directement le résultat d’une opération.
 Syntaxe: body : <requête>
...
Définition d’attributs et de méthodes (def et let…in)
15
 let permet de déclarer et de définir la valeur (i.e. initialise...
Initialisation et évolution des attributs (init, derive)
16
 init permet de préciser la valeur initiale d’un attribut.
 ...
Types et opérations utilisables dans OCL
17
I. Types et opérateurs prédéfinis
II. Types du modèle UML
III. Collections
1. ...
Types et opérateurs prédéfinis
18Sari Meriem Contraintes UML 1ére Année Master GL
Types du modèle UML
19
 Une contrainte OCL peut référencer une valeur de type
énuméré.
 Syntaxe: <nom_type_enuméré>::val...
Collections
20
 Il existe plusieurs sous-types du type abstrait Collection :
 Ensemble (Set): collection non ordonnée d’...
Accès aux attributs et aux opérations (self)
21
 L’objet désigné par le contexte est également accessible par
l’expressio...
Opération sur les classes
22
 Toutes les opérations que nous avons décrites jusqu’ici
s’appliquaient sur des instances de...
Opérations sur les collections
23
 OCL a un grand nombre d'opérations prédéfinies sur les
collections.
 Syntaxe: collect...
Opérations sur les collections
24
 collection->exists(elem | expr)  Retourne vrai si il existe au
moins un élément de co...
Héritage de contraintes
25
 Partout où une instance d'une classe est attendue, une instance
d'une sous classe peut lui êt...
Consequences de LSP
26
 Pour les invariants:
 Un invariant est toujours hérité par ses sous classes.
 Les sousclasses p...
Exemple
27Sari Meriem Contraintes UML 1ére Année Master GL
Exemple
28
 Dans une société, le directeur est un employé, n’est pas un
chômeur et doit avoir plus de 40 ans. De plus, un...
Prochain SlideShare
Chargement dans…5
×

Contraintes uml

546 vues

Publié le

contraintes UML

Publié dans : Design
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
546
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Contraintes uml

  1. 1. Les Contraintes UML Par: Sari Meriem 1 UNIVERSITE MOHAMED CHERIF MESAADIA SOUK-AHRAS Exposé sur:
  2. 2. Définition 2 une condition ou une restriction sémantique exprimée sous forme d’instruction dans un langage textuel.  Une contrainte:  Peut être attachée à n’importe quel élément de modèle ou liste d’éléments de modèle.  Désigne une restriction qui doit être appliquée par une implémentation correcte du système. Sari Meriem Contraintes UML 1ére Année Master GL
  3. 3. Les Contraintes 3  Une contrainte peut être un corps écrit dans un langage de contrainte qui peut être:  Naturel.  Dédié, comme OCL.  Issu d’un langage de programmation. Sari Meriem Contraintes UML 1ére Année Master GL
  4. 4. Les Contraintes 4 Nous avons déjà vu comment exprimer certaines formes de contraintes avec UML :  Contraintes structurelles : les attributs dans les classes, les différents types de relations entre classes, la cardinalité, etc.  Contraintes de type : typage des propriétés, etc.  Contraintes diverses : les contraintes de visibilité, les méthodes et classes abstraites, etc. Sari Meriem Contraintes UML 1ére Année Master GL
  5. 5. Représentation d’une Contrainte 5  Une contrainte est représenté sous la forme d’une chaîne de texte placée entre accolades ({}).  Une contrainte peut possédé un nom.  Le nom est présenté sous forme d’une chaîne suivie d’un double point (:).  Le tout précédant le texte de la contrainte. Sari Meriem Contraintes UML 1ére Année Master GL
  6. 6. Contraintes et contraintes prédéfinies 6 UML permet d’associer une contrainte à un, ou plusieurs, élément(s) de modèle de différentes façons : Sari Meriem Contraintes UML 1ére Année Master GL
  7. 7. Types de Contraintes 7  Invariant de Classe: une contrainte qui doit être satisfaite par toutes les instances de la classe.  Pré-condition d’une opération: une contrainte qui doit toujours être vrai avant l’exécution de l’opération.  Post-condition d’une opération: une contrainte qui doit toujours être vrai après l’exécution de l’opération. Sari Meriem Contraintes UML 1ére Année Master GL
  8. 8. OCL 8 un langage formel textuel d’expression de contraintes bien adapté aux diagrammes d’UML.  Acronyme de: Object Constraint Language.  Existe depuis la version 1.1 d’UML.  Peut s’appliquer sur la plupart des diagrammes d’UML et en particulier au diagramme de classes.  Simple à utiliser et non ambigüe. Sari Meriem Diagrammes de Classes 1ére Année Master GL
  9. 9. Intérêt du OCL 9 C’est un langage formel volontairement simple d’accès.  Peut être interprété par des outils.  Représente 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.  Une expression OCL décrit une contrainte à respecter et ne décrit absolument pas l’implémentation d’une méthode. Sari Meriem Contraintes UML 1ére Année Master GL
  10. 10. Typologie des contraintes OCL 10 1. Contexte (context). 2. Invariants (inv). 3. Préconditions et postconditions (pre, post). 4. Résultat d’une méthode (body). 5. Définition d’attributs et de méthodes (def et let…in). 6. Initialisation (init) et évolution des attributs (derive). Sari Meriem Contraintes UML 1ére Année Master GL
  11. 11. Contexte (context) 11  Une contrainte est toujours associée à un élément de modèle.  C’est cet élément qui constitue le contexte de la contrainte.  Syntaxe: context <élément>  <élément> peut être une classe:  Exemple: context Compte  <élément> peut être une opération:  Exemple: context Compte::getSolde() Sari Meriem Contraintes UML 1ére Année Master GL
  12. 12. Invariants (inv) 12  Un invariant exprime une contrainte prédicative sur un objet qui doit être respectée en permanence.  Syntaxe: inv : <expression_logique>  Exemple: Le solde d’un compte doit toujours être positif. context Compte inv : solde > 0 Sari Meriem Contraintes UML 1ére Année Master GL
  13. 13. Préconditions & postconditions (pre, post) 13  Une précondition permet de spécifier une contrainte prédicative qui doit être vérifiée avant l’appel d’une opération.  Une postcondition permet de spécifier une contrainte prédicative qui doit être vérifiée après l’appel d’une opération.  Syntaxe:  Précondition : pre : <expression_logique>  Postcondition : post : <expression_logique>  Exemple: context Compte::getSolde() : Real pre : somme > 0 post : result = solde Sari Meriem Contraintes UML 1ére Année Master GL
  14. 14. Résultat d’une méthode (body) 14  Permet de définir directement le résultat d’une opération.  Syntaxe: body : <requête>  Exemple: le résultat de l’appel de l’opération getSolde doit être égal à l’attribut solde. context Compte::getSolde() : Real body : solde Sari Meriem Contraintes UML 1ére Année Master GL
  15. 15. Définition d’attributs et de méthodes (def et let…in) 15  let permet de déclarer et de définir la valeur (i.e. initialiser) d’un attribut qui pourra être utilisé dans l’expression qui suit le in.  def permet également de déclarer et de définir la valeur retournée par une opération interne à la contrainte.  Syntaxe:  let <déclaration> = <requête> in <expression>  def : <déclaration> = <requête> Sari Meriem Contraintes UML 1ére Année Master GL
  16. 16. Initialisation et évolution des attributs (init, derive) 16  init permet de préciser la valeur initiale d’un attribut.  derive précise comment la valeur de ce type d’élément évolue.  Syntaxe:  init : <requête>  derive : <requête>  Exemple: context Personne::marié : Boolean init : false context Personne::age : Integer derive : date_de_naissance - Date::current() Sari Meriem Contraintes UML 1ére Année Master GL
  17. 17. Types et opérations utilisables dans OCL 17 I. Types et opérateurs prédéfinis II. Types du modèle UML III. Collections 1. Ensemble (Set) 2. Ensemble ordonné (OrderedSet) 3. Sac (Bag) 4. Séquence (Sequence) : Sari Meriem Contraintes UML 1ére Année Master GL
  18. 18. Types et opérateurs prédéfinis 18Sari Meriem Contraintes UML 1ére Année Master GL
  19. 19. Types du modèle UML 19  Une contrainte OCL peut référencer une valeur de type énuméré.  Syntaxe: <nom_type_enuméré>::valeur  Exemple: la classe Personne possède un attribut genre de type Genre. On peut donc écrire la contrainte : context Personne inv : genre = Genre::femme Sari Meriem Contraintes UML 1ére Année Master GL
  20. 20. Collections 20  Il existe plusieurs sous-types du type abstrait Collection :  Ensemble (Set): collection non ordonnée d’éléments uniques.  Ensemble ordonné (OrderedSet): collection ordonnée d’éléments uniques.  Sac (Bag) :collection non ordonnée d’éléments identifiables (pouvant comporter des doublons).  Séquence (Sequence): collection ordonnée d’éléments identifiables. Sari Meriem Contraintes UML 1ére Année Master GL
  21. 21. Accès aux attributs et aux opérations (self) 21  L’objet désigné par le contexte est également accessible par l’expression self.  Syntaxe: self.<propriété>  Exemple: dans le contexte de la classe Compte, on peut utiliser les expressions suivantes : solde self.solde getSolde() self.getSolde() débiter(1000) self.débiter(1000) Sari Meriem Contraintes UML 1ére Année Master GL
  22. 22. Opération sur les classes 22  Toutes les opérations que nous avons décrites jusqu’ici s’appliquaient sur des instances de classe.  OCL dispose d’une opération prédéfinie sur les classes, les interfaces et les énumérations qui retourne l’ensemble de toutes les instances.  Exemple: Personne.allInstances() Sari Meriem Contraintes UML 1ére Année Master GL
  23. 23. Opérations sur les collections 23  OCL a un grand nombre d'opérations prédéfinies sur les collections.  Syntaxe: collection->operation  collection->collect(elem | expr)  Retourne la collection des valeurs obtenues par application de expr aux éléments de collection.  collection->select(elem | expression)  Retourne le sous ensemble des éléments pour lesquels expression est vrai.  collection->reject(elem | expression)  Retourne le sous ensemble des éléments sauf lesquels que pour eux l’expression est vrai.  collection->forAll(elem | expr)  Retourne vrai si expr est vrai pour tous les éléments de collection. Sari Meriem Contraintes UML 1ére Année Master GL
  24. 24. Opérations sur les collections 24  collection->exists(elem | expr)  Retourne vrai si il existe au moins un élément de collection pour lequel expr est vrai.  Autre opérations:  isEmpty: vrai si self est vide.  notEmpty: vrai si self n’est pas vide.  size(): retourne le nombre d’éléments (la cardinalité) de self.  count(elem):retourne le nombre d’occurrences de objet dans self.  includes(elem): vrai si elem dans collection  excludes(elem): vrai si self ne contient pas l’objet objet.  sum(): etourne la somme des éléments de self. Sari Meriem Contraintes UML 1ére Année Master GL
  25. 25. Héritage de contraintes 25  Partout où une instance d'une classe est attendue, une instance d'une sous classe peut lui être substituée.  C’est le concepte de Liskov’s Substitution Principle (LSP). Sari Meriem Contraintes UML 1ére Année Master GL
  26. 26. Consequences de LSP 26  Pour les invariants:  Un invariant est toujours hérité par ses sous classes.  Les sousclasses peuvent renforcer l'invariant.  Les preconditions et postconditions:  Une precondition peut être weakened (contravariance).  Une postcondition peut être strengthened (covariance). Sari Meriem Contraintes UML 1ére Année Master GL
  27. 27. Exemple 27Sari Meriem Contraintes UML 1ére Année Master GL
  28. 28. Exemple 28  Dans une société, le directeur est un employé, n’est pas un chômeur et doit avoir plus de 40 ans. De plus, une société possède exactement un directeur et au moins un employé. context Société inv : self.directeur->size()=1 and not(self.directeur.chômeur) and self.directeur.age > 40 and self.employé->includes(self.directeur)  Une personne possède deux parents, l’un est une femme et l’autre un homme. context Personne inv : parent->size()=2 implies ( parent->exists(genre=Genre::homme) and parent->exists(genre=Genre::femme) ) Sari Meriem Contraintes UML 1ére Année Master GL

×