Вы находитесь на странице: 1из 13

 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

 Master MIAGE
 Module : 7énie "ogiciel 3 b!ets
 Intervenants : B. Delahaye & M. Bakhouya
TD N°5 : Langage OCL

Objectifs :
 Etudier via des exemples l’utilisation du langage OCL

Exercice 1 : retour sur le cours


1.1 Expliquer brièvement les notions d'agrégation et composition dans les diagrammes de
classe. Quelle est la différence ? Donner un exemple de chaque.

Agrégation : ne classe contient un ensemble d'ob!ets d'une autre classe. "es ob!ets existent
indépendamment de l'agrégat. Exemple # $arnet de contacts%d'adresses.
Composition : $'est une agrégation forte. &l  a un lien entre l'existence du composé et de ses
composants. Exemple # (oiture%roues%moteur.

1.) * quoi servent les diagrammes de composants lors de la modélisation +" d'un pro!et
informatique ? Donner un exemple.

&ls permettent d'exprimer le découpage modulaire d'une application et d'exprimer les


dépendances fonctionnelles entre modules. $ela permet notamment de déterminer l'ordre de
compilation.

1., Des sociétés emploient un ensemble de personnes- chacune d'elle aant un poste dans ces
société. $haque poste est identifié par son tpe et le salaire correspondant. n distingue
particulièrement les directeurs de chaque sociétés. ne m/me personne peut diriger plusieurs
sociétés mais une société donnée n'est dirigée que par une personne. De m/me- chaque
personne peut /tre emploée par plusieurs sociétés. "es personnes sont identifiées par leur
nom- leur prénom- leur genre et leur date de naissance. n souhaite de plus modéliser certains

attributs de ces personnes- tels que leur age- leur revenu- s'ils sont mariés ou non et s'ils sont
ch0meurs ou non. n souhaite aussi modéliser les liens de parenté entre ces personnes
enfant%parent et mari%femme2. "orsque deux personnes sont mariées- la relation de mariage
est identifiée par la date 3 laquelle il est survenu. 4inalement- chaque personne possède des
comptes en banques- qui peuvent éventuellement /tre partagés dans un couple. $es comptes
sont identifiés par leur numéro et leur solde privé2.
Donner un diagramme de classe correspondant au sstème décrit ci5dessus.

c.f. Ex 6.

1 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 1/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

Exercice 2 Diagramme de classes


ne entreprise souhaite informatiser la gestion de son parc informatique ordinateurs-
imprimantes- etc.2 pour en optimiser la maintenance. 8roposer un schéma de classes +"
modélisant les spécifications ci5dessous classes- associations entre classes- cardinalités des

associations- attributs des classes2.


1. n ordinateur est caractérisé par son numéro d9inventaire- son adresse réseau adresse
&82- son modèle- la date de son acquisition- la date de la prochaine maintenance
planifiée et le sstème d9exploitation installé.
). :ur chaque ordinateur est installé un ensemble de logiciels caractérisés par un numéro
de licence- un nom et une version.
,. 7r;ce 3 un sstème de mots de passe- chaque ordinateur peut /tre utilisé par plusieurs
emploés mais- pour des raisons de sécurité des données- un emploé n9a le droit
d9utiliser qu9un seul ordinateur. n emploé est caractérisé par son nom- son prénom
et sa fonction dans l9entreprise.
<. "es ordinateurs sont reliés 3 un certain nombre de périphériques en réseau
imprimantes- scanners- etc.2. $haque périphérique est caractérisé par un numéro
d9inventaire- son adresse &8- son tpe- son modèle- sa date d9acquisition et la date de la
prochaine maintenance planifiée. "es périphériques pouvant servir 3 plusieurs
ordinateurs simultanément- un indice de priorité est affecté 3 chaque ordinateur pour
chaque périphérique auquel il est connecté.
6. $haque ordinateur et chaque périphérique est localisé dans un bureau donné. "es
bureaux sont caractérisés par un numéro de bureau et le numéro du b;timent dans
lequel ils se trouvent. n numéro de bureau est unique dans un b;timent donné.

2 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 2/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

Exercice 3
ne entreprise souhaite modéliser avec +" le processus de formation de ses emploés afin
d9informatiser certaines t;ches.
"e processus de formation est initialisé quand le responsable formation re=oit une demande de

formation d9un emploé. $et emploé peut éventuellement consulter le catalogue des
formations offertes par les organismes agréés par l9entreprise. $ette demande est instruite par
le responsable qui transmet son accord ou son refus 3 l9emploé.
En cas d9accord- le responsable cherche la formation adéquate dans le catalogues des
formations agréées qu9il tient 3 !our. &l informe l9emploé du contenu de la formation et lui
soumet le liste des prochaines sessions prévues. "orsque l9emploé 3 fait son choix il inscrit
l9emploé 3 la session retenue auprès de l9organisme de formation concerné.
En cas d9emp/chement l9emploé doit avertir au plus vite le responsable formation pour que
celui5ci demande l9annulation de l9inscription.
* la fin de la formation l9emploé transmet une appréciation sur le stage suivi et un document
attestant sa présence.
"e responsable formation contr0le la facture envoée par l9organisme de formation.

