UML 2 - Diagramme de séquence «système» Diagramme de comportement Analyse fonctionnelle Bertrand LIAUDET SOMMAIRE LE DIAGRAMME DE SEQUENCE «SYSTEME» 2 1. Le diagramme de séquence système 2 Présentation 2 Diagramme de séquence «système» du «save as» 3 Diagramme de séquence «système» de «retirer de l argent» 5 2. Architecture et diagramme de séquence système 7 Appel réflexif sur l objet «système» 7 Définition de plusieurs objets «sous système» 7 3. Utilisation en architecture Système et Réseaux 8 Communication entre les sous-système 8 Exemple : protocole d autentification Kerberos 8 4. Modularité, test, boucle et autres contraintes 9 Modularité 9 Test, boucle, option 10 Autres contraintes 10 Première édition : janvier 2009 Deuxième édition : décembre 2009 Mise à jour décembre 2010. Edition juillet 2015 Mai 2017 UML Diagramme de séquence système page 1/10 - Bertrand LIAUDET
LE DIAGRAMME DE SEQUENCE «SYSTEME» Il est facile de décrire la méthode encore que son application exige à coup sûr savoir et pratique. La méthode est dénuée de sens tant qu elle est déconnectée du rapport au savoir. 1. Le diagramme de séquence système ANALYSE FONCTIONNELLE Diagramme UML Cas d utilisation Séquence Activités Présentation UC, scénario, scénario nominal Un UC est une abstraction. Les scénarios correspondent aux instances concrètes d un UC. Le scénario nominal est le scénario pour lequel le UC est conçu. Les scénarios alternatifs sont les scénarios alternatifs au scénario nominal. Définition d un diagramme de séquence «système» Le diagramme de séquence «système» décrit, pour un UC, ou pour un scénario d un UC, les échanges entre l utilisateur et le système (c est-à-dire le logiciel à réaliser) et plus généralement les échanges entre le système et tous les acteurs du système. On peut choisir de se limiter au diagramme de séquence système du scénario nominal pour éviter d alourdir le diagramme. Les scénarios alternatifs pourront être présentés dans un diagramme d activité. Attention : ne pas confondre avec le diagramme de séquence «objet» Le diagramme de séquence «objet» décrit les échanges de messages entre les objets, autrement dit, les appels de méthode d un objet par un autre. Ce diagramme relève de l analyse organique. Il sera détaillé dans un autre cours. Version textuelle La séquence des échanges entre l utilisateur et le système pour un UC donné peut être présentée de façon uniquement textuelle. Dans ce cas, on présente tous les scénarios de l UC et non pas seulement le scénario nominal. UML Diagramme de séquence système page 2/10 - Bertrand LIAUDET
Diagramme de séquence «système» du «save as» Diagramme de séquence du scénario nominal du UC : «save as» UC : save as But : sauvegarder un fichier sous un nouveau nom ScÈnario nominal PrÈ-conditions : fichier ouvert sous l'ancien nom Post-conditions : ficiher ouvert sous le nouveau nom systëmeword utilisateur Affichage menu Choix du "save as" affichage Ècran de saisie Saisie du nom et du rèpertoire Ø Syntaxe des diagrammes de séquence «système»: En commentaires, on précise les caractéristiques du diagramme : UC concerné, but de l UC, cas nominal ou alternatif, pré-condition, post-condition. L utilisateur communique avec le «système» considéré comme un objet : ici c est l objet «systèmeword». Il est souligné, la première lettre du nom de l objet est en minuscule. Pré-conditions et post-conditions décrivent l état du système avant et après l usage de l UC. Message synchrone : une fois le message envoyé, l expéditeur est bloqué jusqu à ce que le destinataire accepte le message. Message asynchrone : le message envoyé n interrompt pas l exécution de l expéditeur. Caractère synchrone ou asynchrone est indéterminé. Attention, cette représentation peut aussi être utilisée pour les messages asynchrones. Remarque : on pourrait se passer des deux premiers échanges : menu et choix du «save as» et entrer directement dans le déroulement du «save as» : affichage de l écran de saisie. UML Diagramme de séquence système page 3/10 - Bertrand LIAUDET
Description textuelle du UC : «save as» On peut aussi décrire les scénarios de façon uniquement textuelle (on n utilisera pas cette méthode). En général dans ce cas, on décrit à la fois le cas nominal et les cas alternatifs. Identification Nom du cas : Save as But : sauvegarder dans un autre fichier Acteur principal : l utilisateur Acteur secondaire : aucun Séquencement Un fichier a été ouvert Pré-conditions (état du système avant l opération). Fichier ouvert sous l ancien nom Enchaînement nominal 1.0 Affichage du menu 2.0 Choix du save as 3.0 Affichage de l écran de saisie du save as 4.0 Saisie du nom et du répertoire du nouveau fichier et validation. 5.0 L application renvoie un message de confirmation de l opération. Post-conditions (état du système après l opération) Fichier ouvert sous le nouveau nom. Alternative n 1 4.1 Annulation en cours de saisie (4.1 est une alternative à 4.0) Post-conditions (état du système après l opération) Fichier ouvert sous l ancien nom. Alternative n 2 5.1.1 Message d erreur : le disque n est pas accessible 5.1.2 Validation du message Retour en 3.0 Ø Syntaxe des descriptions textuelles des diagrammes de séquence «système» On décrit l enchaînement nominal, puis les alternatives. Les alternatives peuvent conduire à la fin de l UC ou à un retour à une étape du cas nominal. Toute sortie de l UC s accompagne d une description des post-conditions. Remarques La description textuelle permet de représenter les alternatives et les répétitions. On n a pas présenter cette possibilité dans les diagrammes de séquence, toutefois la syntaxe UML le permet, quoique ce soit peu recommandé et peu utilisé pour des questions de lisibilité. Pour représenter les alternatives, on préférera l utilisation de diagrammes d activités. UML Diagramme de séquence système page 4/10 - Bertrand LIAUDET
Diagramme de séquence «système» de «retirer de l argent» Diagramme de séquence du scénario nominal du UC : retirer de l argent. On s intéresse au logiciel d une banque : un client vient retirer de l argent sur son compte. C est le guichetier qui gère l opération. UC : retirer argent But : retirer de l'argent sur un compte ScÈnario nominal PrÈ-conditions : rien Post-conditions : le compte est ouvert systëme guichetier Affichage Ècran de saisie Saisie du numèro de compte systëme Central Demande de validitè du compte imprimante Affichage Ècran de choix des opèrations Saisie d'un retrait de 200 euros Demande de dèbit du compte impression bordereau Ø Syntaxe des diagrammes de séquence «système» Dans cet exemple, on a 2 acteurs secondaires qui sont des machines : le système central (un logiciel) et l imprimante (une machine physique). Remarques On a choisi d entrer dans l UC par l ouverture du compte et d en sortir avec un compte ouvert. On pourrait aussi choisir de fermer le compte dans l UC ou d entrer dans l UC avec un compte ouvert. UML Diagramme de séquence système page 5/10 - Bertrand LIAUDET
Description textuelle du UC : retirer de l argent. Identification Nom du cas : retirer de l argent But : opération de retrait d argent par un guichetier de banque Acteur principal : le guichetier Acteurs secondaires : le système central, l imprimante Séquencement L UC est utilisable à tout moment Pré-conditions (état du système avant l opération). rien Enchaînement nominal 1.0 Le système affiche un écran de saisie 2.0 Le guichetier saisit le numéro de compte du client 3.0 L application demande la validité du compte auprès du système central 4.0 Le système central valide le compte 5.0 L application affiche un écran de choix des opérations 6.0 Le guichetier sélectionne un retrait d espèces de 200 euros 7.0 L application demande au système central de débiter le compte. 8.0 Le système central valide la demande 9.0 Le système imprime un bordereau 10.0 Le système notifie au guichetier qu il peut délivrer le montant demandé. Post-conditions (état du système après l opération). Le compte est ouvert pour d autres opérations Alternative n 1 4.1 Le système central ne valide pas le compte (alternative à 3.0) Retour en 1.0 Alternative n 2 8.1 Le système central ne valide pas le retrait (alternative à 7.0) Retour en 5.0 Remarques : La description textuelle permet de représenter les alternatives et les répétitions. On n a pas présenté cette possibilité dans les diagrammes de séquence, toutefois la syntaxe UML le permet, quoique ce soit peu recommandé et peu utilisé pour des questions de lisibilité. Pour représenter les alternatives, on préférera l utilisation de diagrammes d activités. UML Diagramme de séquence système page 6/10 - Bertrand LIAUDET
2. Architecture et diagramme de séquence système Appel réflexif sur l objet «système» On peut montrer des appels réflexifs qui signifient l existence de communication entre soussystèmes : systëme Acteur_1 Message 1 message 2 Définition de plusieurs objets «sous système» On peut représenter plusieurs sous-systèmes dans le diagramme de séquence système : sous SystËme 1 sous SystËme 2 Acteur_1 Message_1 Message_2 UML Diagramme de séquence système page 7/10 - Bertrand LIAUDET
3. Utilisation en architecture Système et Réseaux Communication entre les sous-système Pour décrire un environnement «système et réseaux» : l OS, les serveurs, serveur d authentification, serveur d émission de tickets, etc., les diagrammes de séquences systèmes sont très adaptés. Cet usage est malheureusement peu répandu chez les ingénieurs système et réseaux! Au lieu de cela, il utilise des schémas non standard et qui en général mélangent plusieurs niveaux d information, rendant les choses peu claires! Exemple : protocole d autentification Kerberos https://fr.wikipedia.org/wiki/kerberos_(protocole) Solution non UML Ce schéma qui ressemble à un diagramme de séquence système mais mélange plusieurs niveaux d information : Diagramme UML : diagramme de séquence système Mieux vaudrait un diagramme de séquence système! Mesdames et messieurs les futurs ingénieurs système : à vous de jouer! UML Diagramme de séquence système page 8/10 - Bertrand LIAUDET
4. Modularité, test, boucle et autres contraintes Modularité On peut regrouper dans un module une séquence d échanges entre l utilisateur et le système. Ce module pourra être utilisé dans d autres diagrammes de séquence sans avoir à re-détailler son contenu. Exemple et syntaxe : Ø Diagramme de séquence du Cas d utilisation 1 : Use Case 1 systëme Acteur LOGIN demande login et mot de passe sai si e l ogi n et mot de passe Message 1 message 2 Ø Diagramme de séquence du Cas d utilisation 2 : On réutilise le module «LOGIN» : Use Case 2 systëme Acteur LOGIN Message 3 Message 4 UML Diagramme de séquence système page 9/10 - Bertrand LIAUDET
Test, boucle, option On peut représenter des tests et des boucles dans les diagrammes de séquence. Toutefois, au niveau des diagrammes de séquence, il est préférable de ne pas le faire et de privilégier une lecture facilitée en se limitant à un seul scénario par diagramme de séquence système. Les diagrammes d activités sont plus appropriés pour représenter les tests et les boucles. On les utilisera pour représenter la totalité des scénarios d un cas d utilisation. http://laurent-audibert.developpez.com/cours-uml/?page=diagrammes-interaction Test : boîte «alt» (alternative) Une boîte «alt» permet de représenter des séquences alternatives. La boîte est séparée en deux par un trait pointillé séparant deux parties correspondant aux deux alternatives. On peut préciser la condition à coté du «alt». Boucle : boîte «loop» Une boîte «loop» permet de représenter une répétition. On peut préciser les caractéristiques de la boucle à côté du «loop». Option : boîte «opt» Une boîte «opt» permet de représenter une option (quelque chose de réalisé sous condition, l équivalent d un extend des use cases). On peut préciser la condition de l option à côté du «opt». Autres contraintes On peut représenter toutes sortes de contraintes par des commentaires : des notes attachées aux éléments graphiques qu on veut contraindre UML Diagramme de séquence système page 10/10 - Bertrand LIAUDET