uml : diagramme de séquences · 2020-01-05 · introduction uml diagramme de sequences?´ un...

33
UML : diagramme de s´ equences Achref El Mouelhi Docteur de l’universit ´ e d’Aix-Marseille Chercheur en programmation par contrainte (IA) Ing ´ enieur en g ´ enie logiciel [email protected] H & H: Research and Training 1 / 28

Upload: others

Post on 12-Jan-2020

68 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

UML : diagramme de sequences

Achref El Mouelhi

Docteur de l’universite d’Aix-MarseilleChercheur en programmation par contrainte (IA)

Ingenieur en genie logiciel

[email protected]

H & H: Research and Training 1 / 28

Page 2: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Plan

1 Introduction

2 Ligne de vie

3 Message

4 Fragment combine

H & H: Research and Training 2 / 28

Page 3: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Introduction

UML

Diagramme de sequences?

Un diagramme dynamique d’UML

Representant l’interaction entre les acteurs et le systeme selon unordre chronologique

Pouvant servir a detailler un cas d’utilisation

Le temps s’ecoule selon une dimension verticale (non graduee)de haut en bas

Les objets sont organises horizontalement

L’echange entre les differents elements se fait moyennant desmessages

H & H: Research and Training 3 / 28

Page 4: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Introduction

UML

Mots-cles associes

Ligne de vie (et activite)

Message

Fragment combine

H & H: Research and Training 4 / 28

Page 5: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Ligne de vie

Rectangle au sommet contenant le nom de type (objet, acteur...) +ligne verticale pointillee

Permettant de definir la zone d’envoi et de reception de messagesechanges avec les autres lignes de vie

H & H: Research and Training 5 / 28

Page 6: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Plusieurs representations possibles en UML

:TypeActeur nomObjet:NomType :NomType nomObjet:

H & H: Research and Training 6 / 28

Page 7: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Exemple

:Vendeur :PageVendeur a:Article

L’acteur Vendeur peut etre represente comme un objet.

H & H: Research and Training 7 / 28

Page 8: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Etant donne l’exemple suivant

Article

codeA: stringprix: floatdescription: string

getPrix(): floatsetPrix(value:float): float

Vendeur

Systeme

Modifier prix article

classe Livre diagramme de cas d’utilisation

Objectif

Detailler le cas d’utilisation Modifier prix article avec undiagramme de sequences.

H & H: Research and Training 8 / 28

Page 9: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Etant donne l’exemple suivant

Article

codeA: stringprix: floatdescription: string

getPrix(): floatsetPrix(value:float): float

Vendeur

Systeme

Modifier prix article

classe Livre diagramme de cas d’utilisation

Objectif

Detailler le cas d’utilisation Modifier prix article avec undiagramme de sequences.

H & H: Research and Training 8 / 28

Page 10: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Deroulement

Le vendeur va utiliser la page vendeur pour appeler une methodechangerPrix(a,p) : a etant un objet de type Article et p lenouveau prix

Pour modifier le prix de cet article, la page vendeur fera appel a lamethode setPrix(p) de l’objet a

Comment modeliser tout ca?

Les echanges entre deux lignes de vie se fait via des messages

H & H: Research and Training 9 / 28

Page 11: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Ligne de vie

UML

Deroulement

Le vendeur va utiliser la page vendeur pour appeler une methodechangerPrix(a,p) : a etant un objet de type Article et p lenouveau prix

Pour modifier le prix de cet article, la page vendeur fera appel a lamethode setPrix(p) de l’objet a

Comment modeliser tout ca?

Les echanges entre deux lignes de vie se fait via des messages

H & H: Research and Training 9 / 28

Page 12: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Message

Represente par une fleche

Definit une communication entre deux lignes de vie

Declenche une activite sur une ligne de vie

Possede un nom (methode, signal...)

Peut avoir des parametres

H & H: Research and Training 10 / 28

Page 13: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Voici comment modeliser les messages en UML

:Vendeur :PageVendeur

changerPrix(a,p)

activite

Remarque

La reception d’un message a declenche une activite dans l’objet:PageVendeur

H & H: Research and Training 11 / 28

Page 14: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Voici comment modeliser les messages en UML

:Vendeur :PageVendeur

changerPrix(a,p)

activite

message

Remarque

La reception d’un message a declenche une activite dans l’objet:PageVendeur

H & H: Research and Training 11 / 28

Page 15: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Le diagramme de sequence correspondant au cas d’utilisationModifier prix article

:Vendeur :PageVendeur a:Article

changerPrix(a,p)setPrix(p)

La ligne en pointille correspond a la reponse au message synchrone

H & H: Research and Training 12 / 28

Page 16: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UMLMessage Synchrone

Bloque l’emetteur

Le recepteur rend la main a l’emetteur par un message de retour(sa representation est optionnelle)

Peut specifier le resultat de la methode invoquee

:PagePanier a:Article

getPrix()

p = getPrix()

H & H: Research and Training 13 / 28

Page 17: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Message Asynchrone

Ne bloque l’emetteur

Representee graphiquement par une fleche continue a extremiteouverte

objet1: objet2: objet3:

message1(m1)

message2(m2)

H & H: Research and Training 14 / 28

Page 18: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Explication