,.1 Dessiner le diagramme des cas d9utilisation.

3 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 3/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

,.) Dessiner le schéma des classes de cette application- incluant toutes les classes que l9on
peut déduire de l9énoncé- ainsi que les associations entre classes avec leurs cardinalités.

 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 4/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

,., Dessiner le diagramme de séquence associé 3 la demande initiale de l9emploé décrite


dans le deuxième paragraphe de l9énoncé > assurer la cohérence avec votre réponse 3 la
question précédente.

5 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 5/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

Exercice 4
"e directeur d'une chane d'h0tels vous demande de concevoir une application de gestion de
ses h0tels. n h0tel est constitué d'un certain nombre de chambres plus de )2. n responsable
de l'h0tel gère la location des chambres on dira que cette personne dirige l'h0tel2. $haque

chambre se loue
location d'une 3 un prix
chambre. donné. "'accès
$ertaines aux
chambres salles de bains
comportent est compris
une salle de bains-dans
maislepas
prixtoutes.
de la
"es h0tes de chambres sans salle de bain peuvent utiliser une salle de bains sur le palier. $es
dernières peuvent /tre utilisées par plusieurs h0tes. "es pièces de l'h0tel qui ne sont ni des
chambres ni des salles de bain hall d'accueil- cuisine...2 ne font pas partie de l'étude hors
su!et2. Des personnes peuvent louer une ou plusieurs chambres d'h0tel afin d' résider. Dans
ce cas- on dit que l'h0tel héberge ces personnes. n h0tel a pour attributs son adresse- le
nombre de pièces qu'il contient- le numéro de l'étage inférieur et le numéro de l'étage
supérieur. & faut pouvoir calculer le chiffre d'affaires de chaque h0tel. ne chambre a pour
attributs son numéro- le nombre de lits qu'elle contient- son prix et son étage. n doit pouvoir
repeindre une chambre avec une couleur choisie- ce qui engendre un co@t réel2. "es salles de
bains ont pour attributs leur étage- leur numéro- le nombre d'utilisateurs pouvant les utiliser- et
on doit pouvoir les utiliser avec une fonction prenant en paramètre la personne concernée.
4inalement- les personnes sont identifiées par leur nom- leur age et leur sexe.

<.1 Donner un diagramme de classes correspondant 3 cette spécification.

! TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 6/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

DonneA une formulation en langage naturel pour chacune des contraintes $" suivantes #

<.1
context $hambre inv #

self.etage BC1,
context :alleDeains inv #
self.etage BC1,

n h0tel ne contient !amais d'étage numéro 1,

<.)
context $hambre inv #
client5CsiAe B nombreDe"its or
  client5CsiAe  nombreDe"its F1 and
  client5Cexistsp#8ersonne G p.age B <22

"e nombre de personnes par chambre doit /tre inférieur ou égal au nombre de lits dans la
chambre louée. "es enfants accompagnés2 de moins de < ans ne comptent pas dans cette
règle de calcul 3 hauteur d'un enfant de moins de < ans maximum par chambre2

<.,
context Hotel inv #
  self.chambre5Cfor*ll c # $hambre G

  dec.etage
"'étage chaqueB self.etage+ax
chambre and c.etage
est compris entre leC self.etage+in2
premier et le dernier étage de l'h0tel

<.<
context Hotel inv #
  :equenceIetage+in..etage+axJ5Cfor*lli # &nteger G
  if iBC1, then
  self.chambre5Cselectc # $hambre G c.etage  i25CnotEmpt
  endif2

$haque étage possède au moins une chambre sauf le 1, qui n'existe pas- bien entendu...2

<.6
context $hambre##repeindrec#$ouleur2
  pre # client5CisEmpt
  post # prix  prixKpre L 1.1

n ne peut repeindre une chambre que si elle n'est pas louée. ne fois repeinte- une chambre
co@te 1MN de plus.

<.O

" TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 7/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

context :alleDeains##utiliserp#8ersonne2
  pre # if chambre5CnotEmpt then
  chambre.client5Cincludesp2
  else

   p.chambre.etage  self.etage
endif
  post # nbtilisateurs  nbtilisateursKpre F 1

ne salle de bain privative ne peut /tre utilisée que par des personnes qui louent la chambre
contenant la salle de bains et une salle de bains sur le palier ne peut /tre utilisée que par les
clients qui logent sur le m/me palier

<.P
context Hotel##calculer"oer2 # integer
  post # result  self.chambre5Cselectclient5CnotEmpt2.prix5Csum

"e loer de l'h0tel est égal 3 la somme du prix de toutes les chambres louées

Exercice 5 : Contraintes OCL


:oit le diagramme de classes de la figure suivante qui modélise des personnes- leurs liens de
parenté enfant%parent et mari%femme2 et le poste éventuel de ces personnes dans une société.

# TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 8/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

*!outer des contraintes pour les cas suivants #


1. Dans une société- le directeur est un emploé- n9est pas un ch0meur et doit avoir plus
de <M ans. De plus- une société possède exactement un directeur et au moins un
emploé

