TD3-Diagramme de Sequence

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

UML

TD Diagramme de séquence
Exercice 1 : Types de messages
1. Quand un courrier électronique est envoyé par l'émetteur, celui-ci ne veut pas attendre
que le destinataire l'ait reçu et il n'y a pas d'intermédiaire. Peut-on utiliser un message
synchrone ou asynchrone ? Complétez la figure ci-dessous par des flèches représentant
des messages.
Exercice 1 : Types de messages
1. Un message asynchrone est indiqué ici.
Exercice 1 : Types de messages
2. Est-ce que transmettre est une opération ou un signal ? Dans tous les cas, donnez des
éléments d'un diagramme de classe cohérent avec le diagramme de séquence.

• Un signal est un type de message pouvant être échangé entre deux objets. Les signaux
sont utilisés pour représenter les messages asynchrones. Un signal peut transporter des
données, spécifiées au moyen des paramètres du signal.

• La représentation d’un signal dans un diagramme de classe se fait au moyen d’une


Classe stéréotypé « signal » avec deux caractéristiques son nom et ses attributs
(paramètres).
3. Un serveur de messagerie sert d'intermédiaire entre l'émetteur et le récepteur d'un
email. Le serveur est toujours en fonction. Est-ce qu'on peut utiliser des messages
synchrones pour l'envoi et la récupération de emails ? Complétez la figure ci-dessous
par des flèches représentant des messages.
3. Si on a le choix, il vaut mieux utiliser des messages synchrones, qui s'implémentent
facilement par des opérations. Un message synchrone est possible ici et c'est donc
préférable
4. Est-ce que poster est une opération ou un signal ? Dans tous les cas, proposez un
diagramme de classe cohérent avec le diagramme de séquence.
Exercice2 : Borne automatique
Cahier des charges
Lorsque la borne automatique est active, l’utilisateur sélectionne, grâce au clavier, sa
destination, puis la classe du billet (première ou seconde). Ensuite, il paie le montant
demandé en utilisant soit sa carte bleue qu’il insère dans la borne en composant son code,
soit en utilisant de la monnaie. Puis le billet est imprimé par la borne et l’utilisateur peut
alors le retirer.
Par défaut, on considère que la gare de départ est la gare où l’on se trouve, mais
l’utilisateur peut éventuellement décider de modifier la gare de départ. Un administrateur
est nécessaire pour la configuration de la borne automatique.

1. Elaborer le diagramme de cas d’utilisation, du système implanté dans la borne


automatique, située à l’intérieur même d’une gare, permettant d’acheter un billet
(métro, train, etc.).
Exo 1 : DUC d’une Borne automatique
Exo 1 : DUC d’une Borne automatique

On peut ajouter d’autres cas d’utilisations:


 UC1 «Paiement» (cas de base) : lien
d’inclusion avec «Acheter billet»
 UC2 «Carte Bleu» (cas particulier de UC1)
 UC3 «Monnaie» cas particulier de UC1
 UC4 «modifier gare départ» : lien
d’extension avec «Acheter billet»
Exo 1 : Diagramme de séquence système (Forme simplifiée)
Description textuelle du flot d’évènements principal (Acheter un billet de train en
utilisant la borne automatique)
1. l’utilisateur sélectionne, grâce au clavier, sa destination
2. l’utilisateur sélectionne ensuite la classe du billet (première ou seconde),
3. l’utilisateur insère sa carte bleue et paie le montant demandé,
4. la borne imprime le billet
5. l’utilisateur retire le billet imprimé.

2. Elaborer le diagramme de séquence


du scénario principal?
Exo 1 : Diagramme de séquence système (Forme simplifiée)
Description des flots d’évènements alternatifs (modifier la gare de départ):
1. l’utilisateur modifie la gare de départ,
2. puis, on reprend le flot d’évènements nominal (sélection de la destination, etc.).

3. Elaborer le diagramme
de séquence du scénario
alternatif?
Exo 1 : Diagramme de séquence système (Forme simplifiée)
On a deux diagrammes de séquences. Chaque diagramme permet de décrire un scénario
du cas d’utilisation "Acheter un billet en utilisant une borne automatique":
• flot d’événement principal (déroulement nominal)
• flot d événements alternatifs (changement de la gare de départ)

