Examen ACOO 2019 2020

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

UNIVERSITE DE LA MANOUBA ANNEE UNIVERSITAIRE

-----¤¤¤¤----- 2019-2020
ECOLE NATIONALE DES SCIENCES
DE L'INFORMATIQUE

EXAMEN – Session Principale


Analyse et Conception Orientée Objet

Nombre de pages : 4+Annexe Documents: non autorisés


Durée: 2h
Enseignantes: C. BEN OTHMANE, N. BEN YAHIA, R. DRIRA, I. FLISS, A.
HEDHILI, Y. SAYEB
Questions de réflexion : (4.5 pts)
1/ a- Dans un diagramme de composants, comment est représentée la
communication entre les composants? (0.75 pt)
b- Illustrez par un schéma les deux manières de représenter en UML la
relation de réalisation d'une interface par un composant. (0.75 pt)
2/ a- Quelle vue est modélisée par un diagramme de déploiement? (0.75 pt)
b-Où peuvent être représentés les composants dans un diagramme de
déploiement? Donnez un exemple. (0.75 pt)
3/ En établissant le diagramme de paquetage "il faut essayer de minimiser le
couplage entre les paquetages et de maximiser leur cohésion".
Expliquez cette assertion. (1 pt)
4/ Lors du passage du diagramme de classe au diagramme d’objet, comment se
traduit une relation d'héritage entre deux classes? (0.5 pt)
Exercice : (5.5 pts)
Un Cloud est un système de fichier décentralisé qui doit garantir la permanence
des données et leur disponibilité. On se propose de modéliser le fonctionnement
d'un Cloud qui ne se contente pas de stocker les données mais vend également
du temps de calcul aux clients.
Le Cloud en question fonctionne de la manière suivante. Il dispose d'une adresse
IP et est constitué de grappes de machines. Une grappe est un regroupement
d'ordinateurs (fonctionnant comme une seule machine) pouvant elle-même être
composée d'autres grappes. A la base, on trouve les ordinateurs qui peuvent être
de deux types: des machines à grande vitesse avec peu de stockage
(MachineCPU) et des machines à faible vitesse et avec grande capacité de
stockage (MachineData).
Chaque machine a un nom, une vitesse, une capacité de stockage, un pourcentage
de processeur libre et un pourcentage de disque disponible. On distingue
plusieurs types de grappes. Chaque grappe a la possibilité d'ajouter une nouvelle
machine et de calculer sa capacité de calcul et de stockage.

1
UNIVERSITE DE LA MANOUBA ANNEE UNIVERSITAIRE
-----¤¤¤¤----- 2019-2020
ECOLE NATIONALE DES SCIENCES
DE L'INFORMATIQUE

1. Proposez un diagramme de classe qui modélise la structure logique de ce


Cloud (en représentant les différents types de grappes et de machines) et qui
assure en plus, la création d'une seule instance de la classe Cloud.
Appliquez pour cela deux patrons de conception tout en précisant leur nom et
leur type. (3, 5 pts)
2. Construisez le diagramme de séquence objet qui représente la dynamique
entre les objets de type Grappe et ceux de type MachineCPU ou MachineData lors
de l'envoi d'une demande d'ajout de n machines à une grappe par un utilisateur.
Sachant que la grappe se charge de la création de nouvelles machines, de leur
ajout et aussi de la mise à jour de leurs capacités de calcul et de stockage. (2 pts)
Problème : (10 pts)
On se propose d'analyser et de concevoir une application mobile de gestion de
réservation de taxis baptisée "Smart taxi" permettant de gagner du temps et de
l'argent pour les utilisateurs de taxis. Le client à travers cette application devra
pouvoir réserver un taxi par son téléphone portable. Lors de la réservation, le
client doit fournir sa destination, il peut éventuellement demander une
estimation du temps, de la distance et du prix de la course. Le client n'a pas
besoin d'introduire ni son numéro de téléphone ni son adresse, celles-ci seront
déterminées automatiquement.
Tout chauffeur de taxi voulant bénéficier de cette application doit d'abord
s'inscrire en remplissant une demande d'inscription envoyée automatiquement à
l'administrateur de l'application contenant les informations suivantes: nom,
prénom, num° de téléphone, num° CIN, num° de permis, num° d'immatriculation
du taxi. Ces informations peuvent être modifiées par le chauffeur de taxi à tout
moment. Une fois inscrit, le chauffeur de taxi doit toujours s'identifier en se
connectant à l'application. Toutes les demandes de réservation seront envoyées
aux chauffeurs de taxi connectés et libres et qui sont dans un périmètre ne
dépassant pas les 20km par rapport à la position géographique du client. Un
chauffeur de taxi peut alors accepter ou décliner une demande de réservation en
cours. Si plusieurs chauffeurs de taxi répondent en même temps le chauffeur de
taxi le plus proche sera choisi et tous les autres seront déclinés
automatiquement. Le système envoie la proposition du chauffeur de taxi au
client si celui-ci répond positivement le chauffeur de taxi en question sera
informé, sinon le client aura le choix entre annuler ou relancer la demande
encore une fois. Le client a toujours la possibilité d'annuler une course tant qu'il
n'a pas donné sa confirmation finale.
Toute course réellement effectuée doit être enregistrée dans la base de données
de l'application avec toutes ses informations (Num° tél client, CIN chauffeur de
taxi, adresse de départ, adresse d'arrivée, prix de la course) et éventuellement
avec les commentaires sur cette course. C'est le chauffeur de taxi qui se charge
de la notification de l'application de la fin d'une course et aussi de la mise à jour
régulière de son état dans l'application : libre/Occupé (entrain d'effectuer une
course)/ Non disponible (libre mais non disponible).

