Contraintes uml

  • Published on
    16-Aug-2015

  • View
    111

  • Download
    2

Embed Size (px)

Transcript

<ol><li> 1. Les Contraintes UML Par: Sari Meriem 1 UNIVERSITE MOHAMED CHERIF MESAADIA SOUK-AHRAS Expos sur: </li><li> 2. Dfinition 2 une condition ou une restriction smantique exprime sous forme dinstruction dans un langage textuel. Une contrainte: Peut tre attache nimporte quel lment de modle ou liste dlments de modle. Dsigne une restriction qui doit tre applique par une implmentation correcte du systme. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 3. Les Contraintes 3 Une contrainte peut tre un corps crit dans un langage de contrainte qui peut tre: Naturel. Ddi, comme OCL. Issu dun langage de programmation. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 4. Les Contraintes 4 Nous avons dj vu comment exprimer certaines formes de contraintes avec UML : Contraintes structurelles : les attributs dans les classes, les diffrents types de relations entre classes, la cardinalit, etc. Contraintes de type : typage des proprits, etc. Contraintes diverses : les contraintes de visibilit, les mthodes et classes abstraites, etc. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 5. Reprsentation dune Contrainte 5 Une contrainte est reprsent sous la forme dune chane de texte place entre accolades ({}). Une contrainte peut possd un nom. Le nom est prsent sous forme dune chane suivie dun double point (:). Le tout prcdant le texte de la contrainte. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 6. Contraintes et contraintes prdfinies 6 UML permet dassocier une contrainte un, ou plusieurs, lment(s) de modle de diffrentes faons : Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 7. Types de Contraintes 7 Invariant de Classe: une contrainte qui doit tre satisfaite par toutes les instances de la classe. Pr-condition dune opration: une contrainte qui doit toujours tre vrai avant lexcution de lopration. Post-condition dune opration: une contrainte qui doit toujours tre vrai aprs lexcution de lopration. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 8. OCL 8 un langage formel textuel dexpression de contraintes bien adapt aux diagrammes dUML. Acronyme de: Object Constraint Language. Existe depuis la version 1.1 dUML. Peut sappliquer sur la plupart des diagrammes dUML et en particulier au diagramme de classes. Simple utiliser et non ambige. Sari Meriem Diagrammes de Classes 1re Anne Master GL </li><li> 9. Intrt du OCL 9 Cest un langage formel volontairement simple daccs. Peut tre interprt par des outils. Reprsente un juste milieu entre le langage naturel et un langage trs technique (langage mathmatique, informatique, ). Il permet ainsi de limiter les ambiguts, tout en restant accessible. Une expression OCL dcrit une contrainte respecter et ne dcrit absolument pas limplmentation dune mthode. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 10. Typologie des contraintes OCL 10 1. Contexte (context). 2. Invariants (inv). 3. Prconditions et postconditions (pre, post). 4. Rsultat dune mthode (body). 5. Dfinition dattributs et de mthodes (def et letin). 6. Initialisation (init) et volution des attributs (derive). Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 11. Contexte (context) 11 Une contrainte est toujours associe un lment de modle. Cest cet lment qui constitue le contexte de la contrainte. Syntaxe: context peut tre une classe: Exemple: context Compte peut tre une opration: Exemple: context Compte::getSolde() Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 12. Invariants (inv) 12 Un invariant exprime une contrainte prdicative sur un objet qui doit tre respecte en permanence. Syntaxe: inv : Exemple: Le solde dun compte doit toujours tre positif. context Compte inv : solde &gt; 0 Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 13. Prconditions &amp; postconditions (pre, post) 13 Une prcondition permet de spcifier une contrainte prdicative qui doit tre vrifie avant lappel dune opration. Une postcondition permet de spcifier une contrainte prdicative qui doit tre vrifie aprs lappel dune opration. Syntaxe: Prcondition : pre : Postcondition : post : Exemple: context Compte::getSolde() : Real pre : somme &gt; 0 post : result = solde Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 14. Rsultat dune mthode (body) 14 Permet de dfinir directement le rsultat dune opration. Syntaxe: body : Exemple: le rsultat de lappel de lopration getSolde doit tre gal lattribut solde. context Compte::getSolde() : Real body : solde Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 15. Dfinition dattributs et de mthodes (def et letin) 15 let permet de dclarer et de dfinir la valeur (i.e. initialiser) dun attribut qui pourra tre utilis dans lexpression qui suit le in. def permet galement de dclarer et de dfinir la valeur retourne par une opration interne la contrainte. Syntaxe: let = in def : = Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 16. Initialisation et volution des attributs (init, derive) 16 init permet de prciser la valeur initiale dun attribut. derive prcise comment la valeur de ce type dlment volue. Syntaxe: init : derive : Exemple: context Personne::mari : Boolean init : false context Personne::age : Integer derive : date_de_naissance - Date::current() Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 17. Types et oprations utilisables dans OCL 17 I. Types et oprateurs prdfinis II. Types du modle UML III. Collections 1. Ensemble (Set) 2. Ensemble ordonn (OrderedSet) 3. Sac (Bag) 4. Squence (Sequence) : Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 18. Types et oprateurs prdfinis 18Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 19. Types du modle UML 19 Une contrainte OCL peut rfrencer une valeur de type numr. Syntaxe: ::valeur Exemple: la classe Personne possde un attribut genre de type Genre. On peut donc crire la contrainte : context Personne inv : genre = Genre::femme Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 20. Collections 20 Il existe plusieurs sous-types du type abstrait Collection : Ensemble (Set): collection non ordonne dlments uniques. Ensemble ordonn (OrderedSet): collection ordonne dlments uniques. Sac (Bag) :collection non ordonne dlments identifiables (pouvant comporter des doublons). Squence (Sequence): collection ordonne dlments identifiables. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 21. Accs aux attributs et aux oprations (self) 21 Lobjet dsign par le contexte est galement accessible par lexpression self. Syntaxe: self. Exemple: dans le contexte de la classe Compte, on peut utiliser les expressions suivantes : solde self.solde getSolde() self.getSolde() dbiter(1000) self.dbiter(1000) Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 22. Opration sur les classes 22 Toutes les oprations que nous avons dcrites jusquici sappliquaient sur des instances de classe. OCL dispose dune opration prdfinie sur les classes, les interfaces et les numrations qui retourne lensemble de toutes les instances. Exemple: Personne.allInstances() Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 23. Oprations sur les collections 23 OCL a un grand nombre d'oprations prdfinies sur les collections. Syntaxe: collection-&gt;operation collection-&gt;collect(elem | expr) Retourne la collection des valeurs obtenues par application de expr aux lments de collection. collection-&gt;select(elem | expression) Retourne le sous ensemble des lments pour lesquels expression est vrai. collection-&gt;reject(elem | expression) Retourne le sous ensemble des lments sauf lesquels que pour eux lexpression est vrai. collection-&gt;forAll(elem | expr) Retourne vrai si expr est vrai pour tous les lments de collection. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 24. Oprations sur les collections 24 collection-&gt;exists(elem | expr) Retourne vrai si il existe au moins un lment de collection pour lequel expr est vrai. Autre oprations: isEmpty: vrai si self est vide. notEmpty: vrai si self nest pas vide. size(): retourne le nombre dlments (la cardinalit) de self. count(elem):retourne le nombre doccurrences de objet dans self. includes(elem): vrai si elem dans collection excludes(elem): vrai si self ne contient pas lobjet objet. sum(): etourne la somme des lments de self. Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 25. Hritage de contraintes 25 Partout o une instance d'une classe est attendue, une instance d'une sous classe peut lui tre substitue. Cest le concepte de Liskovs Substitution Principle (LSP). Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 26. Consequences de LSP 26 Pour les invariants: Un invariant est toujours hrit 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 1re Anne Master GL </li><li> 27. Exemple 27Sari Meriem Contraintes UML 1re Anne Master GL </li><li> 28. Exemple 28 Dans une socit, le directeur est un employ, nest pas un chmeur et doit avoir plus de 40 ans. De plus, une socit possde exactement un directeur et au moins un employ. context Socit inv : self.directeur-&gt;size()=1 and not(self.directeur.chmeur) and self.directeur.age &gt; 40 and self.employ-&gt;includes(self.directeur) Une personne possde deux parents, lun est une femme et lautre un homme. context Personne inv : parent-&gt;size()=2 implies ( parent-&gt;exists(genre=Genre::homme) and parent-&gt;exists(genre=Genre::femme) ) Sari Meriem Contraintes UML 1re Anne Master GL </li></ol>