Vous êtes sur la page 1sur 7

Master MIAGE

Module : Gnie Logiciel Objets


Intervenants : B. Delahaye & M. Bakhouya

TD N5 : Langage OCL
Objectifs :

Etudier via des exemples dutilisation du langage OCL

Exercice 1 : retour sur le cours


1.1 Expliquer brivement les notions d'agrgation et composition dans les diagrammes de
classe. Quelle est la diffrence ? Donner un exemple de chaque.
1.2 A quoi servent les diagrammes d'objets lors de la modlisation UML d'un projet
informatique ? Donner un exemple.
1.3 Des socits emploient un ensemble de personnes, chacune d'elle ayant un poste dans ces
socit. Chaque poste est identifi par son type et le salaire correspondant. On distingue
particulirement les directeurs de chaque socits. Une mme personne peut diriger plusieurs
socits mais une socit donne n'est dirige que par une personne. De mme, chaque
personne peut tre employe par plusieurs socits. Les personnes sont identifies par leur
nom, leur prnom, leur genre et leur date de naissance. On souhaite de plus modliser certains
attributs de ces personnes, tels que leur age, leur revenu, s'ils sont maris ou non et s'ils sont
chmeurs ou non. On souhaite aussi modliser les liens de parent entre ces personnes
(enfant/parent et mari/femme). Lorsque deux personnes sont maries, la relation de mariage
est identifie par la date laquelle il est survenu. Finalement, chaque personne possde des
comptes en banques, qui peuvent ventuellement tre partags dans un couple. Ces comptes
sont identifis par leur numro et leur solde (priv).
Donner un diagramme de classe correspondant au systme dcrit ci-dessus.

1 TD N5 : OCL

2 TD N5 : OCL

Exercice 2 Diagramme de classes


Une entreprise souhaite informatiser la gestion de son parc informatique (ordinateurs,
imprimantes, etc.) pour en optimiser la maintenance. Proposer un schma de classes UML
modlisant les spcifications ci-dessous (classes, associations entre classes, cardinalits des
associations, attributs des classes).
1. Un ordinateur est caractris par son numro dinventaire, son adresse rseau (adresse
IP), son modle, la date de son acquisition, la date de la prochaine maintenance
planifie et le systme dexploitation install.
2. Sur chaque ordinateur est install un ensemble de logiciels caractriss par un numro
de licence, un nom et une version.
3. Grce un systme de mots de passe, chaque ordinateur peut tre utilis par plusieurs
employs mais, pour des raisons de scurit des donnes, un employ na le droit
dutiliser quun seul ordinateur. Un employ est caractris par son nom, son prnom
et sa fonction dans lentreprise.
4. Les ordinateurs sont relis un certain nombre de priphriques en rseau
(imprimantes, scanners, etc.). Chaque priphrique est caractris par un numro
dinventaire, son adresse IP, son type, son modle, sa date dacquisition et la date de la
prochaine maintenance planifie. Les priphriques pouvant servir plusieurs
ordinateurs simultanment, un indice de priorit est affect chaque ordinateur pour
chaque priphrique auquel il est connect.
5. Chaque ordinateur et chaque priphrique est localis dans un bureau donn. Les
bureaux sont caractriss par un numro de bureau et le numro du btiment dans
lequel ils se trouvent. Un numro de bureau est unique dans un btiment donn.

Exercice 3
Une entreprise souhaite modliser avec UML le processus de formation de ses employs afin
dinformatiser certaines tches.
Le processus de formation est initialis quand le responsable formation reoit une demande de
formation dun employ. Cet employ peut ventuellement consulter le catalogue des
formations offertes par les organismes agrs par lentreprise. Cette demande est instruite par
le responsable qui transmet son accord ou son refus lemploy.
En cas daccord, le responsable cherche la formation adquate dans le catalogues des
formations agres quil tient jour. Il informe lemploy du contenu de la formation et lui
soumet le liste des prochaines sessions prvues. Lorsque lemploy fait son choix il inscrit
lemploy la session retenue auprs de lorganisme de formation concern.
En cas dempchement lemploy doit avertir au plus vite le responsable formation pour que
celui-ci demande lannulation de linscription.
A la fin de la formation lemploy transmet une apprciation sur le stage suivi et un document
attestant sa prsence.
Le responsable formation contrle la facture envoye par lorganisme de formation.

3 TD N5 : OCL

3.1 Dessiner le diagramme des cas dutilisation.


