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