4. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
4
Diagramme de Sequences
Les diagrammes de séquences permettent de représenter
des collaborations entre objets selon un point de vue
temporel
Elément essentiel : la chronologie des envois de messages
C’est un diagramme d’interactions qui permet d'expliquer le
fonctionnement global d'un système
5. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
5
Diagramme de Sequences
Les diagrammes de séquences permettent d'établir un lien
entre les diagrammes de cas d'utilisation et les diagrammes
de classes
Ils montrent comment des objets (i.e. des instances de classes)
communiquent pour réaliser une certaine fonctionnalité
6. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
6
Diagramme de Sequences
Les diagrammes de séquence s’utilisent de deux manières
selon la phase du cycle de vie et le niveau de détail désiré́
1. Documentation des cas d’utilisation
• Description utilisant des termes proches de l’utilisateur
• Les détails de synchronisation ne sont pas approfondis
• L’indication portée sur les flèches correspond alors à des
évènements et non à des envois de messages au sens des langages
de programmation
8. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
8
Diagramme de Sequences
Les diagrammes de séquence s’utilisent de deux
manières selon la phase du cycle de vie et le niveau de
détail désiré
2. Représentation précise des interactions entre objets
Le concept de message comprend toutes les formes
de communication entre objets (l’appel de procédure,
l’évè́nement discret, le signal entre flots d’exécution
ou encore l’interruption matérielle, …)
10. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
10
Objet
Dans un diagramme de séquence, un objet correspond à :
oUne instance du système ou d’une classe du système
Exemple : Ligne téléphonique
oUne instance d’un acteur externe (humain ou un autre
système)
Exemples : Appelant, Appelé
11. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
11
Objet
Dans un diagramme de séquence, un objet est matérialisée à
l’aide d’un rectangle et d’une barre verticale appelée ligne
de vie des objets
La ligne de vie correspond à une partie interne de l’objet
Classe de l’objet
Ligne de Vie
Nom de l’objet
12. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
12
Objets, Instances d’Acteurs
Dans le cadre de la documentation d’un cas d’utilisation, les
objets qui représentent des instances d’acteurs peuvent
être représentés en utilisant le symbole de l’acteur dans les
Cus ou le rectangle
oL’acteur principal est représenté à gauche
oLe système est représenté par un seul objet au centre
oLes acteurs secondaires sollicités durant le scénario sont
représentés à droite du système
14. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
14
Messages
Les objets communiquent en échangeant des messages
Un message est représenté́ au moyen d’une flèche
horizontale, orientée de l’émetteur du message vers le
destinataire
L'ordre d'envoi (chronologie) d'un message est déterminé
par sa position sur l'axe vertical du diagramme
Le temps s'écoule "de haut en bas" de cet axe
16. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
16
Types d’Envoi de Message
Il y a deux grandes catégories d’envois de message :
Les envois synchrones : L’émetteur est bloqué et attend que
le destinataire ait fini de traiter le message
Les envois asynchrones : L’émetteur n’est pas bloqué et
peut continuer son exécution.
17. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
17
Types d’Envoi de Message
Un envoi synchrone
se représente par
une flèche
Un envoi asynchrone
se représente par
une demi-flè̀che
18. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
18
Délai de Transmission
Un message soumis à un
délai de transmission
significatif se
représente par une
flèche oblique
19. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
19
Message Réflexif
Un message réflexif est un message qu’un objet s’envoie
Il peut représenter une activité interne à l'objet ou une
abstraction d'une autre interaction
Un message réflexif se représente par une flèche qui
boucle sur la ligne de vie de l’objet
22. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
22
Création et Destruction d’Objet
La création d’un objet se
matérialise en faisant pointer
le message de création sur le
rectangle qui symbolise
l’objet créé
La destruction est indiquée par la fin de la
ligne de vie et par une lettre X
23. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
23
Période d’Activation d’un Objet
Une période d’activatioń correspond au temps pendant
lequel un objet effectue une action, soit directement, soit
par l’intermédiaire d’un autre objet
Ne pas confondre la période d'activation d'un objet avec sa
durée de vie (de la création à la destruction)
Un objet peut être actif plusieurs fois au cours de son existence
24. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
24
Période d’Activation d’un Objet
L’activité d’un objet se représente au moyen d'une bande
rectangulaire superposée à la ligne de vie de l'objet
L’objet A active
un autre objet B
26. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
26
Indications Textuelles
Un diagramme de séquence peut être complé́té par des
indications textuelles (texte libre ou pseudo-code)
Instant d’émission d’un
message (transition)
27. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
27
Structures de Contrôle
Les Pseudo-Code permettent de représenter sur le
diagramme de sequences des structures de contrôle
(conditionnelles et itératives)
Il est ainsi possible de représenter une interaction et pas
seulement un scenario particulier
30. Inf4030-COO (UO1/SEA/DI/SITR) Dr. A. SABANE
30
Références
Modélisation objet avec UML, Pierre-Alain Muller
UML 2 pour les développeurs : Cours avec exercices
corrigés, Xavier Blanc, Isabelle Mounier
UML en français (http://uml.free.fr )
Rédaction des Cas d’Utilisation, Jean Philippe Babau
Cas d’utilisation Diagrammes de séquence, Chantal
Reynaud de Université Paris X
Notes de l'éditeur
Comportent plusieurs éléments :
Acteurs
Cas d'utilisation
Relations de dépendances, de généralisations et d'associations
il est très difficile de spécifier les besoins fonctionnels que nous avons sur une application à l’aide d’objets
nous développeurs, plutôt habitués à utiliser le découpage fonctionnel
Pour résoudre ce problème et réconcilier le paradigme objet avec la possibilité d’expri- mer les besoins d’une application sous forme de fonctions, UML définit le concept de cas d’utilisation.
les diagrammes de séquence et de communications mettent en œuvre principalement1 des objets et non des classes. Cela permet par exemple de montrer les échanges dans des configurations di érentes.
Le contexte des objets n’est pas représenté de manière explicite comme dans les diagrammes de collaboration.
système , car elle se concentre sur un seul objet à la fois. Un diagramme d'interaction permet d'offrir une vue plus holistique(13) du comportement d'un jeu d'objets.
Une collaboration permet de décrire la mise en œuvre d'une fonctionnalité par un jeu de participants
Un rôle est la description d'un participant
Les classes découvertes au moment de l'analyse (celles qui figurent dans le diagramme de classes) ne sont parfois pas assez détaillées pour pouvoir être implémentées par des développeurs. UML propose de partir des classeurs découverts au moment de l'analyse (tels que les classes, mais aussi les sous-systèmes, les cas d'utilisation…) et de les décomposer en éléments suffisamment fins pour permettre leur implémentation. Les classeurs ainsi décomposés s'appellent des classeurs structurés.
Le diagramme de séquence montre l’ordre des échanges de messages et le passage du temps. C’est un diagramme dit temporel. Les principaux concepts sont les objets participants à la séquence, le temps, les messages, et la création et la suppression de participants.
Les forces des diagrammes de séquence sont leur simplicité et leur e cacité pour montrer l’aspect temporel (du haut vers le bas des schémas).
L’interaction la plus petite est l’événement. Un événement est une interaction pendant laquelle « quelque chose » arrive
Ils décrivent la description de l’interaction, souvent dans des termes proches de l’utilisateur et sans entrer dans les détails de la synchronisation
Ils décrivent la description de l’interaction, souvent dans des termes proches de l’utilisateur et sans entrer dans les détails de la synchronisation
Ils décrivent la description de l’interaction, souvent dans des termes proches de l’utilisateur et sans entrer dans les détails de la synchronisation
Ainsi, les premiers diagrammes de séquence de l’analyse indiquent par exemple uniquement les noms des opérations. Ensuite, les mêmes diagrammes sont ra nés pour y ajouter les arguments et les types de retour, puis les attributs des classes appelantes ou variables locales recevant les valeurs de retour.
Il est important de noter qu’un message asynchrone ne possède pas de valeur de retour.
système , car elle se concentre sur un seul objet à la fois. Un diagramme d'interaction permet d'offrir une vue plus holistique(13) du comportement d'un jeu d'objets.
UML propose principalement deux diagrammes pour illustrer une interaction : le diagramme de communication et celui de séquence. Une même interaction peut être présentée aussi bien par l'un que par l'autre (cf. figure 7.4 et 7.5).
système , car elle se concentre sur un seul objet à la fois. Un diagramme d'interaction permet d'offrir une vue plus holistique(13) du comportement d'un jeu d'objets.
UML propose principalement deux diagrammes pour illustrer une interaction : le diagramme de communication et celui de séquence. Une même interaction peut être présentée aussi bien par l'un que par l'autre (cf. figure 7.4 et 7.5).
(qu'on peut détailler dans un autre diagramme de séquence).
Cette construction ne correspond pas toujours à un vrai message ; elle peut indiquer un point d’entrée dans une activité de plus bas niveau, qui s’exerce au sein de l’objet. Les interactions internes (entre objets contenus par un objet composite) représentées par un message réflexif peuvent aussi être décrites dans un diagramme de séquence.
(qu'on peut détailler dans un autre diagramme de séquence).
Cette construction ne correspond pas toujours à un vrai message ; elle peut indiquer un point d’entrée dans une activité de plus bas niveau, qui s’exerce au sein de l’objet. Les interactions internes (entre objets contenus par un objet composite) représentées par un message réflexif peuvent aussi être décrites dans un diagramme de séquence.
(qu'on peut détailler dans un autre diagramme de séquence).
Cette construction ne correspond pas toujours à un vrai message ; elle peut indiquer un point d’entrée dans une activité de plus bas niveau, qui s’exerce au sein de l’objet. Les interactions internes (entre objets contenus par un objet composite) représentées par un message réflexif peuvent aussi être décrites dans un diagramme de séquence.
(qu'on peut détailler dans un autre diagramme de séquence).
Cette construction ne correspond pas toujours à un vrai message ; elle peut indiquer un point d’entrée dans une activité de plus bas niveau, qui s’exerce au sein de l’objet. Les interactions internes (entre objets contenus par un objet composite) représentées par un message réflexif peuvent aussi être décrites dans un diagramme de séquence.
Une classe est un type abstrait caractérisé par des propriétés (attributs et méthodes) communes à un ensemble d'objets et permettant de créer des objets ayant ces propriétés
Classe = attributs + méthodes + instanciation
structure commune d’un ensemble d’objets et permet la construction d’objets instances de cette classe
L’héritage entre classes UML doit être considéré comme une inclusion entre les ensembles des objets instances des classes. Les objets instances des sous-classes sont des objets instances des superclasses.
Dans le cas d’un appel de procédure, et plus généralement dans le cas des envois synchrones, le retour en fin d’exécution de l’opération est implicite : il n’est pas nécessaire de le représenter dans les diagrammes. L’objet A reprend son exécution lorsque l’action déclenchée dans l’objetBest terminée
En revanche, dans le cas des envois asynchrones, le retour doit être matérialisé lorsqu’il existe.
Dans le cas d’un appel de procédure, et plus généralement dans le cas des envois synchrones, le retour en fin d’exécution de l’opération est implicite : il n’est pas nécessaire de le représenter dans les diagrammes. L’objet A reprend son exécution lorsque l’action déclenchée dans l’objetBest terminée
En revanche, dans le cas des envois asynchrones, le retour doit être matérialisé lorsqu’il existe.
Exemple : Cet instant nommé peut par la suite servir de référence, pour construire des contraintes temporelles
Exemple : Cet instant nommé peut par la suite servir de référence, pour construire des contraintes temporelles
Exemple : Cet instant nommé peut par la suite servir de référence, pour construire des contraintes temporelles
Exemple : Cet instant nommé peut par la suite servir de référence, pour construire des contraintes temporelles