Analyse, Conception Objet Diagrammes de Séquences

Transcription

Analyse, Conception Objet Diagrammes de Séquences
Diagrammes de séquences
SIMMO/ENSM.SE
Diagrammes de séquences
SIMMO/ENSM.SE
Analyse, Conception Objet
Sommaire
• Définition
Diagrammes de Séquences
• Utilisation des diagrammes de séquences
• Objets
• Ligne de vie
• Messages
Une partie du matériau de ce cours est issue du cours de S.Galland ([email protected])
• Contraintes temporelles
Octobre 2002
• Structures de contrôle
Oct.2002
1
Diagrammes de séquences
SIMMO/ENSM.SE
Oct.2002
Sommaire– 2
Diagrammes de séquences
Définition
SIMMO/ENSM.SE
Interactions dans le système
• Notation dérivée des “Object Message Sequence Charts” du Siemens
Pattern Group.
• Une interaction se traduit par un envoi de message entre
objets.
• Description de l’ordre des interactions entre les objets qui composent le
système.
• Les diagrammes de séquences permettent de faire
apparaı̂tre :
• Représentation se concentrant sur la séquence des interactions d’un
point de vue temporel.
– les objets intervenant dans l’interaction (acteurs ou
objets appartenant au système)
• Adaptés à la modélisation des aspects dynamiques des systèmes temps
réels et des scénarios complexes mettant en œuvre peu d’objets.
– la description de l’interaction (messages)
– les interactions entre les intervenants (diagramme de
séquences)
• Les diagrammes de séquences sont des diagrammes d’interaction
comme les diagrammes de collaboration.
• Les diagrammes de séquences servent à communiquer
autant pour les usagers que pour les développeurs
Oct.2002
Définition– 3
Oct.2002
Interactions dans le système– 4
Diagrammes de séquences
SIMMO/ENSM.SE
Diagrammes de séquences
SIMMO/ENSM.SE
Objets
Utilisation des diagrammes de séquences
• Documentation des cas d’utilisation :
• Les objets sont des entités appartenant au système (instance
d’une classe) ou se trouvant à ses limites (acteurs)
– description des interactions en des termes proches de
l’usager,
les étiquettes des messages correspondent à des
évènements se produisant dans le système.
• Ils représentent :
– soit des concepts abstraits, soit des acteurs
(documentation de cas d’utilisation)
• Représentation des interactions “informatiques” et
répartition des flots de contrôle :
– soit des objets d’implantation (diagrammes de
séquences pour les interactions “informatiques”)
– le concept de message unifie les formes de
communication entre objets (appel de procédure,
évènement discret, signal, ...)
Oct.2002
• Ils sont identifiés par l’intermédiaire des cas d’utilisation
ou des diagrammes de classe.
Utilisation des diagrammes de séquences– 5
Diagrammes de séquences
SIMMO/ENSM.SE
Oct.2002
Diagrammes de séquences
SIMMO/ENSM.SE
Ligne de vie des objets
Objets : représentation
• Dans UML, les objets sont représentés comme suit :
• Elle est représentée par une ligne verticale en dessous des
objets.
Nom:Classe
• Elle représente la période de temps durant laquelle l’objet
“existe”.
:Rôle
Oct.2002
Objets– 6
• Le nom de l’objet est composé de son rôle (rôle ou nom)
et/ou du nom de la classe instanciée (classe).
• Création d’un objet : un message pointe sur le symbole de
l’objet.
• Le nom est souligné pour indiquer qu’il s’agit d’une
instance.
• Destruction d’un objet : sa ligne de vie se termine par une
×).
croix en trait épais (×
Objets– 7
Oct.2002
Ligne de vie des objets– 8
Diagrammes de séquences
SIMMO/ENSM.SE
Diagrammes de séquences
SIMMO/ENSM.SE
Messages
Ligne de vie des objets (suite)
Un objet
Créer
Détruire
• Les objets communiquent en échangeant des messages représentés sous
forme de flèches.
Autre objet
• L’ordonnancement horizontal des messages n’a aucune signification.
• La dimension verticale représente l’écoulement du temps.
X
• Les messages sont étiquettés par le nom de l’opération ou du signal
invoqué.
Un objet
Autre objet
Encore un objet
Un message
Un autre message
Un dernier message
Oct.2002
Ligne de vie des objets– 9
Diagrammes de séquences
SIMMO/ENSM.SE
Oct.2002
Diagrammes de séquences
Messages : activation des objets
SIMMO/ENSM.SE
Messages : étiquettes
• Une période d’activité correspond au temps pendant lequel
un objet effectue une action directe ou indirecte.
• Les étiquettes décrivent les messages auxquels elles sont
attachées.
• Représentation : bande verticale le long de la ligne de vie
de l’objet.
• Syntaxe générale:
[’[’garde’]’] [itération] [résultat :=]
nom message [’(’arguments’)’]
Un objet
A
B
• nom message : nom de l’opération ou du signal invoqué
par l’intermédiaire de ce signal,
Activation
durée d’activation
Oct.2002
Messages– 10
• garde : condition booléenne et optionnelle (représentée
entre crochets) autorisant ou non l’envoi d’un message
(utilisation d’OCL).
Messages– 11
Oct.2002
Messages– 12
Diagrammes de séquences
SIMMO/ENSM.SE
Diagrammes de séquences
SIMMO/ENSM.SE
Étiquettes des messages : itération
Étiquettes des messages : arguments
• Itération séquentielle : envoi séquentiel de n instances du
même message.
Syntaxe : *[ clause d’itération ]
• Liste des paramètres du message, séparés par des virgules.
• Les arguments et le nom de l’action déterminent sans
ambiguı̈té l’action à réaliser.
• Itération parallèle : envoi parallèle de n instances du même
message.
Syntaxe : *||[ clause d’itération ]
A
• Les arguments peuvent contenir des valeurs retournées par
des messages envoyés précédemment.
• Exemples :
Afficher ( x, y ) – affiche les valeurs x et y
Soustraire( Aujourd’hui,
DateDeNaissance ) – calculer le nombre de jours
entre deux dates
B
*[i:=1..n] Message
Oct.2002
Messages– 13
Diagrammes de séquences
SIMMO/ENSM.SE
Oct.2002
Diagrammes de séquences
• Catégorie de messages utilisée pour indiquer la progression vers une
prochaine étape d’une séquence.
• Le résultat est constitué d’une liste de valeurs retournées
par le message.
• Tous les messages de cette catégorie sont asynchrones.
• Ces valeurs peuvent être utilisées comme paramètres des
autres messages.
A
B
SIMMO/ENSM.SE
Messages : flot de contrôle à plat
Étiquettes des messages : résultat
A
Messages– 14
• Messages représentés par une seule flèche.
• Cas particulier : dans le cas de systèmes concurrents, une demi-flèche
indique l’envoi d’un message, et une flèche un message avec attente de
prise en compte.
B
Message
p := Message
A
Message2 ( p )
<=>
B
p
Message2 ( p )
Oct.2002
Messages– 15
Oct.2002
Messages– 16
Diagrammes de séquences
SIMMO/ENSM.SE
Diagrammes de séquences
SIMMO/ENSM.SE
Messages : retour explicite
Messages : appel de procédure
• Dans un appel de procédure (flot de contrôle emboı̂té), la
séquence emboı̂tée doit se terminer pour que la séquence
englobante reprenne le contrôle.
• Dans le cas d’un système coucurrent, il est utile d’expliciter
la fin de l’exécution de sous-procédures.
• On utilise une flèche pointillé (déjà utilisée dans le cadre
des valeurs retournées).
• Les appels de procédure sont représentés par des flèches à
pointe triangulaire.
A
A
B
B
A
B
C
Un message
B récupère le
contrôle après
que C a fini sa
tâche
Un autre message
Retour
Retour explicite
explicite
avant suicide
X
A récupère le
contrôle après
que B a fini sa
tâche
Oct.2002
Messages– 17
Diagrammes de séquences
SIMMO/ENSM.SE
Oct.2002
Messages– 18
Diagrammes de séquences
Messages : appel récursif
SIMMO/ENSM.SE
Messages : réflexivité
• L’envoi de messages récursifs se représente par un
dédoublement de la bande d’activation.
• Un objet peut s’envoyer un message.
• Cette construction peut indiquer un point d’entrée dans une
activité de plus bas niveau.
• L’objet apparaı̂t alors comme s’il était actif plusieurs fois.
Un objet
Objet composite
Composant A
Composant B
point
Récursion()
d’entrée
Oct.2002
Messages– 19
Oct.2002
Messages– 20
Diagrammes de séquences
SIMMO/ENSM.SE
Diagrammes de séquences
SIMMO/ENSM.SE
Contraintes temporelles
Structures de contrôle : boucles
• Pour modéliser les délais de transmission non négligeables, on utilise les deux
notations suivantes :
• Modélisation des structures de contrôles itératives :
– par pseudo-code (while X loop end loop)
– une flèche oblique,
– ou des notations temporelles dans la marge.
– par condition d’itération (*[X]) sur le message lui
même.
• Les instants d’émission et de réception d’un message sont représentés par le
couple symbole,symbole .
A
x
{y−x < 3s}
y
{z−y < 1s}
{t’−t < 2s}
B
A
B
A
B
C
while X
loop
Message
Message
*[X] Message
Message
z
Message
end loop
t
Représentation par pseudo−code
t’
Oct.2002
Contraintes temporelles– 21
Diagrammes de séquences
SIMMO/ENSM.SE
Représentation par condition d’itération
Oct.2002
Structures de contrôle : boucles– 22
Diagrammes de séquences
SIMMO/ENSM.SE
Structures de contrôle : conditions
Structures de contrôle : conditions (suite)
• Modélisation des structures de contrôles conditionnelles,
A
• chez l’expéditeur d’un message :
– par pseudo-code (if X else end if)
B
if X
Message
else
Message
C
end if
– par garde ([X])
Représentation par pseudo−code
• chez le destinataire d’un message :
A
B
C
– par duplication de la ligne de vie
[X] Message
[non X] Message
Représentation par garde
Oct.2002
Structures de contrôle : boucles– 23
Oct.2002
Structures de contrôle : boucles– 24
Diagrammes de séquences
SIMMO/ENSM.SE
Structures de contrôle : conditions (suite)
A
B
Message
Message
[X]
[Y]
Représentation par dédoublement de la ligne de vie
Oct.2002
Structures de contrôle : boucles– 25