Exercices UML : Placement des informations
Exercice 1 (Développeur)
1) Diagramme de généralisation
Classes : Développeur, Programmeur, Spécifieur, Équipe, Ordinateur.
Généralisation : Une classe Objet englobe toutes les autres classes.
2) Diagramme de classes avec agrégation et multiplicités
Associations :
- Équipe {est composée de} Développeur (multiplicité : *)
- Équipe {travaille pour} Entreprise (multiplicité : 1)
- Équipe possède un logo (entier)
- Développeur {utilise} un Ordinateur (multiplicité : 1)
L’agrégation est utilisée pour Entreprise et Ordinateur si applicable.
3) Attributs et méthodes avec types et soulignements
Classes :
- Développeur : logo (int), monOrdinateur (Ordinateur)
- Programmeur (spécialisation de Développeur) : logo (int)
- Spécifieur (spécialisation de Développeur) : logo (int)
- Équipe : logo (int), mesDéveloppeurs (ListeDéveloppeur)
- Ordinateur : monDéveloppeur (Développeur)
Méthodes :
- Développeur : void réfléchir()
- Spécifieur : void dialoguerAvecLUtilisateur()
4) Diagramme d’objets
Instances :
- germain et gertrude (Programmeur), gérard (Spécifieur)
- gereflehi (Équipe), gertoupourvou (Entreprise)
- Ordinateur1, Ordinateur2, Ordinateur3 (Ordinateur)
Relations :
- gereflehi {travaille pour} gertoupourvou
- gereflehi {est composée de} germain, gertrude, gérard
- germain et gertrude {utilisent} Ordinateur1 et Ordinateur2 (logo identique à gereflehi)
- gérard {utilise} Ordinateur3 (logo différent)
Exercice 2 (Football)
1) Diagramme de généralisation
Classes : Joueur, JoueurDeChamp, Gardien, Équipe.
Généralisation : Une classe Objet englobe toutes les autres classes.
2) Diagramme de classes avec agrégation et multiplicités
Associations :
- Équipe {est composée de} Joueur (multiplicité : *)
- Équipe {représente} un pays (multiplicité : 1)
- Équipe possède une couleur (int)
- Joueur {porte} un Maillot (multiplicité : 1)
L’agrégation est utilisée pour pays et Maillot si applicable.
3) Attributs et méthodes avec types et soulignements
Classes :
- Joueur : monMaillot (Maillot)
- JoueurDeChamp (spécialisation de Joueur) : couleur (int)
- Gardien (spécialisation de Joueur) : monMaillot (Maillot, couleur noire)
- Équipe : couleur (int), mesJoueurs (ListeJoueur)
- Maillot : monJoueur (Joueur)
Méthodes :
- Joueur : void utiliserLesPieds()
- Gardien : void utiliserLesMains()
- Équipe : void créerMesJoueurs()
Exercice 3 (Restaurant)
1) Diagramme de généralisation
Classes : Client, Adulte, Enfant, Nourriture, Boisson, Plat, CarafeEau, Café, BouteilleVin, Entrée, Milieu, Dessert.
Généralisation : Une classe Objet englobe toutes les autres classes.
2) Diagramme de classes avec multiplicités
Associations :
- Restaurant {est composée de} Table (multiplicité : *)
- Client {est à} Table (multiplicité : *)
- Table {a} Nourriture (multiplicité : *)
- Client {mange son} Plat (multiplicité : 1)
- Client {boit sa} Boisson (multiplicité : *)
3) Attributs et méthodes avec types et soulignements
Classes :
- Client : monPlat (Plat), mesBoissons (ListeBoisson)
- Adulte (spécialisation de Client) : mesBoissons (ListeBoisson)
- Enfant (spécialisation de Client) : prix (int, non applicable pour vin/café)
- Nourriture : prix (int)
- Boisson (spécialisation de Nourriture) : prix (int)
- CarafeEau (spécialisation de Boisson) : prix (int, = 0)
- Café (spécialisation de Boisson) : prix (int, = 10)
- Plat (spécialisation de Nourriture) : prix (int)
- Restaurant : mesTables (ListeTable), mesClients (ListeClient)
- Table : mesClients (ListeClient), maNourriture (ListeNourriture)
Méthodes :
- Client : void seMettreATable(Table), void boireDeLEau(Eau)
- Adulte : void boireDuVin(Vin)
- Restaurant : void poserNourritureSur(Table), void débarrasserLesTables(), void afficherLesClients()
- Table : void afficherMesClients()
FAQ
1. Qu’est-ce qu’une agrégation en UML ?
Une agrégation représente une relation "partie de" où une classe est composée d’autres classes, mais ces dernières peuvent exister indépendamment.
2. Quelle est la différence entre généralisation et spécialisation ?
La généralisation est une relation "est un" où une classe englobe d’autres classes (ex. : Client est un Objet). La spécialisation est l’inverse (ex. : Adulte est un Client).
3. Comment placer les multiplicités dans un diagramme UML ?
Les multiplicités (1, *, etc.) s’indiquent près des associations pour préciser le nombre d’instances possibles (ex. : Équipe {est composée de} * Développeur).