# TD3
Diagrammes de séquences

## Introduction

Bienvenue à ma troisième séance de travaux dirigés en COO, le troisième TD porte sur les diagrammes de séquences. Il se déroule en une séance. Ce TD se déroule en une séance et il s'agit de comprendre comment fonctionnent les diagrammes de séquences. Lors de cette séance, le but est de représenter graphiquement les interactions entre les acteurs et le système (et non entre acteurs) selon un ordre chronologique. Et bien évidement de comprendre comment focntionnent ces diagrammes :)

## cours

La semaine du 08 février, nous avons eu un cours magistral qui portait sur les diagrammes de séquences. Vous pouvez retrouver le cours à l'adresse ci-dessous : Pour le cours c'est par ici !

## points-clé

Avant de commencer le TD, nous allons rappeler les points importants pour cette première séance. Les diagrammes de séquences permettent de représenter comment les éléments du système interagissent entre eux et avec les acteurs. En conception orientée objet, on ne représente jamais les échanges entre les acteurs, en effet, ceux-ci ne sont pas gérés par le systè̀me. Pour représenter ces diagrammes, on traduit souvent un cas d'utilisation en diagramme de séquence. Nous allons donc à présent définir les notions importantes :

- Le trait se lisant de haut en bas est appelé ligne de vie, il représente le temps qui s'écoule verticalement. Les interactions effectuées par les acteurs du système se traduisent par un rectangle oblique sur la ligne de vie. Ces rectangles représentent la durée de l'objet actif, c'est ce que l'on appelle l'activation, il peut y en avoir plus d'une par objet. Juste au dessus de ces lignes de vie, on retrouve les fameux acteurs ainsi que les objets. Les acteurs de diagrammes de séquences ne sont pas obligatoirement des êtres vivants. Ils peuvent être une IHM ou bien encore une base de données par exemple. Les objets font quant à eux partie du système.
- Ensuite entre ces lignes de vie, on retrouve des flèches appelées messages, qui traduisent un comportement, une interaction d'un acteur vers un objet ou autre acteur. Les messages de retour sont représentés par une flèche en pointillées avec la méthode juste au dessus, contrairement aux messages envoyés. C'est une réponse à la demande envoyée juste avant. On peut leur ajouter des paramètres comme pour des méthodes, entre parenthèses. Ils peuvent être synchrones ou bien asynchrones, mais quelle est ma différence ? Eh bien, les messages synchrones mettent en attente l'expéditeur jusqu'à ce que le destinataire prenne en compte le message. S'il est asynchrone, il peut être pris en compte à n'importe quel moment ou ignoré et donc n'interrompt pas l'exécution de l'expéditeur. Un message peut aussi être réflexif, c'est à dire qu'il est exécuté par le même acteur ou objet. Sans oublier que l'on peut en détruire ou en créer.
- Enfin, on peut effectuer de nombreuses opérations dans les diagrammes de séquences. Ces opérations sont repésentées par des cadres dans lesquels on retrouve les messages. Commençons par les boucles (loop) qui comme leur nom l'indique permet de répeter une action un certain nombre de fois. En haut du cadre, à la gauche, on inscrit les multiplicités ainsi que le nom de l'opération. Les séquences alternatives (alt) permettent de proposer au moins une séquence alternative à celle initiale.
  Il existe d'autre opérations telles que la référence ou encore l'option, mais je vous laisse vérifier cela dans le cours de Madame Blay ;).
- Enfin, on peut finir sur les notions les plus techniques du diagrammes de séquences. Parlons de la création ainsi que la destruction d'objets. On les retrouve souvent dans la suite de notre diagramme de séquence.
  La création correspond à un message de création qui pointe vers un objet créé avec une nouvelle ligne de vie. LA création quant à elle détruit un objet qui reçoit un message de déstruction. Cette fois ci, la flèche est suivie d'une croix sur la ligne de vie de l'objet à détruire.

  ## étude de cas

  1. L’observateur sélectionne la crise sur laquelle il travaille.
  2. Le système lui suggère un ensemble de types de missions, par exemple : appeler les pompiers, prévoir une dépanneuse, prévenir la préfecture, …
  3. L’observateur demande alors la création des différentes missions en précisant pour chacune son type.
  4. Le système s’assure alors que la mission peut bien être créée en s’adressant à un service extérieur de gestion de ressources qui vérifie l'existence de ressources libres correspondantes.
  5. Le système confirme alors la possibilité de créer la mission.
  6. L'observateur confirme la création de la mission.
  7. Le système enregistre la mission en attente de prise en charge par le coordinateur.
  8. L'observateur passe à la mission suivante.

  ## consignes

  Compléter votre diagramme de classe pour prendre en compte les nouvelles informations.
  Compléter le diagramme de séquence pour, dans le cas où une mission ne peut pas être réalisée, en proposer une autre du même acabit.
  Annoter votre diagramme avec les cas d'erreurs.

  ## Solution

  ## Fiche de révisions

  Pour pouvoir réviser toutes les connaissances acquises à chaque TD, vous retrouverez un lien vers une fiche de révisions qui vous permettra de bien vous préparer au contrôle final.
  Comme promis voici le lien de la fiche de révision pour les diagrammes de séquences :)

- © Untitled
- Design: HTML5 UP