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 qu’une personne mariée est forcément majeur

(cid:1) Solution: context Personne inv: marié implies majeur

(cid:1) Trouvez une version plus compacte de l’expression suivante

context Personne inv : if age >=18 then majeur=vrai else majeur=faux endif (cid:1) Solution: context Personne inv: majeur = age >= 18

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

Publicité

(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 l’employé 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

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

Publicité

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) L’information 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. (cid:1) Une classe a un nom et peut contenir des attributs. Elle peut

aussi hériter d’une 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 à l’IDM 2014-2015

Corrigé

10

R.DRIRA ENSI-II3 ILSI Chapitre1: Introduction à l’IDM 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 d’emprunts de chaque livre ne doit pas dépasser le

nombre de copies.

11

R.DRIRA ENSI-II3 ILSI Chapitre1: Introduction à l’IDM 2014-2015

Exercice 3

(cid:1) Elaborer un méta-modèle qui permet de modéliser des maisons

composées de pièces

Publicité

(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 à l’IDM 2014-2015

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 l’exercice 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