context
inv # :ociété
  self.directeur5CsiAe21 and
  notself.directeur.ch0meur2 and
  self.directeur.age C <M and
  self.emploé5Cincludesself.directeur2

). ne personne considérée comme au ch0mage ne doit pas avoir des revenus supérieurs
3 1MM 
context 8ersonne
inv #
  let revenus # Real  self.poste.salaire5Csum2 in
  if ch0meur then
  revenus B 1MM
  else
  revenus C 1MM
  endif

,. ne personne possède au plus ) parents référencés2.

context 8ersonne
inv # parent5CsiAe2B)

<. :i une personne possède deux parents- l9un est une femme et l9autre un homme.
context 8ersonne
inv #
  parent5CsiAe2) implies
   parent5Cexistsgenre7enre##homme2 and
  parent5Cexistsgenre7enre##femme2 2

6. Sous les enfants d9une personne ont bien cette personne comme parent et inversement.
context 8ersonne
inv #
  enfant5CnotEmpt2 implies
  enfant5Cfor*ll p # 8ersonne G p.parents5Cincludesself22

context 8ersonne
inv #
  parent5CnotEmpt2 implies

  parent5Cfor*ll  p # 8ersonne G p.enfant5Cincludes self22

$ TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 9/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

O. 8our /tre marié- il faut avoir une femme ou un mari.


context 8ersonne##marié
derive # self.femme5CnotEmpt2 or self.mari5CnotEmpt2

P. 8our /tre marié- il faut avoir plus de 1T ans. n homme est marié avec exactement une
femme et une femme avec exactement un homme.

context 8ersonne
inv #
self.marié implies
self.genre7enre##homme implies 
  self.femme5CsiAe21 and
  self.femme.genre7enre##femme2
  and self.genre7enre##femme implies 
  self.mari5CsiAe21 and
  self.mari.genre7enre##homme2
  and self.age C1T

Exercice 6 :
:oit une application bancaire permettant de gérer des comptes bancaires- des clients- et des
banques. n souhaite intégrer les contraintes suivantes dans le modèle suivant#
• un compte doit avoir un solde tou!ours positif
• un client peut posséder plusieurs comptes
• une personne peut /tre cliente de plusieurs banques
• un client d9une banque possède au moins un compte dans cette banque
• un compte appartient forcément 3 un client
• une banque gère plusieurs comptes
• une banque possède plusieurs clients

$ependant- rien ne spécifie- dans ce diagramme- que le solde du client doit tou!ours /tre
positif. n peut simplement a!outer une note précisant cette contrainte Isolde C MJ2- comme
le montre la figure suivant #
1% TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 10/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

"e diagramme d9ob!ets suivant est valide vis535vis du diagramme de classes de la figure
suivant mais ne respectant pas la spécification du problème. $e diagramme d9ob!ets montre
une personne 812 aant un compte dans une banque sans en /tre client. $e diagramme
montre également un client 8)2 d9une banque n9 possédant pas de compte.

"e diagramme de classes suivant accompagné des contraintes $" est adapté 3 la
spécification du problème.
 
context $ompte
inv # solde C M

context $ompte ## débitersomme # int2


pre # somme C M
post # solde  soldeKpre 5 somme

context $ompte
inv # banque.clients 5C includes propriétaire2

11 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 11/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

Exercice  :

P.1 DonneA une expression $" qui permette d'indiquer que la personne qui travaille dans le
département est la m/me que celle qui est emploée par l'entreprise.

  $ntext 8ersonne inv #


self.emploeur  self.departement.emploeur

P.) Donner une expression $" qui permette d'indiquer qu'une personne travaillant pour une
entreprise doit /tre ;gée de 1T ans et plus. n suppose que la classe 8ersonne a un attribut
;ge.
  context 8ersonne inv #
self.age C 1T

P., +odifier- graphiquement- le diagramme des classes précédent pour prendre en compte la
contrainte suivante #

context personne inv #


  self.departement 5C isEmpt2
  xor
  self.Entreprise 5C isEmpt2

12 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 12/13


 

5/19/2018 TD5 Cor re c tion - slide pdf.c om

P.< *!outer la contrainte indiquant que deux personnes ne doivent pas avoir le m/me nom.
  $ontext 8ersonne inv #
8ersonne.allinstances 5C for*llp1-p) G p1BCp) implies p1.nom BC p).nom2

P.6 *ucune personne n'est ;gée de plus de 1,M ans. "e !our d'anniversaire de la personne- son
;ge est augmenté de 1 an. *!outer l'expression $" permettant de représenter cette
précondition et cette post5condition associées 3 l'opération anniversaire de 8ersonne.

  context 8ersonne # #anniversaire2

pre # age C 1 and age B1,M


post # age  ageKpre F1

P.O "es personnes qui travaillent dans l'entreprise sont ;gées de 1T 3 O6 ans. Donner l'expres5
sion $" correspondante.
  context Entreprise inv #
self.emploeur.for*ll8ersonne p G p.age C1T and p.age BO62

13 TD N°5 : OCL

http://slide pdf.c om/re a de r/full/td5-c or re c tion 13/13