UML : Langage de mdélisatin bjet unifié Curs n 5 : Diagramme de séquences 1) Rôle du diagramme de séquences : Le diagramme de séquence fait parties des diagrammes cmprtementaux (dynamique) et plus précisément des diagrammes d interactins. Il permet de représenter des échanges entre les différents bjets et acteurs du système en fnctin du temps. A mins que le système à mdéliser sit extrêmement simple, nus ne puvns pas mdéliser la dynamique glbale du système dans un seul diagramme. Nus ferns dnc appel à un ensemble de diagrammes de séquences chacun crrespndant à une sus fnctin du système, généralement d ailleurs pur illustrer un cas d utilisatin. 2) Représentatin du diagramme de séquence : 2-1) Délimitatin du diagramme de séquence : Le diagramme de séquence est placé dans un rectangle qui dispse d une étiquette sd en haut à gauche (qui signifie sequence diagramm) suivi du nm du diagramme. 2-2) L bjet : Dans un diagramme de séquence, l bjet à la même représentatin que dans le diagramme des bjets. C'est-à-dire un rectangle dans lequel figure le nm de l bjet. Le nm de l bjet est généralement suligné et peut prendre l une des quatre frmes suivantes : Les diagrammes de séquences représentant les échanges entre les bjets mais aussi les échanges avec les acteurs, nus truverns aussi la représentatin du stickman (qui peut être cnsidéré cmme un bjet). 2-3) La ligne de vie : Cmme il représente la dynamique du système, le diagramme de séquence fait entrer en actin les instances de classes intervenant dans la réalisatin d un cas d utilisatin particulier. A chaque bjet est asscié une ligne de vie (en trait pintillés à la verticale de l bjet) qui peut être cnsidéré cmme un axe temprel (le temps s écule du haut vers le bas). Dans ce genre de diagramme, la quantificatin du temps n a pas d imprtance. 1/9
La ligne de vie indique les pérides d activité de l bjet (généralement, les mments u l bjet exécute une de ces méthdes). Lrsque l bjet est détruit, la ligne de vie s achève par un crix. 2-4) Les messages : 2-4-1) Définitin : Un message définit une cmmunicatin particulière entre des lignes de vie. Ainsi, un message est une cmmunicatin d un bjet vers un autre bjet. La réceptin d un message est cnsidérée par l bjet récepteur cmme un événement qu il faut traiter (u pas). Plusieurs types de messages existent, les plus cmmuns snt : L invcatin d une pératin : message synchrne (appel d une méthde de l bjet cible). L envi d un signal : message asynchrne (typiquement utilisé pur la gestin événementielle). La créatin u la destructin d une instance de classe au curs du cycle principal. Les messages synchrnes : La réceptin d un message synchrne dit prvquer chez le destinataire le lancement d une de ses méthdes (qui suvent prte le même nm que le message). L expéditeur du message reste blqué pendant tute l exécutin de la méthde et attend dnc la fin de celle-ci avant de puvir lancer un nuveau message. C est le message le plus fréquemment utilisé. Les messages asynchrnes : Dans le cas d un message asynchrne, l expéditeur n attend pas la fin de l activatin de la méthde invquée chez le destinataire. Un message asynchrne peut être : Un appel de méthde : Fréquent dans un système multi-threads (multi-tâche). Ainsi, l bjet expéditeur n étant pas blqué pendant l exécutin de la méthde, il peut cntinuer ainsi à envyer d autres messages. Un signal (cas le plus fréquent) : L bjet expéditeur transmet juste une infrmatin à l bjet destinataire. Suvent, ce snt les acteurs u les périphériques qui envient des signaux, typiquement utilisé dans la gestin événementielle d une IHM graphique, cmme la librairie QT, par exemple. 2-4-2) Représentatin graphique : Dans le diagramme de séquence, les envis de messages snt représentés par des flèches hrizntales qui vnt de la ligne de vie de l bjet émetteur vers la ligne de vie de l bjet récepteur du message. Les messages synchrnes : (flèche avec un triangle plein à sn extrémité). Les messages asynchrnes : (simple flèche) Les messages de retur (répnses) : (simple flèche en pintillés). Si une méthde qui a été activée (par un message) dit returner des valeurs à la fin de sn activatin, cela se fait par un message retur. Le message de retur n est dnc pas un appel de méthde (il ne prvque dnc pas l activatin d un bjet) Le message retur prte suvent le nm de l élément returné. 2/9
2-4-3) Créatin et destructin d bjets : Une séquence peut aussi cntenir la créatin u la destructin d un bjet : La créatin d un bjet est matérialisée par un message spécifique, appel d un cnstructeur, généralement accmpagné du stérétype «create» qui pinte sur le début (le smmet) de la ligne de vie de l bjet créé (Le rectangle de l instance de la classe est alrs surbaissée). La destructin d un bjet est représentée par une crix à la fin de sa ligne de vie. Suvent l bjet est détruit suite à la réceptin d un message mais ce n est pas bligatire. Dans ce cas là, il prte le stérétype «destry». 2-4-4) Syntaxe des messages synchrnes et asynchrnes: Dans la plupart des cas, la réceptin d un message est suivie de l exécutin de la méthde de la classe cible. Cette méthde peut recevir des arguments et la syntaxe des messages permet de transmettre ces arguments. La plupart du temps, dans un diagramme de séquence, nus puvns nus cntenter de définir un message par : - Sn nm (qui est le nm de la méthde appelée u du signal envyé). Nus puvns lui adjindre facultativement : - Une numértatin devant le nm message (séparé du nm du message par 2 pint " : "). La numértatin s effectue séquentiellement à partir de 1. - Les paramètres passés à la méthde u au signal (entre parenthèses après le nm du message). 2-4-5) Syntaxe des répnses (messages retur) : Cmme pur les messages synchrnes u asynchrnes, nus puvns nus cntenter de dnner au message retur un simple nm, mais nus puvns aussi les caractériser plus précisément en utilisant la syntaxe suivante : numér : attribut = nmmessage (paramètres) : valeurderetur. 3/9
2-4-6) Remarque sur la syntaxe des messages dans les diagrammes de séquence : La syntaxe que nus venns de vir est simple et très suvent largement suffisante pur décrire les messages des diagrammes de séquence. 3) Quelques séquences expliquées : 3-1) Messages returs implicites et explicites : Le retur d un message synchrne peut ne pas être représenté, le retur est alrs implicite. Par cntre, dans le cas d un message asynchrne, il est impératif de faire apparaître le message de retur. Le retur est explicite. Bien entendu, si l exécutin de la méthde lancée par le message asynchrne ne dit rien returner, il est évident que nus ne devns pas représenter le message de retur (c'est généralement le cas le plus classique, ntamment avec la gestin événementielle). Les 3 diagrammes suivants snt équivalents : 3-2) Recuvrement des bandes d activatins : Lrsqu un bjet est déjà activé il peut quand même recevir d autres messages (appel d une autre de ses méthdes), cela se représente par un dédublement de la bande d activatin. 3-3) Messages récursifs : Un bjet peut s envyer un message à lui-même (utilisatin d une autre méthde du même bjet). Cela se représente là aussi par un dédublement de la bande d activatin. 4/9
3-4) Cntraintes temprelles : Des repères temprels avec des cntraintes peuvent être placés le lng de la ligne de vie. Un message avec un temps de prpagatin nn négligeable peut être représenté par une flèche blique u en l'écrivant explicitement. 3-6) Messages perdus et truvés : - Le message perdu est un message dnt nus cnnaissns l émetteur mais pas le récepteur. Il est représenté par une flèche partant de la ligne de vie d un élément vers un disque nir. Le message perdu puvant être, à l rigine, synchrne u asynchrne, nus avns dnc les types de pintes de flèches. Cette srte de message permet de mdéliser, par exemple, les scenarii de pertes de message sur un réseau. - Le message truvé est un message dnt nus cnnaissns le destinataire mais pas l émetteur. Il est représenté par une flèche partant d un disque nir vers la ligne de vie d un élément. Ce message peut être utilisé pur mdéliser le cmprtement d un élément suite à la réceptin d un message d exceptin. 4) Fragments d interactins cmbinés : Un fragment d interactins est une partie du diagramme de séquence (délimitée par un rectangle) assciée à une étiquette (dans le cin supérieur gauche). L étiquette cntient un pérateur d interactin qui permet de décrire des mdalités d exécutin des messages à l intérieur du cadre. 5/9
Les pérandes d un pérateur d interactin snt séparés par une ligne pintillée. Les cnditins de chix des pérandes (éventuels) snt dnnées par des expressins bléennes entre crchets ([ ]). Les principales mdalités snt les bucles, les branchements cnditinnels, les alternatives, les envis simultanés, etc. 4-1) Fragment d interactin avec pérateur «pt» : L pérateur ptin (pt) cmprte un pérande et une cnditin de garde assciée. Le susfragment s exécute si la cnditin de garde est vraie et ne s exécute pas dans le cas cntraire. 4-2) Fragment d interactin avec pérateur «alt» : L pérateur alternatives (alt) est un pérateur cnditinnel pssédant plusieurs pérandes séparés par des pintillés. C est l équivalent d une exécutin à chix multiples. Chaque pérande détient une cnditin de garde. Seul le sus-fragment dnt la cnditin est vraie est exécuté. La cnditin else est exécutée que si aucune autre cnditin n est valide. 4-3) Fragment d interactin avec pérateur «lp» : L pérateur de bucle (lp) exécute une itérative dnt la séquence qu elle cntient est exécutée tant que la garde qui lui est assciée est vraie. - La garde s écrit de la façn suivante : lp [min, max, cnditin] : Chaque paramètre (min, max et cnditin) est ptinnel. Le cntenu du cadre est exécuté min fis, puis cntinue à s exécuter tant que la cnditin et que le nmbre d exécutin de la bucle ne dépasse pas max fis. - Exemple de gardes : lp[3] La séquence s exécute 3 fis. Lp[1, 3, cde=faux] La séquence s exécute 1 fis puis un maximum de 2 autres fis si cde=faux. 6/9
4-4) Fragment d interactin avec pérateur «par» : Un fragment d interactin avec l pérateur de traitements parallèles (par) cntient au mins deux sus fragments (pérandes) séparés par des pintillés qui s exécutent simultanément (traitements cncurrents). 4-5) Autres fragments d interactins: Nus venns de vir les 4 fragments d interactins les plus utilisés (pt, alt, lp et par). Il en existe en réalité 13 au ttal, ci-dessus la liste des 8 autres : ignre et cnsidere : pur les fragments facultatifs u bligatires. critical : pur les fragments qui divent se déruler sans être interrmpus. break : pur les fragments représentants des scenarii exceptinnels u de ruptures (ex appui sur la tuche «Esc»). Le scénari de rupture est exécuté si une cnditin de garde est satisfaite. assert : Pur les fragments dnt n cnnaît à l avance les paramètres du message (exemple : après la saisie des 4 chiffres d un cde, la saisie suivante sera bligatirement la tuche «Entrée»). seq : indique que le fragment est cmpsé de plusieurs sus fragments qui peuvent s exécuter dans n imprte quel rdre (mais pas en même temps). strict : pur les fragments dnt les messages divent se déruler dans un rdre bien précis. neg : pur indiquer que la séquence à l intérieur du fragment n est pas valide. ref : permet de faire appel à un autre diagramme de séquence. 5) Stérétypes de Jacbsn : A l intérieur d un système, il existe très suvent des classes qui pssèdent un rôle bien particulier qui serait intéressant de visualiser d une façn nn équivque dans vtre diagramme de séquence. C est le cas ntamment : Pur les classes qui représentent des cmpsants de l IHM. Pur la classe qui cntrôle glbalement le système avec la prise en cmpte de la gestin événementielle. 7/9
Pur les classes qui implémentent la persistance des attributs (asssiées à une base de dnnées). Jackbsn distinguent les tris stérétypes suivants : «bundary» : classes qui servent à mdéliser les interactins entre le système et ses acteurs. «cntrl» : classes utilisées pur représenter la crdinatin, l enchaînement et le cntrôle d autres bjets. «entity» : classes qui servent à mdéliser des infrmatins durables et suvent persistantes. 6) Exemple de diagramme de séquence : Le DAB Un cas d utilisatin est très suvent dcumenté par une descriptin textuelle. Un diagramme de séquence permet de cmpléter et de visualiser simplement et intuitivement la descriptin textuelle. Dans le curs sur les diagrammes des cas d utilisatins, nus avns fait une descriptin textuelle du cas d utilisatin «Retirer de l argent» du DAB. Le diagramme de séquence du scénari nminale est le suivant : 8/9
Le diagramme de séquence ci-dessus ne crrespnd qu au scénari nminal du cas d utilisatin. Des ntes (ptinnelles) permettent d indiquer les scenarii alternatifs et d exceptins. Chaque scénari nminal u d exceptin peut être dcumenté par sn prpre diagramme de séquence. Grâce aux fragments d interactins, il est pssible de dcumenter un scénari alternatif (u d exceptin) dans le diagramme de séquence du scénari nminale. Par exemple, le diagramme de séquence ci-dessus crrespnd à la descriptin du scénari nminal et du scénari alternatif SA4 (prteur de carte client banque). 9/9