Vous êtes sur la page 1sur 8

Analyse, Conception et Programmation par objets

Exercices UML : diagrammes de classes

Centre de Calcul Fabien Moutarde et Norbert Kajler


fmoutarde, kajlerg@cc.ensmp.fr

60 Bd. Saint Michel 75272 Paris Cedex 06


(Derni` ere mise a ` jour le 17 septembre 2008)

1 Avions
Une compagnie a erienne veut d evelopper un logiciel de gestion int egr ee des avions, des e quipages et des vols. Sa otte est actuellement constitu ee de trois mod` eles davion : Airbus A320, Boeing 747 et Concorde. L equipage dun avion se compose toujours dun pilote, dun copilote et de plusieurs h otesses (en nombre d ependant du type davion). Chacune de ces personnes est identi ee par son nom et sa fonction. Les vols sont identi es par la tour de contr ole de la eroport dOrly par leur num ero, origine, et destination. Proposer un (ou plusieurs) diagramme(s) de classes r epondant a ` ce cahier des charges.

2 Catalogue de pi` eces d etach ees


Une entreprise veut informatiser son catalogue de pi` eces d etach ees. Elle distingue deux types de pi` eces : dune part les pi` eces e l ementaires (achet ees telles quelles a ` un fournisseur ext erieur), et dautre part les pi` eces composites obtenues par assemblage dautres pi` eces ( el ementaires ou composites). Chaque pi` ece est identi ee par son nom. Le prix de revient dune pi` ece e l ementaire est simplement son co ut unitaire, tandis que celui dune pi` ece composite est la somme dun co ut dassemblage et des prix des pi` eces la composant. On doit pouvoir : calculer automatiquement le prix des pi` eces composites, afcher le catalogue (noms et prix de revient des pi` eces), afcher les informations d etaill ees sur une pi` ece (fournisseur, ou bien prix dassemblage et liste des composants, selon son type). Trouver un diagramme de classes r epondant a ` ce cahier des charges.

3 Soci et e humaine
Dans une certaine soci et e humaine (plut ot traditionnaliste...), les lois r eglementant les relations entre personnes (hommes, femmes, enfants, ...) sont les suivantes : a) Aucune personne ne peut e tre a ` la fois un homme et une femme. b) Chaque personne est obligatoirement un homme ou une femme. c) Les femmes ont au plus un mari. d) Seuls les hommes peuvent avoir une e pouse, qui doit e tre une femme. e) Les hommes ont au plus une e pouse. f) Une m` ere est obligatoirement une femme mari ee. g) Seules les femmes peuvent avoir un mari qui doit e tre un homme. h) Seules les femmes majeures peuvent e tre mari ees. Imaginer un diagramme de classes satisfaisant lensemble de ces exigences.

4 Billetterie SNCF
Dans une gare, on veut construire un syst` eme permettant de d elivrer les billets de train et faire des statistiques journali` eres (nombre de billets d elivr es, nombre de billets par cat egorie, liste des gares de d epart, nombre de billets pour un parcours sup erieur a ` 250km, etc...). Les r` egles suivantes devront e tre prises en compte : 1. Le co ut dun trajet est proportionnel au nombre de kilom` etres parcourus. 2. Les trajets en TGV sont major es dun suppl ement proportionnel au nombre de kilom` etres parcourus et dun co ut de r eservation d ependant de lhoraire et du trajet. 3. Un client peut b en ecier dune r eduction (pourcentage), qui ne sapplique pas aux suppl ements TGV. Donner un diagramme de classes du futur syst` eme. 1

Deuxi` eme partie

CORRECTIONS
1 Avions
pilote Avion modle : string appareil 1 Aroport nom : string origine 1 destination * numro : integer 1 0..1 * 0..1 0..1 Vol {fonction == service} 0..1 {Nombre dhotesses dpend du modle dAvion...} copilote nom : string fonction : foncEquipage 1 htesses 2..* {fonction == pilotage} 1 MembreEquipage

F IG . 1 Un premier corrig e possible pour les avions

Avion

1 appareil

MembreEquipage nom : string

B747

A320

Concorde

Pilote heuresDeVol : integer pilote 1 1 copilote 0..1 Equipage Vol 1 personnel 0..1 0..1

Htesse htesses 1..*

origine Aroport nom : string 1 1 destination

0..1 *

0..1

numro : integer

{Nombre dhtesses dpend du type dappareil}

F IG . 2 Un second corrig e possible pour les avions

2 Catalogue de pi` eces d etach ees


Pice Catalogue 0..1 +afficher() item * nom : string /prix : real +calculerPrix() +afficher() +afficherDtails() composant 2..*

{disjoint, complete} PiceElmentaire cotUnitaire : real fournisseur : string +calculerPrix() +afficherDtails()

* PiceComposite

cotAssemblage : real +calculerPrix() +afficherDtails()

F IG . 3 Un corrig e possible pour le catalogue de pi` eces d etach ees

3 Soci et e humaine
Personne nom : string age : integer {(card_enfant > 0) ==> (card_mari == 1)} * enfant

{complete,disjoint} 1 mre Homme mari 0..1 pouse 0..1 Femme

{(card_mari == 1) ==> (age >= 18)}

F IG . 4 Un premier corrig e possible pour la soci et e humaine

{card_mari==1 ==> sexe==fminin && age>=18}

{pouse.sexe == fminin} {mari.sexe == masculin} 0..1 mari

mariage pouse 0..1 {card_pouse==1 ==> sexe==masculin} Personne age : integer sexe : genre parent 2

* enfant

{(card_enfant>0 && sexe==fminin) ==> card_mari==1}

F IG . 5 Un second corrig e possible pour la soci et e humaine

4 Billeterie SNCF
Billeterie 1 +dlivrerBillet() +faireStatistiques() ticket Billet prixKilometrique : real tauxRduction : real tarif : real +calculerTarif() * * origine * localisation 1 Gare nom : string 1 1 destination

* 1 itinraire Trajet

BilletTGV supplmentKilomtrique : real horaire : heure jour : date +calculerTarif() calculerMajoration()

nombreKilomtres : integer +longueur():integer

F IG . 6 Un corrig e possible pour la billeterie SNCF