Professional Documents
Culture Documents
0 : Diagramme de squence
Par Cian
Date de publication : 3 dcembre 2003 Dernire mise jour : 28 dcembre 2012
Cet article prsente les nouveauts UML2.0 (not galement U2, UML2) en ce qui concerne le diagramme de squence (appel sequence diagram ou interaction diagram en anglais). Les diagrammes de squence sont couramment utiliss par nombre d'acteurs d'un projet, mme quelque fois leur insu, sans savoir qu'ils utilisent l un des diagrammes UML. En effet, le diagramme de squence est une reprsentation intuitive lorsque l'on souhaite concrtiser des interactions entre deux entits (deux sous-systmes ou deux classes d'un futur logiciel). Ils permettent l'architecte/designer de crer au fur et mesure sa solution. Cette reprsentation intuitive est galement un excellent vecteur de communication dans une quipe d'ingnierie pour discuter cette solution. Les diagrammes de squence peuvent galement servir la problmatique de test. Les traces d'excution d'un test peuvent en effet tre reprsentes sous cette forme et servir de comparaison avec les diagrammes de squence raliss lors des phases d'ingnierie. Les diagrammes de squence tels que dfinis en UML1.x souffraient cependant d'un gros inconvnient. La quantit de diagrammes raliser pouvait atteindre un nombre consquent ds lors que l'on souhaitait dcrire avec un peu de dtail les diffrentes branches comportementales d'une fonctionnalit. Le plus coteux tant de remettre jour ces diagrammes lors d'un changement au niveau des exigences ou bien du design. Nous allons voir que UML2.0 souhaite donner plus de puissance de reprsentation ces diagrammes grce de nouvelles constructions qui peuvent servir rduire la quantit de diagramme raliser. Notez que les traductions franaises des termes techniques sont personnelles. Les notions abordes dans cet article sur les nouveauts UML2.0 sont : les "fragments combins" (combined fragment ou inline frames), les oprateurs de fragments combins,
les "rfrences" (interaction occurrence), les "continuations" (continuation symbol), la dcomposition hirarchique (part decomposition), les invariants ...
I - Avant-Propos...........................................................................................................................................................4 II - Les fragments combins (appel aussi combined fragment ou inline frame)....................................................... 4 II-A - Oprateur "Alternative"..................................................................................................................................5 II-B - Oprateur "Option"........................................................................................................................................ 5 II-C - Oprateur "Break"......................................................................................................................................... 6 II-D - Oprateur "Parallel"...................................................................................................................................... 8 II-E - Oprateurs "Weak Sequencing" et "Strict Sequencing"............................................................................. 10 II-F - Oprateur "Negative"...................................................................................................................................12 II-G - Oprateur "Critical"..................................................................................................................................... 12 II-H - Oprateurs "Ignore" et "Consider".............................................................................................................. 13 II-I - Oprateur "Assertion"................................................................................................................................... 14 II-J - Oprateur "Loop"......................................................................................................................................... 15 II-K - Combiner les oprateurs.............................................................................................................................16 III - Les rfrences (appel en anglais "interaction occurrence")............................................................................. 16 IV - Les continuations (appel en anglais "continuation symbol")............................................................................ 17 V - Messages Perdus / Trouvs................................................................................................................................ 18 VI - Dcomposition hirarchique de diagrammes de squence (part decomposition).............................................. 19 VII - Cration d'objet et suppression.........................................................................................................................21 VIII - Contraintes de temps....................................................................................................................................... 22 IX - Contraintes et invariants.....................................................................................................................................22
-3Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
I - Avant-Propos
Avant de prsenter les nouveaux concepts du diagramme de squence, je vous propose quelques rappels. Diagramme de squence :
Un diagramme de classe permet de dcrire les interactions entre diffrentes entits et/ou acteurs : par exemple des objets dans un modle d'un logiciel, des sous-systmes dans un modle d'un systme complet. Le temps est reprsent comme s'coulant du haut vers le bas le long des "lignes de vie" (lifeline) des entits. Des flches reprsentent les messages qui transitent d'une entit vers l'autre. Le nom des message apparat sur chaque flche. Si l'extrmit de la flche est pleine, le message est synchrone. Si l'extrmit de la flche est creuse, le message est asynchrone. Message asynchrone :
Message synchrone :
http://cian.developpez.com/uml2/tutoriel/sequence/
Les fragments combins permettent de dcrire des diagrammes de squence de manire compacte. Les fragments combins peuvent faire intervenir l'ensemble des entits participant au scnario ou juste un sous-ensemble.
-5Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
possderait pas d'oprande else (qui n'aurait qu'une seule branche). Un fragment optionnel est donc une sorte de SI...ALORS. L'exemple ci-dessous montre un oprateur "opt" : L'utilisateur, si il est mcontent, peut se dfouler sur le distributeur de billets. En revanche, la plupart des utilisateurs contiennent leur agressivit et restent corrects envers le distributeur de billet. L'oprateur "opt" montre cette possibilit.
-6Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
L'quivalent de ce diagramme de squence sans l'oprateur break correspond aux deux diagrammes de squence ci-aprs :
-7Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
-8Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
Cependant attention! dans tous les entrelacements possibles l'interaction "question" devra toujours apparatre aprs "consulterSite(" http://www.developpez.net/forums/")" et l'interaction "rponse" devra toujours apparatre aprs les deux prcdentes. Ainsi le cas suivant ne peux pas tre un des cas dcrit par l'oprateur par ci-dessus :
-9Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
Donc le "Weak Sequencing" revient une excution en parallle lorsque les participants des oprandes sont disjoints. Le "Weak Sequencing" revient un "Strict Sequencing" lorsque les oprandes ne font intervenir qu'un seul participant. Mais plus qu'une explication textuelle sujette incomprhension, je vous propose deux exemples qui seront sans doute plus clairs. L'exemple ci-dessous montre un oprateur "seq" : Le "weak sequencing" est le "mode" de description par dfaut des diagrammes de squence. Ici, l'interprtation de ce diagramme est : - resultatMaintenance arrive aprs actionMaintenance, - question arrive aprs consulterSite, - reponse arrive aprs question. Les deux diagrammes cidessous sont donc quivalent.
- 10 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
L'exemple ci-dessous montre un oprateur "strict" : L, l'interprtation de ce diagramme est : - resultatMaintenance arrive aprs actionMaintenance, - question arrive aprs consulterSite, - reponse arrive aprs question. ET resultatMaintenance arrive apres reponse. Il y a donc un ordre impos dans cette squence entre les deux groupes d'intractions.
- 11 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 12 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
L'exemple ci-dessous montre un oprateur "critical" : On ne souhaite pas que l'utilisateur puisse obtenir des billets avec un code erron et une somme demande incorrecte.
- 13 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
L'exemple ci-dessous montre un exemple pour l'oprateur "consider" : Le diagramme ci-dessous est exactement quivalent celui dcrit pour l'oprateur ignore.
- 14 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 15 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 16 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 17 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 18 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 19 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 20 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
- 21 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/
IX - Contraintes et invariants
Il est possible d'indiquer les "lignes de vie" des entits des contraintes. Ceci est appel "state invariant" dans la norme UML2.0. Attention, on parle d'tat mais cela peut tre tout simplement une valeur d'un attribut. Cette contrainte est considre comme value l'excution. Elle est value immdiatement avant l'excution de la prochaine intraction de telle manire que toutes les actions qui ne sont pas explicitement modelises soient considres comme excutes. Ces contraintes sont reprsentes par un tat ou par un texte pouvant ressembler { NomEntite.Attribut1==0}.
- 22 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2004 Cian. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://cian.developpez.com/uml2/tutoriel/sequence/