3.2 Dessiner le schma des classes de cette application, incluant toutes les classes que lon
peut dduire de lnonc, ainsi que les associations entre classes avec leurs cardinalits.
3.3 Dessiner le diagramme de squence associ la demande initiale de lemploy dcrite
dans le deuxime paragraphe de lnonc ; assurer la cohrence avec votre rponse la
question prcdente.
Exercice 4
Le directeur d'une chane d'htels vous demande de concevoir une application de gestion de
ses htels. Un htel est constitu d'un certain nombre de chambres (plus de 2). Un responsable
de l'htel gre la location des chambres (on dira que cette personne dirige l'htel). Chaque
chambre se loue un prix donn. L'accs aux salles de bains est compris dans le prix de la
location d'une chambre. Certaines chambres comportent une salle de bains, mais pas toutes.
Les htes de chambres sans salle de bain peuvent utiliser une salle de bains sur le palier. Ces
dernires peuvent tre utilises par plusieurs htes. Les pices de l'htel qui ne sont ni des
chambres ni des salles de bain (hall d'accueil, cuisine...) ne font pas partie de l'tude (hors
sujet). Des personnes peuvent louer une ou plusieurs chambres d'htel afin d'y rsider. Dans
ce cas, on dit que l'htel hberge ces personnes. Un htel a pour attributs son adresse, le
nombre de pices qu'il contient, le numro de l'tage infrieur et le numro de l'tage
suprieur. I faut pouvoir calculer le chiffre d'affaires de chaque htel. Une chambre a pour
attributs son numro, le nombre de lits qu'elle contient, son prix et son tage. On doit pouvoir
repeindre une chambre avec une couleur choisie, ce qui engendre un cot (rel). Les salles de
bains ont pour attributs leur tage, leur numro, le nombre d'utilisateurs pouvant les utiliser, et
on doit pouvoir les utiliser avec une fonction prenant en paramtre la personne concerne.
Finalement, les personnes sont identifies par leur nom, leur age et leur sexe.
4.1 Donner un diagramme de classes correspondant cette spcification.
Donner une formulation en langage naturel pour chacune des contraintes OCL suivantes :
4.2
context Chambre inv :
self.etage <>13
context SalleDeBains inv :
self.etage <>13
4.3
context Chambre inv :
client->size <= nombreDeLits or
(client->size = nombreDeLits +1 and
client->exists(p:Personne | p.age < 4))
4.4
4 TD N5 : OCL

context Hotel inv :


self.chambre->forAll (c : Chambre |
c.etage <= self.etageMax and c.etage >= self.etageMin)
4.5
context Hotel inv :
Sequence{etageMin..etageMax}->forAll(i : Integer |
if i<>13 then
self.chambre->select(c : Chambre | c.etage = i)->notEmpty
endif)
4.6
context Chambre::repeindre(c:Couleur)
pre : client->isEmpty
post : prix = prix@pre * 1.1
4.7
context SalleDeBains::utiliser(p:Personne)
pre : if chambre->notEmpty then
chambre.client->includes(p)
else
p.chambre.etage = self.etage
endif
post : nbUtilisateurs = nbUtilisateurs@pre + 1
4.8
context Hotel::calculerLoyer() : integer
post : result = self.chambre->select(client->notEmpty).prix->sum

Exercice 5 : Contraintes OCL


Soit le diagramme de classes de la figure suivante qui modlise des personnes, leurs liens de
parent (enfant/parent et mari/femme) et le poste ventuel de ces personnes dans une socit.

5 TD N5 : OCL

Ajouter des contraintes OCL pour les cas suivants :


6. 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
7. Une personne considre comme au chmage ne doit pas avoir des revenus suprieurs
100
8. Une personne possde au plus 2 parents (rfrencs).
9. Si une personne possde deux parents, lun est une femme et lautre un homme.
10. Tous les enfants dune personne ont bien cette personne comme parent et inversement.
11. Pour tre mari, il faut avoir une femme ou un mari.
12. Pour tre mari, il faut avoir plus de 18 ans. Un homme est mari avec exactement une
femme et une femme avec exactement un homme.
Exercice 6
Soit une application bancaire permettant de grer des comptes bancaires, des clients, et des
banques comme suit :
un client peut possder plusieurs comptes
un compte doit avoir un solde toujours positif
une personne peut tre cliente de plusieurs banques
un client dune banque possde au moins un compte dans cette banque
un compte appartient forcment un client
une banque gre plusieurs comptes
une banque possde plusieurs clients
Donner un diagramme de classes respectant ces spcifications, ainsi qu'une spcification OCL
correspondant aux contraintes exprimes. Utiliser des diagrammes objets pour illustrer la
cohrence du diagramme de classes.

Exercice 7 :

6 TD N5 : OCL

7.1 Donnez une expression OCL qui permette d'indiquer que la personne qui travaille dans le
dpartement est la mme que celle qui est employe par l'entreprise.
7.2 Donner une expression OCL qui permette d'indiquer qu'une personne travaillant pour une
entreprise doit tre ge de 18 ans et plus. On suppose que la classe Personne a un attribut
ge.
7.3 Modifier, graphiquement, le diagramme des classes prcdent pour prendre en compte la
contrainte suivante :
context personne inv :
(self.departement -> isEmpty)
xor
(self.Entreprise -> isEmpty)
7.4 Ajouter la contrainte indiquant que deux personnes ne doivent pas avoir le mme nom.
7.5 Aucune personne n'est ge de plus de 130 ans. Le jour d'anniversaire de la personne, son
ge est augment de 1 an. Ajouter l'expression OCL permettant de reprsenter cette
prcondition et cette post-condition associes l'opration anniversaire de Personne.
7.6 Les personnes qui travaillent dans l'entreprise sont ges de 18 65 ans. Donner l'expression OCL correspondante.

7 TD N5 : OCL