Complément Chapitre2

Programming, OCL, UML · lab

Voir tous les documents en génie logiciel

Compl ment Chapitre2

Niveau: II3 ILSI

Enseignante: Rim DRIRA

[email protected]

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