Diagramme de séquence
# Diagramme de séquence

Les diagrammes de séquences sont la représentation graphique des interactions entre les acteurs et le système selon un ordre chronologique dans la formulation Unified Modeling Language.

## L'utilité du diagramme de séquence

Le diagramme de séquence permet de montrer les interactions d'objets dans le cadre d'un scénario d'un diagramme des cas d'utilisation. Dans un souci de simplification, on représente l'acteur principal à gauche du diagramme, et les acteurs secondaires éventuels à droite du système. Le but est de décrire comment se déroulent les interactions entre les acteurs ou objets.

La dimension verticale du diagramme représente le temps, permettant de visualiser l'enchaînement des actions dans le temps, et de spécifier la naissance et la mort d'objets. Les périodes d'activité des objets sont symbolisées par des rectangles, et ces objets dialoguent à l'aide de messages.

## Dialogue entre les objets

Plusieurs types de messages (actions) peuvent transiter entre les acteurs et objets.

* message simple : le message n'a pas de spécificité particulière d'envoi et de réception.
* message avec durée de vie : l'expéditeur attend une réponse du récepteur pendant un certain temps et reprend ses activités si aucune réponse n'a lieu dans un délai prévu.
* message synchrone : l'expéditeur est bloqué jusqu'au signal de prise en compte par le destinataire. Les messages synchrones sont symbolisés par des flèches barrées.
* message asynchrone : le message est envoyé, l'expéditeur continue son activité que le message soit parvenu ou pris en compte ou non. Les messages asynchrones sont symbolisés par des demi-flèches.
* message dérobant : le message est mis en attente dans une liste d'attente de traitement chez le récepteur.

Le langage permet de décaler l'envoi et la réception des messages, pour montrer les délais de communication non négligeables. La plupart des ateliers UML ne prennent cependant pas en compte cette spécificité.

## Cadres d'interaction

Pour les cas plus complexes, on peut intégrer des algorithmes dans les diagrammes de séquences. Par le biais de cadres d'interaction, on peut préciser les opérantes d'un ensemble de messages :

* alt : fragments multiple alternatifs (si alors sinon)
* opt : fragment optionnel
* par : fragment parallèle (traitements concurrents)
* loop : le fragment s'exécute plusieurs fois
* region : région critique (un seul thread à la fois)
* neg : une interaction non valable
* break : représente des scenario d'exception
* ref : référence à une interaction dans un autre diagramme
* sd : fragment du diagramme de séquence en entier