3. Elaborer un seul diagramme de séquence qui regroupe les deux scénarios (nominal et
alternatif) en utilisant les fragments combinés?
Exo1 : Diagramme de séquence d’objets (Borne automatique)
1. Modifier le diagramme de séquence simplifié en insérant les objets potentiels (classes),
à la place de l’objet «système»
2. compléter les messages nécessaires à la description du fonctionnement du cas
d’utilisation « Acheter un billet de train en utilisant la borne automatique »
Forme détaillée d’un DS : éclatement du système en classes
Dans la forme simplifiée d’un diagramme de séquence, le système est vu comme une
boîte noire. Sa forme détaillée permet de :
• mettre en évidence les différents composants et classes du système,
• décrire plus précisément les interactions entre les objets.

Cette forme détaillée se déduit de la forme simplifiée, sachant que :


• Les acteurs et les différentes composantes du système seront représentées par
des objets de classes ;
• Les interactions seront représentées par des messages échangés (appels de
méthodes) entre les objets des classes ;
Processus de développement
Processus de développement
La phase d'analyse du domaine permet d'élaborer la première version du diagramme de
classes appelée modèle du domaine.
Ce modèle doit définir les classes qui modélisent les entités ou concepts présents dans le
domaine métier de l'application (objet du monde réel).
 Ces classes ne doivent pas contenir d'opération, mais seulement des attributs.
Le diagramme de classes participantes effectue la jonction entre les cas d'utilisation, le
modèle du domaine et la maquette. Il modélise trois types de classes:
1. Les classes entités : qui proviennent directement du modèle du domaine.
2. Les classes de dialogues: qui permettent les interactions entre l'IHM et les utilisateurs.
3. Les classes de contrôles: qui modélisent la cinématique de l'application (la jonction
entre les classes de dialogues et les classes entités).
Eclatement du système: Recherche des classes
• Décomposer le système revient à déterminer les différentes classes qui le compose.
• Pour chaque classe potentielle, il faut rechercher ses responsabilités et ses collaborations en
utilisant la technique CRC (Classe / Responsabilité / Collaboration).

• Responsabilité (appelée aussi service) : description de haut niveau de la raison d’être d’une
classe, qui décrit l’un des objectifs attendus de la classe au sein du système ;
• Collaboration : interaction de la classe potentielle avec d’autres classes du système nécessaire
à la réalisation d’une responsabilité.

Dans le cas d’utilisation "acheter un billet de train", on note un ensemble de classes potentielles à
priori nécessaires au bon fonctionnement du système : Système, Clavier, Écran, Imprimante, Trajet.
Eclatement du système: Recherche des classes
Au final, pour chaque classe analysée on doit avoir :
• Une ou plusieurs responsabilité(s) bien définie(s), sans doublon avec les responsabilités d’une autre classe ;
• Au moins une collaboration avec une autre classe pour l’une ou l’autre de ses responsabilités.
Exo 1 : Diagramme de séquence d’objets
Exo1 : Diagramme de séquence d’objets « Borne automatique »
1. Ajouter d’autres classes potentielles « card reader » et « coin reader » par exemple?
2. Ajouter des fragments combinés au DS Objet de la borne automatique?
3. Elaborer le diagramme de séquence d’objets détaillé
Eclatement du système: Recherche des classes
• Autres classes potentielles : LecteurCarteBleue (lit les infos de la CB), Lecteur de Billet, …etc.

LecteurCarteBlue
Attendre le message indiquant le mode de paiement par CB avec le montant du billet Système
(paramètre)
Attendre l’insertion de la carte bancaire Utilisateur
Valide la carte (date expiration, numéro et type de la carte) Système
Attendre le code saisi par l’utilisateur Utilisateur
Valide transaction (code-pin, code-carte, montant) S.A Banque
Transmettre le retour du SB (imprimer, msg erreur) Système
Exo2 : Guichet Automatique de Billets (GAB)
• Le GAB offre les services suivants :
• Distribuer de l’argent à tout porteur de carte bancaire (CB visa ou de la banque)
• Consultation du solde, dépôt en numéraire et dépôt de chèques pour le clients de la banque
porteurs de la carte de la banque
• Il faut également savoir que :
• Toutes les transactions sont sécurisées
• Il est nécessaire parfois de recharger le GAB en argent, en papier pour l’impression des
tickets, récupérer les chèques déposés, les cartes avalées et les numéraires déposés … etc.
• T.A.F
1. Identification des acteurs du GAB (principaux, secondaires)
2. Identification des cas d’utilisation
3. Diagramme des cas d’utilisation
4. Documentation du cas d’utilisation “Retirer de l’argent avec une carte visa"
Exo 2 : Diagramme de cas d’utilisation du GAB (Version: 2.2)

