UNIVERSITE DE LA MANOUBA
-----¤¤¤¤-----
ECOLE NATIONALE DES SCIENCES
DE L'INFORMATIQUE
ANNEE UNIVERSITAIRE
2012-2013
Examen Principal du 1er Semestre
Matière : Analyse et Conception Orientées Objets
Niveau : II2
Nombre de pages : 2 pages + Annexe UML
Enseignants : Y. JAMOUSSI, I. FLISS, W.CHAKER, M.FARHAT
Date : 16 Janvier 2013
Durée: 2H
Documents : non autorisés
NB : La précision, la consistance et la clarté seront appréciées
Questions de réflexion (4 pts)
1) Dans un diagramme de cas d’utilisation, est-il possible d’exprimer l’ordre d’invocation des
services ? Justifiez votre réponse.
2) Soit le diagramme de classes et les trois diagrammes d’objets (1), (2) et (3) suivants :
(1)
(2)
(3)
Sachant que a, b, c et d sont des instances (objets) respectivement des classes A, B, C et D ; alpha1 et
beta1 sont des liens représentatifs des associations alpha et beta.
Indiquez pour chacun des diagrammes d’objets (1), (2) et (3) s’il est conforme ou pas au diagramme
de classes? Justifiez votre réponse.
.
Exercice 1 « Diagramme de cas d’utilisation » (5 pts)
Un grand magasin envisage de faciliter la gestion des emballages (bouteilles et canettes) des boissons qu’il
vend. A cet effet, il a décidé de se doter d’un système de récupération qui peut accepter plusieurs types de
bouteilles et de canettes. Un type de canette est caractérisé par sa largeur et sa hauteur. Un type de bouteille
Publicité
est caractérisé par sa largeur du col, sa largeur du bas et sa hauteur. Pour chaque type d’article (bouteille ou
canette) correspond un montant. Le client qui désire retourner des articles (canettes et/ou bouteilles) se
présente devant le système et commence à les déposer un par un. L’article déposé est mesuré par la machine
pour pouvoir l’identifier. Si l’article déposé est accepté, le système incrémente le total de ce type d’articles et
l’absorbe. Si l’article n’est pas reconnu par la machine, l’article est mis en lumière jusqu’à son retrait de la
machine. Quand le client dépose tous les articles, il appuie sur le bouton « Reçu ». Le système lui imprime
un reçu contenant pour chaque type d’article son intitulé, le nombre d’articles déposés, le montant unitaire de
dépôt et le montant total. Le total global de tous les dépôts est aussi imprimé à la fin du reçu. Ce reçu est
présenté ensuite à la caisse pour remboursement.
Vers la fin de chaque journée, l’opérateur retire les articles de la machine et imprime le reçu global des
dépôts au cours de la journée en appuyant sur le bouton « Init » derrière la machine. Le reçu imprimé a la
même forme que celui livré aux clients sauf qu’il récapitule tous les dépôts de la journée. L’opérateur peut
aussi configurer les paramètres des cannettes et des bouteilles que la machine peut accepter.
Travail à faire
1) Identifiez le(s) acteur(s) du système de récupération. Précisez à chaque fois le type de l’acteur (principal
ou secondaire) en justifiant votre réponse.
1/3
2) Représentez le diagramme de cas d’utilisation du système en question en utilisant au moins deux
relations « include ». Donnez, en langage naturel, pour chaque cas d’utilisation une description sommaire
des différents scénarios (une phrase par scénario).
3) Afin de décrire le cas d’utilisation "Retourner un article", nous nous proposons d’utiliser soit un
diagramme d’activités ou bien une description en langage naturel. Selon vous quelle est la meilleure
solution à ce stade de modélisation du système ? Expliquez. En vous basant sur la solution que vous avez
choisie, détaillez le cas d’utilisation "Retourner un article".
Exercice 2 « Diagramme de séquence » (5 pts)
On souhaite gérer les différents objets qui participent à l’activité d’un fleuriste. Le client demande au
vendeur des renseignements sur les compositions florales. Le vendeur lui fournit toutes les informations
nécessaires. Le client commande alors la composition de son choix et le vendeur émet le bon de fabrication
qu’il transmet à son ouvrier fleuriste. Celui-ci récupère auprès du bon de fabrication les informations
concernant la composition choisie. Il crée ensuite la composition demandée. Une fois la composition
terminée, l’ouvrier fleuriste archive le bon de fabrication (qui est ainsi détruit), et remet ensuite la
Publicité
composition au vendeur. Le vendeur édite ensuite la facture correspondante. La facture est remise au client
pour règlement dès que le bouquet est réalisé. Une fois la facture réglée, le client récupère sa composition et
quitte le magasin.
Travail à faire
Modélisez la situation précédente à l’aide d’un diagramme de séquence en n’utilisant que des échanges
synchrones.
Exercice 3 « Diagramme de classes+ diagramme d’états-transitions » (6 pts)
Dans cet exercice, on se propose de modéliser des « Tamagutchi » avec le modèle d’états-transitions d’UML.
Le Tamagutchi est un petit animal virtuel et interactif que l’utilisateur doit s’en occuper pour le maintenir en
bonne santé. Un Tamagutchi en état normal n'a pas faim pendant un certain temps (appelé temps
d'autonomie). Au bout de ce temps, le Tamagutchi a faim et il pleure. Pour lui donner à manger, l'utilisateur
du Tamagutchi le met à table et le Tamagutchi s'arrête de pleurer. Un Tamagutchi mange pendant un certain
temps (appelé temps de restauration). Au bout de ce temps, il se remet à pleurer. Il pleure jusqu'à ce que
l'utilisateur le sorte de table. Quand il sort de table, le Tamagutchi revient dans l’état normal et ainsi de suite
tant que le Tamagutchi ne meurt pas. Si le Tamagutchi pleure plus de 5 minutes d'affilée, il meurt.
On suppose que les événements émis par le Tamagutchi vers l'utilisateur sont : « avoir faim », « ne plus avoir
faim », « mourir » et que les événements émis par l'utilisateur et reçus par le Tamagutchi sont « être mis à
table » et « sortir de table ».
Un Tamagutchi est un ensemble de matériels : une horloge, un bip et deux boutons. Le bip se présente sous
forme d'une instance de la classe Bip. Si le Tamagutchi appelle la méthode déclencherPleurs(), le bip
commence à émettre des pleurs sans interruption. Si le Tamagutchi appelle la méthode arreterPleurs(), le bip
s'arrête.
Quand l'utilisateur appuie sur le bouton « a table » (resp. « sortie de table »), le Tamagutchi reçoit
l'événement correspondant à sa mise à table (resp. à sa sortie de table). L'horloge se présente sous forme
d'une instance de la classe Horloge avec une méthode lancerTempo(int durée). Si le Tamagutchi appelle la
méthode lancerTempo(durée) à un instant t, il recevra un événement « tempo écoulée » à l'instant t+durée.
Travail à faire
1) Dessinez le diagramme de classes de conception du Tamagutchi.
2) Dessinez un diagramme d’états-transitions à 5 états modélisant le comportement du Tamagutchi. On
utilisera les noms « pas faim pleure pas », « faim pleure », « à table pleure pas », « à table pleure » et «
mort » pour ces 5 états. On ne fera figurer que les événements mentionnés dans l’énoncé sur les
Publicité
transitions du diagramme d’états-transitions.
2/3
AANNNNEEXXEE UUMMLL 22..00
Diagramme de cas d’utilisation
Diagramme d’états
Cas = ensemble de scénarios reliés par un but
commun. Acteurs (rôle d’un utilisateur du système),
limites du système (rectangle), fonctionnalités
principales et liens entre elles (extension, inclusion)
Diagrammes dynamiques
Diagramme de séquences
Etats, transitions entre états, activités internes
Eventuellement superEtats
Diagramme d’activité
(activité de
(boîtes en haut),
lignes verticales
Objets
(existence des objets – « lignes de vie »), lignes
rectangulaires
l’objet), flèches
(envois de messages). L’objet émetteur doit avoir
une association avec l’objet receveur. Création
d’objet (apparition de l’objet à la fin du message),
destruction (une croix X terminant une ligne de
vie).
3/3