Sunteți pe pagina 1din 4

TD 4 

: Diagramme d’interaction UML


Matière Langage de modélisation OO : UML

EXERCICE 1
Le programme suivant, écrit en pseudo-code, permet de calculer le factoriel d'un nombre n :

Représenter le programme précédent sur un diagramme de séquence.

EXERCICE 2
Le diagramme de cas d'utilisation de la figure suivante modélise la gestion simplifiée d'une
bibliothèque.

Le fonctionnement de la bibliothèque est le suivant : une bibliothèque propose a ses adhérents des
oeuvres littéraires. Les oeuvres peuvent être présentes en plusieurs exemplaires. Un adhérent peut
emprunter jusqu'a trois livres.
Question
1- Ecrire à l'aide d'un diagramme de séquence, un scénario d'emprunt. Considérer le système
comme une boite noire et ne pas chercher a montrer les objets au coeur du système.

On suppose a présent qu'un diagramme de classes a été construit. Le but est à présent de montrer
comment des objets au coeur du système interagissent pour réaliser les fonctions des cas
d'utilisation.
Le diagramme de classes est :

1
Il modélise la structure interne de la bibliothèque. Un adhérent peut emprunter un exemplaire
d'une oeuvre donnée. L'emprunt se fait de la façon suivante : l'opération emprunter de la classe
Œuvre est invoquée pour un adhérent donné en argument. S'il reste des exemplaires dans la
bibliothèque, l'un des exemplaires associés à l'oeuvre est extrait via la méthode
extraireExemplaire. Une instance de la classe Prêt est créée, puis l'exemplaire de la bibliothèque
est attribué à l'adhérent grâce à l'invocation de l'opération attribuer().
Questions
1. La recherche de l'adhérent, la vérification d'autorisation d'emprunt et la recherche de l'œuvre
ont été exécutées, on dispose d'une instance oeuvreTrouvee de type Oeuvre et d'une instance
adherentTrouve de type Adhèrent. Donner le diagramme de séquence
AttributionExemplaireAdherent qui illustre les dernières interactions de l'emprunt d'un
exemplaire.

EXERCICE 3

Un objet nommé B747 de classe Avion et en état « détresse » est en relation avec Luna, une tour
de contrôle. Un ensemble d'autres avions anonymes dont l'état est à terre sont aussi liés à Luna.
La tour de contrôle communique avec P123, une caserne de pompiers. Considérons le scénario
suivant :

1. L'avion en détresse envoie un SOS à la tour de contrôle


2. Simultanément :
- La tour de contrôle demande à l'avion en détresse d'atterrir sur la piste P1
- Elle envoie aux pompiers l'ordre de venir sur la piste P1
3. La tour de contrôle ordonne à l'ensemble des avions en piste de se diriger vers le parking.

Question : Donnez le diagramme de communication correspondant à ce scénario.

Exercice 4

Le dispositif Vélib’ de la ville de Montréal gère la location de vélos en libre-service. Les vélos sont répartis dans des
stations Vélib’ toutes connectées à un serveur central. Chaque station comporte une borne et un ensemble de
bornettes qui représentent les points d’attachement des vélos.

2
Les usagers doivent s’abonner avant de pouvoir emprunter un vélo auprès d’une borne et de le restituer à n’importe
quelle autre borne. Dans le dispositif Vélib’, deux types d’abonnement existent : courte durée (abonnement à la
journée ou à la semaine) ou longue durée (abonnement à l’année).

Le système informatique du dispositif Vélib’ est composé de deux systèmes : celui des stations (nommé
StationVélib) et celui du serveur (nommé CentralVélib).

Nous souhaitons le système StationVélib qui permet :

 de souscrire à un abonnement courte-durée (les demandes d’abonnement longue-durée ne peuvent se faire


que par courrier). Une fois validé, l’abonnement est automatiquement transmis par la borne au serveur
Vélib’.
 d’emprunter un vélo (il faut être abonné).

 de retirer directement à la bornette un vélo que l’on vient d’emprunter. Une fois que le vélo est retiré, un
message est automatiquement transmis par la borne au serveur Vélib’ précisant que l’emprunt a été validé.

 de retourner un vélo emprunté dans une autre borne ou dans la même borne. Une fois que la restitution est
validée, celle-ci est automatiquement transmise par la borne au serveur Vélib’.

De plus il est important de savoir qu’une bornette sans vélo est dite libre. Si un vélo y est attaché et qu’elle n’a pas
été choisie par un abonné, la bornette est verrouillée. Elle peut alors être déverrouillée par la borne lorsqu’un abonné
la choisie pour emprunter un vélo. Pour finir, elle est libérée dès que l’abonné prend son vélo. Si l’abonné ne prend
pas son vélo pendant plus de 3 minutes, la borne est de nouveau verrouillée. En cas de problème électronique, la
borne peut devenir en panne. De temps en temps, le serveur CentralVélib lance un diagnostic sur plusieurs de ses
bornes. La borne doit alors vérifier l’état de toutes ses bornettes. Si plus de 5 bornettes sont en panne, la borne
répond au serveur qu’une opération de maintenance est nécessaire. Les identifiants des bornettes concernées sont
envoyées au serveur CentralVélib.

1. Réalisez le modèle d’analyse de l’application StationVélib. Le modèle d’analyse doit comporter :


a. un diagramme de cas d’utilisation. Chaque cas devrait être décrit par une phrase en langage
naturel,
b. un diagramme de séquence système relatif à un scenario nominal (de base) « emprunter un vélo »
c. et un diagramme de classes d’analyse
2. Raffiner le diagramme de séquence système, défini en 1.b, vers un diagramme de séquence d’analyse en
utilisant le diagramme de classes défini en 1.c.

EXERCICE 5 : Syntaxe des messages

Question : Expliquez la syntaxe des messages suivants extraits d'un diagramme de


communication.
– Mes()
– Mes(arg)
– Var=mes(arg)
– 1:mes()
– 2.1:mes()
– 3.2b:mes()
– [a>b]:mes()
– *[i:=0..10]:mes()
– *||[pour toutes les portes]:fermer()
– [heure=heure de depart] 1.1a * || [i :=0..10] : ok[i]=fermer()

3
Exercice 6
Un distributeur de boissons permet d’obtenir la boisson de son choix après avoir tapé le code de
la boisson désirée puis payé par CB ou avec de la monnaie. En vous appuyant sur le diagramme
de classes donné, proposer un diagramme de séquence illustrant une interaction allant de la
commande d’une boisson à sa distribution et traitant les deux types de paiement. La prise en
compte des cas exceptionnels n’est pas demandée.
Traduire le diagramme de séquence élaboré en un diagramme de communication.

Monnayeur

+InsérerMonnaie(somme)

Machine

+FabriquerBoisson(code: Integer)
Distributeur
Client +codeBoisson: Integer
+statutPaiement()
+réceptionBoisson()
+EnregistrerCommande(code: Integer)
+ValiderPaiement()
Clavier

+codeBoisson(code: Integer)
+codeCarteBancaire(code: Integer)

LecteurCarte

+lireCarte(carteBancaire)
+envoiCode(code: Integer)

S-ar putea să vă placă și