Corrigé
Analyse et Conception Orientées Objets
Cette fiche d'exercices corrigés aborde la modélisation dynamique en UML. Elle couvre la création d'instances en diagramme de séquence, la gestion d'un système de feux tricolores, ainsi qu'un cas d'étude complet (RapidPizza) incluant diagramme de classes d'analyse et diagrammes de séquence.
D'après le document Analyse et Conception Orientées Objets
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming, UML, Object-Oriented Analysis and Design · UNIVERSITE DE LA MANOUBA ----- ----- ECOLE NATIONALE DES SCIENCES DE L' · PDF · 3 pages · 2013
Afficher l'aperçu du document
Ce document présente une série d'exercices corrigés en Analyse et Conception Orientées Objets portant sur la modélisation dynamique avec UML, notamment les diagrammes de séquence et de classes d'analyse. Il évalue la capacité à représenter des interactions entre objets et à traduire des spécifications fonctionnelles en diagrammes UML pertinents.
Exercice 1 : Modélisation d'une création d'instance
Cet exercice illustre la création et la sauvegarde d'un objet via un diagramme de séquence lorsqu'un message est reçu d'un acteur extérieur.
Analyse des acteurs et objets
- Acteur extérieur : Entité déclenchant l'action.
- Gestionnaire : Objet recevant le message initial.
- Personne : Instance créable et manipulable.
Séquence des messages
- L'acteur extérieur envoie le message
addPersonneau gestionnaire. - Le gestionnaire crée une nouvelle instance de la classe
Personne. - Le gestionnaire assigne le nom et le prénom à cette instance (via des accesseurs de type
setNometsetPrenom). - Le gestionnaire appelle la méthode
enregistrer()sur l'instancePersonne.
Dans le diagramme de séquence, cela se traduit par :
- Une ligne de vie pour chaque élément : l'acteur extérieur, le gestionnaire et la personne.
- Un message synchrone
addPersonnede l'acteur vers le gestionnaire. - Un message de création (
<<create>>) ciblant l'instance dePersonne. - Les messages d'assignation des attributs envoyés à l'instance.
- Le message
enregistrer()exécuté sur l'objetPersonne.
Exercice 2 : Système de contrôle de feux tricolores
Cet exercice porte sur la modélisation d'un carrefour à 4 feux tricolores synchronisés selon 4 phases de circulation distinctes, en initialisant le système à la phase 4.
Méthodes et objets impliqués
Le système s'articule autour de deux entités principales :
- Feu tricolore :
initialiseFeu(int etatInitial): Initialise l'état du feu (1-rouge, 2-vert, 3-orange).changeEtat(): Incrémente l'état du feu (1 → 2 → 3 → 1).
initialiseSystemeDeControle(): Initialise le système dans sa phase de départ (phase 4).initialiseFeux(): Appelle l'initialisation de chaque feu selon la phase active.changePhase(): Incrémente la phase active (1 → 2 → 3 → 4 → 1).
Séquence des opérations
- Le système de contrôle exécute
initialiseSystemeDeControle()pour se placer en phase 4. - Le système appelle
initialiseFeux(). - La méthode
initialiseFeux()transmet un messageinitialiseFeu(etatInitial)à chacun des 4 feux avec l'état correspondant à la phase 4. - Lors du passage à la phase suivante, le système exécute
changePhase(). - Le système réinvoque
initialiseFeux()ou appellechangeEtat()sur les feux concernés pour actualiser leur état.
Exercice 3 : Étude de cas RapidPizza
L'entreprise RapidPizza souhaite informatiser la gestion de ses commandes, de la préparation et des livraisons réparties sur plusieurs points de vente.
Question 1 : Diagramme de classes d'analyse
Le diagramme d'analyse structure les entités du domaine métier et leurs associations :
- Client : Identifié par
numéroTéléphone. Contient égalementnometadresse. - Commande : Identifiée par
numéroCommandeet caractérisée par un état (en attente, en préparation, en cours de livraison, livrée). - Plat : Défini par
nometprix(indépendant du point de vente). - PointPizza : Représente un restaurant proposant un ensemble de plats.
- Collaborateur : Employé de l'entreprise. Possède des spécialisations :
Gérant,Coordinateur,Livreur,Préparateur. - Boîtier : Équipement électronique associé à un collaborateur pour transmettre les états de disponibilité et de livraison.
Associations principales :
- Un
Clientpasse zéro ou plusieursCommandes. - Une
Commanderegroupe une ou plusieurs lignes de commande associant unPlatet unequantité. - Un
PointPizzamet à disposition une sélection dePlats. - Un
Gérantaffecte lesCommandesaux différentsPointPizzaet répartit lesCollaborateurs.
Question 2 : Diagrammes de séquence des cas d'utilisation
Case 1 : Passer une commande
- Le
Clienttransmet son numéro de téléphone à RapidPizza. - Si le client n'est pas enregistré, le système demande son nom et son adresse pour créer la fiche client.
- Le client sélectionne les plats et les quantités souhaitées.
- Le système vérifie si la combinaison de plats est réalisable par un même Point Pizza.
- Si la commande est valide, RapidPizza génère un numéro unique et enregistre la commande ; sinon, la commande est refusée sans être mémorisée.
Case 2 : Notifier l'avancement d'une pizza
- Le
Coordinateurconsulte sur RapidPizza la liste des commandes attribuées à son Point Pizza. - Lors du démarrage de la préparation d'un plat, il envoie un message de notification d'avancement au système.
- Une fois le plat terminé, il envoie un nouveau message signalant la fin de la préparation.
Case 3 : Affecter une commande
- Le
Gérantconsulte les commandes enregistrées sur RapidPizza. - Il sélectionne une commande en attente et choisit le Point Pizza adéquat.
- RapidPizza met à jour l'affectation de la commande vers le Point Pizza désigné.
Méthode et conseils de modélisation
Pour réussir la modélisation dynamique et statique en UML :
- Identifiez clairement les frontières du système et distinguez les acteurs externes des objets internes.
- Assurez-vous de réutiliser exactement la signature des méthodes fournies dans les énoncés.
- Représentez précisément le cycle de vie des objets (création via
<<create>>, destruction, appels réflexifs). - Vérifiez la cohérence entre le diagramme de classes (structure) et les diagrammes de séquence (dynamique).