Compl ment Chapitre2
Niveau: II3 ILSI
Enseignante: Rim DRIRA
Bureau 215
AU: 2014/2015
Exercices OCL
2
16/10/2014
1
Exercice1
(cid:1) Ajoutez un attribut m re de type Personne
dans la classe Personne.
(cid:1) Ecrivez une contrainte pr cisant que la m re
d'une personne ne peut tre cette personne
elle-m me et que l' ge de la m re doit tre
sup rieur celui de la personne
Solution:
context Personne inv:
self.mere <> self and self.mere.age > self.age
3
4
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
Exercice2
(cid:1) Indiquez quune personne mari e est forc ment majeur
(cid:1) Solution: context Personne inv: mari implies majeur
(cid:1) Trouvez une version plus compacte de lexpression suivante
context Personne inv :
if age >=18 then majeur=vrai
else majeur=faux endif
(cid:1) Solution: context Personne inv: majeur = age >= 18
Publicité
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
16/10/2014
2
Exercice3
(cid:1) Les deux contraintes suivantes sont-elles quivalentes ?
(cid:1) Contexte C1 inv: c2->forAll(c:C2| c.c3->notEmpty() implies c.attr2=c.c3.attr3)
(cid:1) Contexte C2 inv: C2.allInstances()->forAll(c:C2| | c.c3->notEmpty() implies
c.attr2=c.c3.attr3)
Solution
(cid:1) NON : la premi re dit que pour des instances de C2 et C3 li es avec une instance de
C1, les attributs attr2 et attr3 sont gaux, mais n'impose rien des instances de C2
et C3 non li es une instance de C1 (et il y en a cause de la multiplicit ).
(cid:1) La deuxi me dit que pour tout couple d'instances de C2 et C3 li es, ces deux
attributs sont gaux.
5
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
Exercice4
Exprimer en OCL les contraintes suivantes:
Dans une compagnie, un manager doit travailler et avoir plus de 40 ans. Le nombre d'employ d'une
compagnie est non nul
Une personne consid r e comme au ch mage ne doit pas avoir de salaires et une personne qui travaille
doit avoir au moins un revenu de 500 DT par mois.
Dans le contexte de la classe Job: l ge de lemploy doit tre sup rieur 21.
Tous les enfants d'une personne ont bien cette personne comme parent et inversement
1.
2.
3.
4.
6
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
16/10/2014
Publicité
3
Exercice4
1. context Company
inv: self.manager.isUnemployed = false and self.manager.age > 40 and
self.employee -> notEmpty()
2. context Person
Inv: let money : Real = self.Job.salary->sum() in
if isUnemployed then money =0 else money >= 500
Endif
Ou bien
context Person inv:
if isUnemployed=true then self.Job ->isEmpty() else self.Job.salary->sum() >= 500
3. context Job inv: self.employee.age > 21
4. context Person inv: children -> notEmpty() implies children -> forAll ( p : Person
|p.parents -> includes(self))
context Person inv: parents -> forAll ( p : Person |p.children -> includes (self))
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
Exercices m ta-mod lisation et
profil UML
7
8
16/10/2014
4
16/10/2014
Exercice 1
(cid:1) Nous allons d velopper une version simplifi e des diagrammes de
classes UML (package, classes, attributs).
(cid:1) Linformation qui nous int resse est la suivante :
(cid:1) Un diagramme de classes contient des packages. Un
package a un nom et contient des classes.
(cid:1) Un package peut importer un autre package.
Publicité
(cid:1) Une classe a un nom et peut contenir des attributs. Elle peut
aussi h riter dune autre classe.
(cid:1) Un attribut a un nom et une visibilit qui peut tre soit
public soit private
(cid:1) Un attribut a un type qui peut tre soit un type de base (string,
integer, boolean), soit une classe du diagramme.
9
R.DRIRA ENSI-II3 ILSI Chapitre1: Introduction lIDM 2014-2015
Corrig
10
R.DRIRA ENSI-II3 ILSI Chapitre1: Introduction lIDM 2014-2015
5
Exercice2
(cid:1) Elaborer un m ta-mod le qui permet de mod liser des librairies
g rant des livres, des membres et des emprunts.
(cid:1) Chaque livre poss de un nombre de copies.
(cid:1) Un membre peut emprunter plusieurs livres.
(cid:1) Chaque emprunt concerne un livre et un membre
(cid:1) Le nombre demprunts de chaque livre ne doit pas d passer le
nombre de copies.
11
R.DRIRA ENSI-II3 ILSI Chapitre1: Introduction lIDM 2014-2015
Exercice 3
(cid:1) Elaborer un m ta-mod le qui permet de mod liser des maisons
compos es de pi ces
(cid:1) Une pi ce poss de 4 murs, 2 fen tres et une porte
(cid:1) Un mur poss de une porte ou une fen tre mais pas les 2 la fois
(cid:1) Deux actions sont associ es une porte ou une fen tre : ouvrir et
fermer
12
R.DRIRA ENSI-II3 ILSI Chapitre1: Introduction lIDM 2014-2015
Publicité
16/10/2014
6
16/10/2014
Exercice 3
(cid:1) Elaborer un m ta-mod le qui permet de mod liser des
diagrammes comme tant des carr s reli s par des fl ches. Une
fl che ne devra pas avoir le m me carr comme source et
destination.
(cid:1) Donner un mod le conforme au m ta-mod le pr c dent et qui
repr sente le diagramme suivant:
13
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
Exercice4
(cid:1) D finir un profil UML qui permet de mod liser des
diagrammes comme tant des carr s reli s avec des fl ches?
14
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
7
Exercice 5
(cid:1) Se base sur lexercice 4 MAIS
(cid:1) Profil un peu plus d taill qui r pond l nonc :
(cid:1) les carr s poss dent un longueur de c t (enti re) et une couleur de
fond parmi bleu, blanc ou rouge
(cid:1) une fl che est soit pleine, soit pointill e
15
R.DRIRA ENSI-II3 ILSI Chapitre2: Principes et standards de MDA 2014-2015
16/10/2014
8