Quelques améliorations:
1. Les associations ne sont pas
unidirectionnel
2. Ajout du UC « S’authentifier»
3. Ajout des UCs (acteur opérateur de
maintenance)
• Recharger distributeur papier,
• Recharger distributeur
monnaie,
• récupérer numéraires déposés,
Exo2: Diagramme de cas d’utilisation du GAB (Version: 2.3)
Exo2: Documentation des cas d’utilisation
Scénario nominal(UC: Retirer de l’argent avec une carte bancaire):
1. Le porteur de CB introduit la carte dans le lecteur du GAB
2. Le GAB vérifie que la carte introduite est bien une carte Visa
3. Le GAB demande au porteur de saisir son code d’identification
4. Le porteur saisit son code d’identification
5. Le GAB compare le code saisi avec celui inscrit dans la puce de la carte
6. Le GAB demande une autorisation au système d’autorisation (SA Visa)
7. Le SA Visa donne son accord en indiquant le solde hebdomadaire
8. Le GAB demande au porteur de CB d’indiquer le montant souhaité
9. Le porteur saisit le montant
10. Le GAB contrôle le montant demandé par rapport au solde et le montant maximal permis
11. Le GAB demande au porteur de CB s’il veut un ticket
12. Le porteur de CB demande un ticket
13. Le GAB rend la carte au porteur de CB
14. Le porteur de CB reprend sa carte
15. Le GAB délivre les billets et un ticket
16. Le porteur de CB prend les billets et le ticket.
Exo2: Détailler un cas d’utilisation du système GAB avec un DSS

Le cas d’utilisation est complété


par un ensemble de diagrammes
de séquence qui permettent de
détailler graphiquement le
déroulement effectif des
différents scénarios.

DSS du scénario nominal


“Retirer de l’argent”
Exo2: DSS détaillé (Scénariis)
Exo2: Diagramme de séquence : Fragment combiné «s’authentifier»
Le fragment «S’authentifier» permet d’alléger le diagramme de séquence système en
utilisant le cadre ref proposé par UML 2.
Ex2: Diagramme de sequence système avec reference au cas inclus

Notez la contrainte
temporelle sur la réponse
du système d’autorisation.
Exo2: Elaborer le diagramme de séquence objet du système GAB?

1. Ajouter d’autres fragments combinés (opt, alt, ref,…) au DS Objet du système GAB?
2. Elaborer le diagramme de séquence d’objets détaillé
Diagramme d’activités

Détailler le cas d’utilisation


«retirer de l’argent » avec
un diagramme d’activités
De quel type de diagramme s’agit-il ici ?

Ce diagramme représente la
dynamique globale du GAB du
point de vue de l’acteur Client
banque, en représentant les
interactions entre ses cas
d’utilisation:
Tout d’abord le processus
d’authentification est représenté,
suivi du choix du type de
transaction : retrait, consultation
ou dépôt…

Diagramme global d’interaction (UML2)


Diagramme global d’interaction (UML2)

• Il est possible de remplacer chaque


référence par un diagramme de séquence.
Par exemple, l’interaction « S’authentifier ».
• Il est clair que le souci de lisibilité du
diagramme empêche de remplacer chaque
référence par un diagramme de séquence
entier.
Exercice 3 :
• Le diagramme de séquences ci-
dessous fait appel à des éléments
qui peuvent être définis dans un
diagramme des classes. On
supposera que a.x est de type
Integer.
• Construisez un diagramme des
classes cohérent avec le diagramme
de séquences ci-dessus? On veut un
diagramme des classes simple mais
qui définisse tous les éléments
utilisés dans le diagramme de
séquence.
Exercice 3 : Diagrammes de classes et de séquences
Exercice 4 : Diagramme de séquences
Le diagramme de classes présenté ci-dessous modélise la structure interne de la bibliothèque

Un acteur adhérent peut emprunter un exemplaire d'une œuvre donnée. L'emprunt se fait de la façon
suivante : la méthode emprunter est appelée avec un objet de classe Adhérent donné en argument ; s'il
reste des exemplaires dans la bibliothèque, l'un des exemplaires associés à l'œuvre est extrait via la
méthode extraireExemplaire, une instance de la classe Prêt est créée, puis l'exemplaire extrait de la
bibliothèque est attribué à l'adhérent grâce à l'opération attribuer. S'il restait un exemplaire, l'œuvre
retourne « OK » et dans le cas contraire, elle retourne « PasOK ».Donner le diagramme de séquence
correspondant.
1. Donner le diagramme de séquence correspondant.
2. Donner le code source (Java ; C++) correspondant au diagramme de classes?

Vous aimerez peut-être aussi