2
UNIVERSITE DE LA MANOUBA ANNEE UNIVERSITAIRE
-----¤¤¤¤----- 2019-2020
ECOLE NATIONALE DES SCIENCES
DE L'INFORMATIQUE

Bien entendu, l'application doit pouvoir automatiquement effectuer certaines


vérifications comme par exemple lorsque le chauffeur de taxi est entrain
d'effectuer une course son état ne peut pas changer à libre qu'après la fin de la
course.
Le propriétaire de l'application souhaiterait pouvoir fidéliser et améliorer les
services offerts en proposant aux clients qui souhaitent le faire, de laisser des
commentaires libres en langage naturel.
Les clients qui veulent être fidélisés doivent alors s'inscrire en remplissant un
formulaire indiquant le nom, le prénom, l'adresse mail et le mot de passe. Ces
deux derniers doivent être fournis seulement si le client se connecte à
l'application pour laisser un commentaire sur une course effectuée ou pour
modifier les informations de son compte.
L'application sera dotée d'une composante intelligente interprétant le langage
naturel et analysant les sentiments des clients. Ainsi, un chauffeur de taxi non
apprécié par un certain nombre de clients peut être supprimé par
l'administrateur de l'application dont le rôle et de gérer les comptes des
chauffeurs (ajout, suppression) et de consulter les commentaires et les résultats
de l'analyse des sentiments des clients.

Questions :
On vous demande de modéliser en UML cette application selon les 3axes
suivants: axe fonctionnel, axe structurel et axe comportemental.
I- Axe fonctionnel
1/ Déterminez les acteurs principaux, éventuellement les acteurs secondaires et
construisez le diagramme de cas d'utilisation. (2,5 pts)
II - Axe structurel
2/ Une première analyse a permis de dégager les classes suivantes : Client,
ClientFidèle, ChauffeurTaxi, DemandeReservation, CourseEffectuée (pour un
Cient et un Taxi), CommentaireClient (pour une course effectuée).
a- Fournissez le diagramme de classe de conception en tâchant d'y mettre des :
- Attributs et des méthodes (les plus pertinents)
- Associations et des liens d'héritage entre les classes
- Classes abstraites ou des interfaces et des classes d'association
- Contraintes de gestion de liens (telles que : Frozen, Ordered, Add only, Not
unique)
Précisez la navigabilité et faites en sorte de ne mettre que les associations
indispensables. (3,5 pts)

3
UNIVERSITE DE LA MANOUBA ANNEE UNIVERSITAIRE
-----¤¤¤¤----- 2019-2020
ECOLE NATIONALE DES SCIENCES
DE L'INFORMATIQUE

b- L'administrateur de l'application voudrait avoir la possibilité de consulter un


tableau de bord qui lui indique à tout moment l'état (libre/indisponible/occupé)
de chaque chauffeur de taxi connecté.
On vous demande de compléter le diagramme de classe précédent en insérant
une nouvelle classe TableauDeBord dont le rôle est d'observer l'état des taxis et
de se mettre à jour automatiquement à chaque changement d'état. Aidez-vous
pour cela du patron de conception Observateur afin de mettre à jour votre
diagramme de classe.
Il est inutile de reprendre tout le diagramme, indiquez seulement les
changements à effectuer. (2 pts)
III - Axe comportemental
4/ Construisez un diagramme d'activité avec trois couloirs (Client, Système et
Chauffeur de taxi) modélisant le déroulement des activités pour traiter une
demande de réservation d'un client simple (non fidèle). (2 pts)

Bon travail

4
UNIVERSITE DE LA MANOUBA ANNEE UNIVERSITAIRE
-----¤¤¤¤----- 2019-2020
ECOLE NATIONALE DES SCIENCES
DE L'INFORMATIQUE

Annexe

<<interface >>
Observer

Vous aimerez peut-être aussi