Exercice corrigé UML - Analyse et Modélisation
Exercice corrigé UML - Analyse et Modélisation
Module : Méthodologie
UML
SMI 5
Exercices corrigés et sujets
d’examens
Pr. Mohamed RIDA
Après la saisie des articles, le client peut présenter au caissier des tickets
de réduction pour certaine articles. Lorsque le paiement est terminé, la
caisse transmet les informations sur le nombre des articles vendus au
système de gestion de stocks.
Tous les matins, le responsable du magasin initialise les caisses pour la
journée.
Questions :
Exercice 2 : Caisse enregistreuse 1. Identifier les acteurs du système et citer ceux qui sont primaires
et ceux qui sont secondaires.
4
Solution :
1)
2)
informations sur les produits. Ces opérations doivent être précédées d'une
authentification plus approfondie lors de laquelle l'ingénieur précise son
nom, son service et donne un mot de passe qui est vérifié en contactant le
système de gestion des personnels.
Toutes les opérations (consultation et mise à jour) donnent lieu à un Exercice 4 : Processus de formation des employés
enregistrement dans le journal des accès et peuvent optionnellement
s'accompagner d'une impression des documents accédés.
d’une entreprise
1. on identifiera les acteurs du système
2. dessiner le diagramme de contexte statique du système Dans le cadre de l’amélioration qu’elle veut apporter à son système
3. construire le diagramme de cas d'utilisation d’information, une entreprise souhaite modéliser, dans un premier temps,
le processus de formation de ses employés afin que quelques unes de leurs
Solution : tâches soient informatisées.
1) 2) 1. le processus de formation est initialisé lorsque le responsable
de formation reçoit une demande de formation de la part d’un
employé. Cette demande est instruite par le responsable qui la
qualifie et transmet son accord ou son désaccord à l’intéressé.
2. en cas d’accord, le responsable recherche dans le catalogue des
formations agréées un stage qui correspond à la demande. Il
informe l’employé du contenue de la formation et lui propose
une liste des prochaines. Lorsque l’employé a fait son choix, le
responsable de formation inscrit le participant à la session
auprès de l’organisme de formation concerné.
3) 3. en cas d’empêchement, l’employé doit informer le responsable
de formation au plutôt pour annuler l’inscription ou la
demande.
4. à la fin de sa formation, l’employé doit remettre au responsable
de formation une appréciation sur le stage qu’il a effectué, ainsi
qu’un document justifiant de sa présence.
5. le responsable de formation contrôle par la suite la facture que
l’organisme de formation lui a envoyé avant de la transmettre
au comptable d’achats.
Questions :
Solution :
1) Stéréotypes :
3)
4)
2)
Loop : possibilité de répétition
Alt : équivalent à switch case en c
Opt : présence d’une option que l’utilisateur pourrait choisir.
7
Solution :
Partie II : Modélisation statique (analyse du
domaine)
Diagrammes de classes
Exercice 1
Questions :
1. Déterminer la relation statique appropriée (généralisation,
composition, agrégation ou association) dans chaque phrase de
l’énoncé précédent.
2. dessiner le diagramme de classe correspondant.
Solution :
11
13
Les sources
Contraintes OCL
15
16
Diagrammes d’interaction
Exercice 1 : Bibliothèque
Le diagramme de cas d'utilisation de la figure suivante modélise la gestion
simplifiée d'une bibliothèque.
Exercice 2 : Publiphone
Cette étude concerne un système simplifié de publiphone à pièces.
1. le prix minimal d’une communication interurbaine est de
2 DH
2. après l’introduction de la monnaie, l’utilisateur a 2
minutes pour composer son numéro
3. la ligne peut être libre ou occupée
4. le correspondant peut raccrocher le premier
5. le publiphone consomme de l’argent dès que l’appelé
décroche et à chaque unité de temps. Le fonctionnement de la bibliothèque est le suivant : une bibliothèque
6. ou peut ajouter des pièces à tout moment propose à ses adhérents des œuvres littéraires. Les œuvres peuvent être
7. lors du raccrochage, le solde de la monnaie est rendu. présentes en plusieurs exemplaires. Un adhérent peut
A partir de ces six phrases élaborer le diagramme d’états du publiphone. Emprunter jusqu’à trois livres.
Solution :
Questions :
17
Ecrire à l'aide d'un diagramme de séquence, un scenario d'emprunt avec Exercice 2 : Club vidéo
succès. Considérer le système comme une boîte noire et ne pas chercher à
Le diagramme de séquence suivant décrit ce qui se passe lorsqu'un
montrer les objets au cœur du système.
adhérent du club Vidéo rend des cassettes pour une boutique.
On suppose à présent qu'un diagramme de classes a été construit. Le but
est à présent de montrer comment des objets au cœur du système
interagissent pour réaliser les fonctions des cas d'utilisation.
Le diagramme de classes est :
18
20
personnes. Les prix des chambres dépendent des saisons de l’année (basse
saison, haute saison).
Réservation d’une chambre
Un utilisateur peut faire des réservations. Le système fournit une interface
au réceptionniste pour choisir une chambre correspondant aux besoins
d’un client (taille et type de chambre, et la période de réservation
demandée). Le coût de la réservation est indiqué. Le système garantit
qu’une chambre ne sera pas réservée par deux clients en même temps et
que le nombre de personnes spécifiées ne dépasse pas le nombre
maximum d’occupants.
Editer les réservations
Un administrateur peut obtenir une liste de chambres et le nombre de
réservations par chambre. Le système propose aussi de lister l’ensemble
des réservations pour une chambre donnée. En sélectionnant une chambre,
ou en tapant directement l’identifiant de la chambre, le système présente
un calendrier contenant les réservations (passées ou futures). Le calendrier
Etude de cas : Gestion des chambres d’hôtel des réservations doit permettre de connaître des informations comme les
noms des occupants, la durée de la réservation, et ce que ça leur coûtera. Il
doit être possible de supprimer une réservation si un client l’annule. Le
Le système étudié consiste à concevoir un système d’information de
système peut fournir une synthèse par chambre (son nom, le nombre de
gestion d’un hôtel. En quelques mots, l’utilisation du système doit
réservations effectuées sur une période et la recette correspondant à cette
permettre de réserver différents types de chambre d’hôtel sur certaines
chambre).
périodes et pour un certain nombre de personnes qui y seront hébergées. Il
y a des clients particuliers et des sociétés. Voici les besoins principaux du
Questions : mêmes questions que l’étude de cas précédente
système de réservation de chambres d’hôtel.
Information sur les chambres
Le système doit permettre de récolter des informations sur les chambres Examen d’UML pour SMI 5 (2012-2013)
disponibles à la réservation. Un administrateur peut créer de nouvelles
chambres, modifier certaines existantes, et en supprimer. Toute chambre Exercice 1.
est qualifiée par une catégorie, “chambre standard”, “chambre luxe” ou
“chambre business”. Voici des exigences (simplifiées) qui décrivent le fonctionnement du site
Des catégories pourront être ajoutées. Chaque chambre a un nom qui Internet Ebay :
permet aux employés de l’hôtel et les clients de l’identifier. Cela peut être Tout internaute peut se créer un compte sous réserve qu’il
un simple numéro ou un nom comme : “La suite présidentielle”. Un prix à possède une adresse mail.
la nuit est associé à chaque chambre, ainsi qu’un nombre maximum de Un internaute inscrit peut mettre en vente un ou plusieurs
articles.
21
Le système permet de vendre les articles au prix le plus élevé Tout le monde a un rôle dans l'organisation des jeux : "juge à l’arrivée,
proposé par un internaute. chronométreur, juge de parcours…. " et pour des raisons pratiques sera
Lorsque deux internautes ont finalisé une transaction, ils identifié par un N°Matricule. On gèrera aussi leur nom et leurs
laissent une information sur le déroulement de la transaction. coordonnées.
A chaque mise en vente d’article, le vendeur paye un prix
forfaitaire de 10 DH à Ebay. Lors d’une transaction, c’est Chaque épreuve a lieu dans une des stations de la région. Une même
l’acheteur qui paye des frais à Ebay (5% du montant de la station dont on connaît le nom et l'altitude peut accueillir plusieurs
transaction). épreuves mais à des jours différents et du même type. A l'organisation
Dans tous les cas les paiements s’effectuent par carte de crédit d'une épreuve sont affectés plusieurs responsables.
via le système PayPal (c’est un système qui permet le
payement de manière sécurisée sur Internet). Les responsables peuvent s'occuper de plusieurs épreuves. Ces dernières
N’importe qui peut signaler le « mauvais » comportement d’un ont un Code alphabétique. Chaque épreuve fait partie d'une discipline et
internaute (transaction non honorée, …). L’administrateur du d'une seule. Elles se déroulent quelquefois en plusieurs manches (parties).
site peut alors, s’il le juge nécessaire, désactiver le compte de
l’internaute. Chaque concurrent représente un Pays et participe à une ou plusieurs
Questions : épreuves. Il peut pratiquer plusieurs disciplines. Dans les manches d'une
1) Identifiez les acteurs du système, citez ceux qui sont primaires épreuve il porte toujours le même numéro de dossard mais en change pour
et ceux qui sont secondaires. (2 pt) une autre épreuve.
2) Construire un diagramme de contexte. (3pt)
3) Construire un diagramme de cas d’utilisation complet pour le A l'issue de chaque manche, le système doit enregistrer, selon l’épreuve, le
système étudié. (4 pt) temps (Ski , …. ) ou le nombre de points de chaque concurrent.
22
2. Citer la différence entre un diagramme d'activité et un place une méthode de rayonnages qui nous permet de ranger rapidement et
diagramme d'état-transition. facilement les ouvrages. Ainsi, tous les exemplaires dont dispose la
Exercice : médiathèque sont fichés avec les informations suivantes : travée, étagère,
Un lycée veut réaliser une application pour la gestion informatisée de sa rayon. Nous enregistrons également le retour sur la fiche de l’emprunteur
médiathèque, qui fonctionne actuellement à l’aide de fiches cartonnées. Le »
bibliothécaire nous explique comment fonctionne la médiathèque:
« Nous disposons de plusieurs types d’ouvrages que nous avons séparés Questions:
dans des espaces différents de la médiathèque. Les adhérents peuvent
consulter sur place ou emprunter les différents supports : livres, cassettes 1. Construire un diagramme de cas d'utilisation pour système
vidéo et audio. Chaque œuvre dispose de renseignements en fonction de qu'on souhaite réaliser (3 pt).
son type. Pour les livres, nous notons le titre, le ou les auteurs (nom, 2. À l'aide de deux diagrammes de séquence, exprimer les deux
prénom, date de naissance), le nombre de pages, le numéro d’ISBN. Pour scénarios correspondant à l’emprunt d’un ouvrage et à son
les cassettes audio (opéra, film…), nous notons le titre, le ou les retour (3 pt).
compositeurs, les musiciens et la durée. Pour les cassettes vidéo, le titre, le 3. Construire un diagramme de classe pour le système (4 pt)
ou les réalisateurs, la durée sont enregistrés. Évidemment, certaines de ces 4. Générer le code des classes en C++ (sans préciser le code des
informations ne sont pas toujours disponibles (seul le titre est nécessaire fonctions set et get). (3 pt)
pour pouvoir établir la fiche d’une œuvre). Pour emprunter un ouvrage, il
est impératif d’être adhérent à la médiathèque. Pour devenir adhérent, il 5. Suite à la demande surélevée de certains supports, on souhaite
suffit de remplir une fiche qui contient les coordonnées du demandeur. réaliser une version améliorée de l'application afin d'offrir la
Celui-ci pourra alors emprunter (pendant un délai maximum de trois jours) possibilité d'effectuer des réservations en ligne.
jusqu’à trois ouvrages en même temps et éventuellement réserver des
ouvrages. Lors de l’enregistrement d’une demande d’emprunt d’un 6. Reconstruire le diagramme de cas d'utilisation pour prendre en
ouvrage, il y a en premier lieu vérification de l’appartenance de considération la réservation en ligne. (2 pt)
l’emprunteur à la médiathèque. Si le membre n’est pas adhérent, l’emprunt 7. Construire un diagramme d'état-transition de la classe "livre".
est refusé. Si l’emprunteur est adhérent, il y a comptage du nombre (3 pt)
d’ouvrages déjà empruntés. Le cumul du nombre d’ouvrages déjà
empruntés et du nombre d’objets dont l’emprunt est souhaité ne doit pas
dépasser 3. Si c’est le cas, l’emprunt est refusé. L’utilisateur a alors la Examen d’UML pour SMI 5 (2017-2018)
possibilité de ne pas emprunter autant d’ouvrages qu’il le souhaite, afin de
revenir sous la barre des 3 ouvrages « sortis ». Si toutes les conditions On souhaite développer un système d'information pour une centrale de
d’emprunt sont réunies, l’emprunt est accepté et enregistré sur la fiche de réservation hôtelière. Ce système devra permettre de réserver des
l’emprunteur et sur celles de chacun des ouvrages. Lorsqu’un adhérent chambres dans n'importe quel hôtel affilié à cette centrale.
nous rend un ouvrage, nous vérifions s’il n’a pas été détérioré. Si c’est le La recherche d'un établissement peut s'effectuer de deux manières: par un
cas, nous le réparons avant de le ranger. Nous enregistrons le retour de formulaire de recherche ou par choix dans une liste. Elle s'effectue selon la
chaque ouvrage sur sa fiche, puis allons le ranger. Nous avons mis en ville et/ou code postal et nombre d'étoiles. Dans le résultat de sa
recherche, le client peut voir le nom de l'établissement, le nombre
24
d'étoiles, la situation géographique (ville et code postal) et un lien pour renseigner les éléments suivants : coordonnées de l'hôtel, adresse e-mail,
voir la fiche de l'hôtel. La fiche descriptive comprend un numéro audiotel nombre d'étoiles, identifiant et mot de passe pour le gérant de l'hôtel.
qu'il peut appeler et effectuer sa réservation. À partir du moment où la
réservation est saisie par l'hôtelier, elle apparaît dans le module client Travail demandé :
permettant aux clients de consulter leurs réservations. Bien sûr, une
réservation peut-être annulée. Une réservation peut porter sur plusieurs a) Construire un diagramme de contexte du système. (3 pt)
chambres de plusieurs types (simple, double, etc.) qui sont toutes b) Donner un diagramme de cas d'utilisation afin de décrire le
réservées pour la même période (date d'arrivée et date de départ). fonctionnement souhaité du système. (4 pt)
c) Décrire à l’aide d’un diagramme de séquence le processus de
Une interface devra permettre à l'hôtelier de modifier les informations réservation d’une chambre. (2 pt)
concernant son hôte et de saisir les réservations (et leurs annulations
éventuelles). Cet espace hôtelier sera accessible par identification La société souhaite dans un deuxième temps intégrer à ce système une
(identifiant et mot de passe). fonction de réservation en temps réel par carte bancaire à travers le
système. Cette fonctionnalité requiert de la part des hôteliers la mise en
Le module client sera accessible par identifiant et mot de passe. Ces place d'un système de réservation en temps réel afin de pouvoir vérifier la
informations sont envoyées par e-mail au client lors de sa première disponibilité des chambres et il n'est pas envisageable pour le moment de
réservation via la centrale de réservation. Le système attribuera demander aux hôteliers non équipés d'avoir un tel système. La validation
automatiquement à chaque nouveau client (lors de la saisie d'une première de la réservation en temps réel nécessite d’abord la vérification de la
réservation par un hôtelier) un numéro de client, un identifiant et un mot solvabilité du client auprès d’un système d’autorisation bancaire.
de passe. A chacune de ses réservations, le client pourra rappeler son d) Rajouter dans le diagramme de cas d'utilisation donné en (b)
numéro de client afin que toutes ses réservations soient rattachées à un pour prendre en compte cette nouvelle fonctionnalité. (2 pt)
même numéro de client et donc consultables simultanément. S'il ne fournit e) Donnez le diagramme de classe complet correspondant à cette
pas son numéro de client lors d'une de ses réservations, il sera considéré application. (3 pt)
comme un nouveau client, c'est-à-dire qu'un nouveau numéro de client, un f) Générer le code en C++ de la classe "chambre". (2 pt)
nouvel identifiant et un nouveau mot de passe lui seront attribués pour la g) Donner le diagramme état-transition de la classe modélisant
réservation courante. une chambre. (2 pt)
Une interface d'administration du système doit également être prévue. Elle h) Donner un diagramme d’activité modélisant le processus de
doit permettre de voir le détail des informations sur un hôtel, de modifier réservation des chambres d’hôtels. (2 pt)
les informations sur l'hôtel, de le désactiver ou de le supprimer. La
suppression d'un hôtel supprime tous les éléments associés à cet hôtel. En
revanche, la désactivation ne supprime aucune information, elle permet
uniquement de ne pas afficher l'hôtel dans les résultats de recherche. Un Examen d’UML pour SMI 5 (2018-2019)
hôtel désactivé peut-être modifié, réactivé ou supprimé. Cette interface
doit également permettre l'ajout d'hôtels pour lesquels il faudra alors Question de cours:
1) Citer l'utilité de chaque diagramme UML (1,5 pt)
2) Expliquer l'architecture n-tiers (1,5 pt)
25
7. À partir du diagramme de classe générer le modèle relationnel Le logiciel de gestion des réparations est destiné en priorité au chef
(c-à-d. les tables) (1,5 pt) d'atelier, il devra lui permettre d'ouvrir les fiches de réparations pour les
8. Construire un diagramme d'activité du processus de demande voitures et saisir le travail effectué par les divers employés de l'atelier.
de congé. (2 pt) Pour effectuer leur travail, les mécaniciens et autres employés de l'atelier
9. Proposer une architecture logicielle pour l'application (1,5 pt) vont chercher des pièces de rechange au magasin.
Lorsque le logiciel sera installé, les magasiniers fourniront des pièces pour
les véhicules en réparation; ils saisiront directement les pièces fournies
depuis un terminal installé au magasin (celui-ci fait partie du système
étudié).
Lorsqu'une réparation est terminée, le chef d'atelier va essayer la voiture.
Si tout est en ordre, il met la voiture sur le parc clientèle et bouclera la
fiche de réparation informatisée.
Les fiches de réparations bouclées par le chef d'atelier devront être
exportées à travers le système par l'agent comptable au logiciel de
comptabilité pour générer la facture. Tous les utilisateurs doivent
s'authentifier avant chaque utilisation du système.
Les voitures sont caractérisées par leurs matricules, marques, dates de
mise en circulation, les noms et les prénoms de leurs propriétaires. Pour
chaque réparation, il est important de conserver la date, le kilométrage de
Examen d’UML pour SMI 5 (2020-2021) la voiture, son état, les pièces changées et les réglages effectués.
Finalement, la facture caractérisant une réparation est reconnue par son
numéro, sa date et son montant.
Questions de cours : (2 pt) (Le système étudié= logiciel de gestion des réparations+terminal du
magasinier)
Donner la définition d'un cas d'utilisation, scénario, classe et objet. (2 pt) Questions :
1. Construire un diagramme de contexte du système. (2 pt)
Exercice : (18 pt) 2. Construire un diagramme de cas d’utilisation. (3pt)
3. A l’aide de diagrammes de séquence décrire le scénario
Une entreprise qui fait le commerce, l'entretien et les réparations de principal de chaque cas d’utilisation. (2 pt)
voitures désire exploiter un logiciel de gestion des réparations; elle dispose 4. À l’aide d’un diagramme d’activité, décrire le processus de
déjà d'un logiciel comptable. réparation des véhicules (2 pt)
Les factures de réparations seront imprimées et gérées par le logiciel 5. Établir un diagramme de classe pour le système. (3 pt)
comptable. Le logiciel de gestion des réparations devra communiquer avec 6. À partir de votre diagramme de classe générer, en C++, le code
le logiciel comptable pour lui transmettre les réparations à facturer. des classes. (3 pt)
27
7. Établir le modèle relationnel (c.à.d. les tables) à partir du Scénario avec succès du cas d’utilisation : Demande de
diagramme de classe de la question 5. (3 pt) rendez-vous
Corrigé :
28
String marque;
Date date_mise_en_circ;
Proprietaire * le_proprietaire ;
List<Reparation*> les_reparations;
public:
//fonction set et get
};
6. À partir de votre diagramme de classe générer, en C++, le code
des classes. (3 pt)
class réparation {
class Propriétaire {
String cin;
String num_rep;
String nom;
Date date_RV;
String telephone;
Date date_reception;
List<Vehicule*> vehicules;
int Kilometrage;
Boolean état_véhicule;
public:
Date date_restitution;
//fonction set et get
Vehicule * le_vehicule ;
};
Facture * la_facture ;
class Véhicule {
List<Pièce *> pieces_rechange ;
String matricule;
29
List<Reparation*> };
les_reparations_facturés;
7. Établir le modèle relationnel (c.à.d. les tables) à partir du
diagramme de classe de la question 5. (3 pt)
public:
//fonction set et get Propiétaire(cin, nom, tel)
Véhicule (matricule, marque, date_mise_en_circ, cin*)
Réparation(num_rep, date_RV, date_reception,
}; date_restituion, kilométrage,
état_véhicule, matricule*, num_facture*)
class Réglage {
string num; Pièce(reference, nom, num_rep*)
30
31