Analyse et Conception Orientées Objets

École Nationale des Sciences de l'Informatique (ENSI)
1/3
100%
Rendu du PDF...
Page 1 sur 3Lecteur de document UniversityLib

Analyse et Conception Orientées Objets

École Nationale des Sciences de l'Informatique (ENSI) · Programming, UML, Object-Oriented Analysis and Design · exam

Voir tous les documents en génie logiciel

UNIVERSITE DE LA MANOUBA -----¤¤¤¤----- ECOLE NATIONALE DES SCIENCES DE L'INFORMATIQUE

Matière : Analyse et Conception Orientées Objets

A.U. : 2013-2014

Niveau : I.I. 2

Série N°4: Modélisation dynamique UML (diagrammes de séquence)

Exercice 1

On demande de modéliser l’interaction suivante dans un diagramme de séquence : lorsque le gestionnaire reçoit de la part d’un acteur extérieur le message addPersonne, il va créer une nouvelle instance de la classe Personne, lui assigner le nom et le prénom, puis il va enregistrer la nouvelle personne à l’aide de la méthode enregistrer.

Exercice 2

On souhaite modéliser la gestion automatique d’un système de 4 feux tricolores installés aux quatre coins d’un carrefour de 4 rues perpendiculaires. On suppose qu’un feu a trois états possibles : 1-rouge, 2-vert, 3-orange.

Le système de contrôle doit permettre de placer le carrefour dans l’une des quatre situations suivantes :

1. circulation NORD – SUD ouverte et circulation OUEST – EST interdite 2. circulation NORD – SUD tolérée et circulation OUEST – EST interdite 3. circulation NORD – SUD interdite et circulation OUEST – EST ouverte 4. circulation NORD – SUD interdite et circulation OUEST – EST tolérée

Le système est initialisé à la phase 4. On a défini les méthodes suivantes.

Pour un feu tricolore :

initialiseFeu(int : etatInitial) permet d’initialiser un feu dans l’un des états 1-rouge, 2- vert, 3-orange.

Publicité

- changeEtat() permet d’incrémenter la valeur de l état (1,2,3,1 etc...)

Pour le système de contrôle :

initialiseSystemeDeControle() initialise le système de contrôle dans la phase initiale

-

-

-

initialiseFeux() appelle l’initialisation de chaque feu dans l état correspondant à la situation décrite par la phase initiale.

- changePhase() permet d’incrémenter la valeur de la phase (1,2,3,4,1 etc...)

On demande de réaliser un diagramme de séquence en utilisant les méthodes définies ci- dessus.

Exercice 3

L’entreprise RapidPizza regroupe des restaurants à l’enseigne Point Pizza. Les Points Pizza sont tous capables de livrer certaines pizzas classiques. En plus, chaque Point Pizza peut aussi livrer d’autres pizzas spéciales qui ne sont pas proposées par tous les Points Pizza. Actuellement les commandes se font par téléphone auprès d’un restaurant, limitant le nombre de commandes acceptables. Chaque client n’a accès qu’aux spécialités du Point Pizza auquel il s’adresse.

La direction de RapidPizza veut informatiser son processus de commande, de fabrication et de livraison via un logiciel nommé RapidPizza. Grâce à lui, elle veut gérer l’ensemble des commandes et des employés, appelés ci-dessous collaborateurs. RapidPizza rend accessible à tous les clients l’intégralité des spécialités disponibles : tout plat présent dans au moins un Point Pizza est proposé. Chaque plat est décrit par son nom et son prix, qui ne dépend pas du Point Pizza de fabrication.

À tout moment il est possible de passer une commande sur RapidPizza : le client doit donner son numéro de téléphone qui l’identifie de manière unique. Lors de sa première commande il lui est demandé de saisir en plus son nom et son adresse, qui sont enregistrés. Les commandes sont identifiées par un numéro unique. Une même commande peut comporter plusieurs plats. Pour chaque plat sélectionné il précise la quantité demandée. Comme une commande peut comporter plusieurs plats et que certaines spécialités ne sont disponibles que dans certains Points Pizza, toutes les combinaisons de plats d’une commande ne sont pas forcément possibles. Dans ce cas la commande est globalement refusée et n’est pas mémorisée. Le client peut consulter l’état d’une commande. Cela lui permet notamment de savoir si la livraison d’une commande est en cours. Tant que la préparation d’une commande n’a pas débuté, il peut l’annuler.

