Méthodologies O.O de Conception des S.I
CH7. Diagramme de séquence
CH7. Diagramme de séquence
Présentation générale et
concepts de base
Eléments syntaxiques Les fragments d’interaction Autre utilisation du diagramme
de séquence
2
22/04/2010
CH7. Diagramme de séquence
Présentation générale
Les DCU: modélisent à QUOI sert le système, en organisant
les interactions possibles avec les acteurs.
Les DC: spécifient QUI sera à l'oeuvre dans le système pour
réaliser les fonctionnalités décrites par les DCU.
Les diagrammes de séquences: décrire COMMENT les
éléments du système interagissent entre eux et avec les acteurs.
Les objets au coeur d'un système interagissent en s'échangent
des messages.
Les acteurs interagissent avec le système au moyen d'IHM
(Interfaces Homme-Machine).
3
22/04/2010
CH7. Diagramme de séquence
Présentation générale(2)
Le diagramme de séquence:
est un diagramme d’interaction qui fait partie de la famille
des diagrammes de comportement.
représente la succession chronologique des opérations
réalisées par un acteur.
Il indique les objets que l’acteur va manipuler et les opérations
qui font passer d’un objet à l’autre.
Ce diagramme est organisé dans le temps, le temps se déroulant
de haut en bas.
Pour chaque cas d’utilisation , nous pouvons décrire un ou plusieurs scénario, décrit chacun par un diagramme de séquences.
4
22/04/2010
CH7. Diagramme de séquence
Concepts de base
Les éléments communicants: type de diagramme Ce
comporte un ensemble d’éléments communicants, qui occupent chacun un couloir vertical dans le diagramme.
Au dessous de chaque élément, nous trouvons une ligne en pointillés
qui représente la ligne de vie de l’élément
5
22/04/2010
CH7. Diagramme de séquence
Concepts de base
Les éléments communicants:
Par défaut l’élément communicant se présente dans un rectangle.
La syntaxe d’écriture du nom de l’élément peut être assez libre si ce diagramme est utilisé pour la construction d’un modèle des cas d’utilisation.
Dans ce cas, ce diagramme permet de présenter au client
la dynamique du futur système qui sera mis en place (les noms désignent des acteurs ou des éléments du futur système).
Il est utilisé pour compléter la description textuelle d’un cas
d’utilisation en présentant de façon visuelle le scénario.
6
22/04/2010
CH7. Diagramme de séquence
Concepts de base
Ligne de vie: Représente l’ensemble des opérations exécutées par un
objet.
Message: définit une communication particulière entre des lignes de
vie (objets ou acteurs).
Activité: La réception des messages provoque une période d'activité (rectangle vertical sur la ligne de vie) marquant le traitement du message (spécication d'exécution dans le cas d'un appel de méthode).
Objet 1
Objet 2
Activité
7
Emission d'un message
Réception d'un message
Sens du temps
22/04/2010
CH7. Diagramme de séquence
Concepts de base
Message synchrone et asynchrone
Message synchrone – Dans ce cas l’émetteur reste en
attente de la réponse à son message avant de poursuivre ses actions. Les messages synchrones correspondent à des
opérations dans le diagramme de classes
Message asynchrone – Dans ce cas, l’émetteur n’attend
pas la réponse à son message, il poursuit l’exécution de ses opérations.
8
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques
Les différentes sortes de messages Pour décrire les communications entre les éléments, nous pouvons utiliser
différentes sortes de messages :
l’invocations d’actions (méthodes) de la part de l’élément distant ;
le message de retour (la réponse à un envoi de message) ;
la création d’un nouvel élément communicant ;
la destruction d’un élément communicant ;
le message perdu ;
Publicité
le message trouvé.
9
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques Invocation d’action
• L’émetteur envoie un message vers le récepteur afin que
celui-ci accomplisse une action.
• Si
le diagramme est utilisé dans un modèle de cas d’utilisation, la syntaxe du message est assez libre. On décrit les informations et les ordres échangées entre deux éléments.
10
22/04/2010
InternauteE-Library1: Recherche rapideCH7. Diagramme de séquence
Eléments syntaxiques message de retour
• Dans certains cas, l’envoi d’un message entraîne l’envoi représentée par une flèche en
d’une réponse qui est pointillés orientée dans l’autre sens.
11
22/04/2010
InternauteE-Library1: Recherche_rapide()2: Ouvrages trouvésCH7. Diagramme de séquence
Eléments syntaxiques
Création d’objet
Création d’objet
Si dans le cadre de son fonctionnement un élément a besoin d’un autre élément pour effectuer un traitement particulier, il peut le créer grâce à un message de création (qui correspond à l’invocation d’un constructeur).
Est matérialisée par une flèche qui pointe sur le sommet d'une
ligne de vie.
On peut aussi utiliser un message asynchrone ordinaire
portant le nom create.
Une fois que l’élément a été créé, il peut échanger des
messages avec les autres entités.
12
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques
Création d’objet
13
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques
Création d’objet
Création d’objet
Si dans le cadre de son fonctionnement un élément a besoin d’un autre élément pour effectuer un traitement particulier, il peut le créer grâce à un message de création (qui correspond à l’invocation d’un constructeur).
Est matérialisée par une flèche qui pointe sur le sommet d'une
ligne de vie.
On peut aussi utiliser un message asynchrone ordinaire
portant le nom create.
Une fois que l’élément a été créé, il peut échanger des
messages avec les autres entités.
14
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques
le message perdu
• Le message perdu est un message dont on connaît
l’émetteur mais pas le récepteur.
•
Il représenté par une flèche partant de la ligne de vie d’un élément vers un disque noir.
• Le message perdu pouvant être, à l’origine, synchrone ou asynchrone, nous avons donc les types de pointes de flèches.
15
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques
le message perdu
Cette sorte de message permet de modéliser, par exemple,
les scénarii de pertes de message sur un réseau:
16
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques le message trouvé
• Le message trouvé est le pendant du message perdu, il correspond à un message dont on connaît le destinataire mais pas l’émetteur.
•
Il est représenté par une flèche partant d’un disque noir vers la ligne de vie d’un élément.
17
22/04/2010
CH7. Diagramme de séquence
Eléments syntaxiques le message trouvé
Ce message
le comportement d’un élément suite à la réception d’un message d’exception:
pour modéliser
utilisé
peut
être
18
22/04/2010
CH7. Diagramme de séquence
Récap
19
22/04/2010
CH7. Diagramme de séquence
Les fragments d’interaction
Le DS fait apparaître des interactions Il est possible de
découper ce diagramme en fragments afin de s’intéresser à un sous-ensemble d’interactions qui seraient spécifiques à une exécution concurrente ou résultant d’une prise de décision …
Publicité
Ce système permet donc de construire des diagrammes de
séquence compacts tout en gardant un haut niveau de clarté d’un point de vue sémantique
20
22/04/2010
CH7. Diagramme de séquence
Les fragments d’interaction
Un fragment d’interaction se représente globalement comme un diagramme de séquence dans un rectangle avec indication dans le coin à gauche du nom du fragment.
21
22/04/2010
CH7. Diagramme de séquence
Les fragments d’interaction
Les fragments d’interaction imbriqués
Il est également possible (et même souvent pratiqué)
d’imbriquer des fragments d’interaction
22
22/04/2010
CH7. Diagramme de séquence
Les fragments d’interaction Types de fragment
UML propose différents types de fragments qui sont identifiés
par l’opérateur inscrit dans l’encart. Les opérateurs de choix et de boucle : Alt (alternatives) ; Opt
(option) ; Break (break); Loop
Les opérateurs contrôlant l'envoi en parallèle de messages :
Par (parallel); Critical region (critical);
Les opérateurs contrôlant l’envoi de messages :
Ignore/Consider; Assert; Neg (negative);
Les opérateurs fixant l’ordre d’envoi des messages :Strict
(strict sequencing) / Seq (weak sequencing) ;
L'opérateur: Ref.
23
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur alt
Opérateur alt
L’opérateur alt correspond à une instruction de test avec une ou plusieurs alternatives possibles. Il est aussi permis d’utiliser les clauses de type sinon.
Formalisme et exemple
L’opérateur alt se représente dans un fragment possédant au
moins deux parties séparées par des pointillés.
L’exemple: diapo suivante:
24
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur alt
Exemple: Librairie en ligne / DS: Chercher des ouvrages
25
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur alt
Exemple: Librairie en ligne / DS: Editer fiche client
26
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur opt
Opérateur opt
L’opérateur opt (optional) correspond à une instruction de
test sans alternative (sinon).
Formalisme et exemple
L’opérateur opt se représente dans un fragment possédant
une seule partie.
27
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur opt
Exemple: Librairie en ligne / DS: Chercher des ouvrages
28
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction
Opérateur break
Opérateur break
Représenter une situation exceptionnelle correspondant à
un scénario de rupture par rapport au scénario général.
Le scénario de rupture s’exécute si la condition de garde est
satisfaite.
Formalisme et exemple:
29
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction
Opérateur break
Exemple: Librairie en ligne / DS: Chercher des ouvrages
30
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur loop
Opérateur loop
Correspond à une instruction de boucle qui permet
d’exécuter une séquence d’interaction tant qu’une condition est satisfaite.
Il est possible aussi d’utiliser une condition portant sur un
nombre minimum et maximum d’exécution de la boucle en écrivant : loop min, max.
Il est aussi possible de combiner l’option min/max avec la
Publicité
condition associée à la boucle.
Formalisme et exemple:
31
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur loop
Exemple: Librairie en ligne / Une partie du DS: Gérer son panier
32
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur par
Opérateur par
L’opérateur par (parallel) permet de représenter deux
séries d’interactions qui se déroulent en parallèle.
Formalisme et exemple:
L’opérateur par se représente dans un fragment possédant
deux parties séparées par une ligne en pointillé.
33
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur par
34
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction
Opérateur critical
Opérateur critical
L’opérateur critical permet d’indiquer qu’une séquence d’interactions ne peut être interrompue compte tenu du caractère critique des opérations traitées.
On considère que le traitement des interactions comprises
dans la séquence critique est atomique.
Formalisme et exemple:
35
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction
Opérateur critical
On suppose que plusieurs éléments fonctionnent de manière parallèle et qu’ils partagent une ressource critique comme une base de donnée (par exemple).
L’accès en écriture à cette ressource doit se faire dans une
section critique qui garantie que l’élément « écrivain » a un accès exclusif à la base de données : on doit éviter qu’un autre élément écrive ou lise pendant cet accès ; on ne doit pas interrompre l’écriture qui s’effectue de façon
« atomique ».
36
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction
Opérateur critical
37
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur ref
L’opérateur ref permet d’appeler une séquence d’interactions
décrite par ailleurs constituant ainsi une sorte de sous- diagramme de séquence.
Cette référence est une sorte de « #include » du sous-
diagramme de séquence invoqué, cela signifie que ce sous- diagramme est virtuellement collé à la place du cadre référence
Formalisme et exemple
38
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur ref
39
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur ref
Le passage d’information entre deux séquences La référence à un sous-diagramme de séquence est un
moyen commode de produire des diagrammes de séquence clairs et compacts.
Cependant, le diagramme de séquence principal et le sous-
diagramme (celui qui est référencé) doivent pouvoir s’échanger des messages.
Cet échange peut s’effectuer au moyen de portes (gates) qui sont placés à la frontière des cadres de type sd ou ref : les message entrent et sortent par ces portes.
40
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur ref
Exemple: Le sous-diagramme
41
22/04/2010
CH7. Diagramme de séquence
Fragment d’interaction Opérateur ref
Exemple: Utilisation du sous-diagramme
42
22/04/2010
CH7. Diagramme de séquence
Autre utilisation du DS
Le diagramme de séquence peut être aussi utilisé pour
documenter un cas d’utilisation.
Les interactions entre objets représentent, dans ce cas, des flux
d’informations échangés et non pas de véritables messages entre les opérations des objets.
Un diagramme de séquence « système » traite le système comme une « boîte noire » représente les interactions entre les acteurs et le système illustre la succession temporelle des événements qui influencent le fonctionnement du système met en évidence les responsabilités élémentaires du système permet de bien délimiter les frontières du système
43
22/04/2010