:Objet1 a envoye un premier message a :Objet2 qui adeclenche une activite chez ce dernier

Ensuite, il a envoye un deuxieme message a :Objet3 sansattendre ni la reponse de :Objet2 ni la fin de sans activite

H & H: Research and Training 15 / 28

Page 19: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Qu’arrive t-il en cas de message concomitants?

Si un objet est actif, la reception d’un message implique lacreation d’une nouvelle activite

La nouvelle activite sera representee par un rectanglechevauchant le premier

objet1: objet2:

H & H: Research and Training 16 / 28

Page 20: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Un objet peut creer et detruire un deuxieme objet

La creation d’un objet se fait par l’envoi d’un message avec lestereotype <<create>>

La destruction se fait par l’envoi d’un message avec le stereotype<<destroy>>

objet1:

objet2:<<create>>

<<destroy>>

H & H: Research and Training 17 / 28

Page 21: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UMLQu’est ce qu’un message complet, perdu et trouve?

Complet : evenements d’envoi et de reception connus

Perdu : evenement d’envoi connu mais pas la reception

Trouve : evenement de reception connu mais pas l’envoi

:Object

messageperdumessage

trouve

H & H: Research and Training 18 / 28

Page 22: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UMLQu’est ce qu’un message complet, perdu et trouve?

Complet : evenements d’envoi et de reception connus

Perdu : evenement d’envoi connu mais pas la reception

Trouve : evenement de reception connu mais pas l’envoi

:Object

messageperdumessage

trouve

H & H: Research and Training 18 / 28

Page 23: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UMLExercice

Lequel de ces deux diagrammes correspond a l’envoi d’un message asynchrone?

Ne pas representer un message de retour synchrone signifie t-il que le type de retour estvoid?

obj1 est un acteur, car seuls les acteurs peuvent envoyer de messages

obj1 est le type de l’objet qui envoi le message

La ligne de vie de obj1 dans le premier diagramme prendra fin apres sa perioded’activite ?

obj1 obj2 obj1 obj2

H & H: Research and Training 19 / 28

Page 24: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Question

Comment faire pour repeter une partie du diagramme de sequence oupour ajouter un bloc conditionnel?

Solution

Utiliser les fragments combines

H & H: Research and Training 20 / 28

Page 25: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Message

UML

Question

Comment faire pour repeter une partie du diagramme de sequence oupour ajouter un bloc conditionnel?

Solution

Utiliser les fragments combines

H & H: Research and Training 20 / 28

Page 26: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

Fragment combine

Fragment d’interaction

Utilisant un operateur [et des operandes]

Exemple d’operateurs :

alt : operateur conditionnel a plusieurs operandes (equivalent d’unbloc if ... else if ... else en programmation)

opt : operateur conditionnel a une seule operande (if sans else)

loop : operateur repetitif acceptant au max deux valeurs min etmax

par : operateur d’execution parallele

....

H & H: Research and Training 21 / 28

Page 27: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

Structure d’un fragment combine

operator

[condition 1]

[condition 2 ]

.

.

.

[else]

Operandes

fragmentcombine

Certains fragments n’ont pas besoin d’une condition ni de plusieursoperandes.

H & H: Research and Training 22 / 28

Page 28: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

Exemple de alt avec un distributeur de billets

:User :Frame c:Compte

saisirCode(c,code)verifCode(code)

alt

[codeCorrect]

[codeIncorrect]

saisirMontant(c,m)

saisirCode(c,code)

Si le code est incorrect , il faut recommencer (c’est repetitif) ⇒ On peututiliser l’operateur loop.

H & H: Research and Training 23 / 28

Page 29: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UMLExemple de alt avec un distributeur de billets

:User :Frame c:Compte

saisirCode(c,code)verifCode(code)

opt

[codeCorrect]saisirMontant(c,m)

loop(3)

En precisant un seul parametre (3) pour loop, on a defini unnombre exact d’iterationSi on ne precise aucun parametre, alors il s’agit d’une boucleinfinie

H & H: Research and Training 24 / 28

Page 30: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

Remarque

La solution precedente oblige l’utilisateur a refaire l’operation 3 foismeme s’il saisit correctement le code.

H & H: Research and Training 25 / 28

Page 31: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

Pour corriger ca, on peut utiliser un fragment break qui seraexecute avant de quitter la boucle

:User :Frame c:Compte

saisirCode(c,code)verifCode(code)

break

[codeCorrect]saisirMontant(c,m)

loop(3)

H & H: Research and Training 26 / 28

Page 32: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

On peut aussi definir le contexte comme un fragment principal

Distributeur de billets

:User :Frame c:Compte

saisirCode(c,code)verifCode(code)

break

[codeCorrect]saisirMontant(c,m)

loop(3)

H & H: Research and Training 27 / 28

Page 33: UML : diagramme de séquences · 2020-01-05 · Introduction UML Diagramme de sequences?´ Un diagramme dynamique d’UML Representant l’interaction entre les acteurs et le syst´

Fragment combine

UML

Exercice

Completer le diagramme precedent en etudiant les differents caspossibles pour le retrait d’argent (solde insuffisant, possibilited’imprimer un ticket...).

H & H: Research and Training 28 / 28