RapidPizza fait appel à de nombreux collaborateurs aux horaires flexibles et variables. À la signature de leur contrat un boîtier électronique leur est remis leur permettant de signaler le début ou la fin de leur disponibilité. Un livreur utilise également son boîtier pour indiquer le moment de récupération d’une commande au Point Pizza ainsi que le moment de fin de livraison au client. Le gérant peut consulter sur RapidPizza l’état global du système : commandes, plats, collaborateurs, etc. Il peut affecter un collaborateur à un Point Pizza ou aux livraisons. Un collaborateur peut changer de lieu de travail ou de rôle plusieurs fois dans la journée : c’est le gérant qui optimise le rôle de chacun en fonction des commandes et des disponibilités. Quand le client passe une commande, il n’indique pas de Point Pizza particulier : c’est le gérant qui affecte la commande à un Point Pizza. Dans chaque Point Pizza, un unique collaborateur joue le rôle de coordinateur en plus de préparer les plats. C’est le seul à interagir avec RapidPizza : tous les autres collaborateurs sont soit à la préparation des plats soit à la livraison. Le coordinateur consulte sur RapidPizza les commandes à réaliser dans son restaurant. Pour chaque plat d’une commande, il indique si sa réalisation a débuté, si elle est

Publicité

terminée. Quand tous les plats sont prêts, il prévient oralement l’un de ses livreurs que la commande est livrable.

À l’étape de spécification du système RapidPizza, on a recensé les acteurs et cas d’utilisation suivants :

Acteurs

- Client : Client de RapidPizza (identifié par son numéro de téléphone). - Collaborateur : Employé de RapidPizza (livreur, coordinateur, préparateur). - Livreur : Employé affecté à la livraison des commandes. - Coordinateur : Employé affecté à la coordination d’un Point Pizza. - Gérant : Responsable unique de RapidPizza.

Cas d’utilisation

- S’enregistrer (client) Lors de la première commande, le client doit donner son numéro

de téléphone, son nom et son adresse pour s’enregistrer auprès de RapidPizza. - Passer une commande (client) Un client peut passer commande d’un ensemble de

pizzas. (Il est nécessaire d’être enregistré.)

- Consulter l’avancement d’une commande (client) Un client peut à tout moment connaître l’état d’avancement d’une de ses commandes. (Il est nécessaire d’être enregistré.)

- Annuler une commande (client) Une client peut annuler une de ses commandes si la

préparation n’a pas encore débuté. (Il est nécessaire d’être enregistré.)

- Modifier sa disponibilité (collaborateur, livreur, coordinateur) Tout collaborateur peut signaler sa disponibilité ou la fin de sa disponibilité via son boîtier. (Ce cas regroupe les deux cas de début et fin de disponibilité.)

- Notifier l’état d’une livraison (livreur) Un livreur peut utiliser son boîtier pour

indiquer qu’il a récupéré ou livré une commande.

Publicité

- Notifier l’avancement d’une pizza (coordinateur) Un coordinateur peut indiquer si la

réalisation d’une pizza a commencé et si elle est terminée.

- Consulter les commandes (coordinateur) Un coordinateur peut consulter les

commandes affectées à son Point Pizza.

- Consulter l’état du système (gérant) Le gérant peut consulter l’état des commandes,

des pizzas et des collaborateurs.

- Affecter un collaborateur (gérant) Le gérant peut affecter un collaborateur à un Point

Pizza ou aux livraisons.

- Affecter une commande (gérant) Le gérant peut affecter une commande à un Point

Pizza.

Questions

1. Donner un diagramme de classes d’analyse pour RapidPizza. 2. Donner un diagramme de séquence pour chacun des cas d’utilisation suivants : Passer

une commande, Notifier l’avancement d’une pizza, Affecter une commande.