Vous êtes sur la page 1sur 9

Reprenons lexemple de notre serveur de messagerie et intressons-nous la vie de la fentre principale de ce serveur.

5.6.3 tat historique

http://laurent-audibert.developpez.com/Cours-UML/html/Cours-UML029.html

Exemple : Le diagramme d'tats-transitions ci-dessous, montre les diffrents tats par lesquels passe une machine laver les voitures. En phase de lustrage ou de lavage, le client peut appuyer sur le bouton d'arrt d'urgence. S'il appuie sur ce bouton, la machine se met en attente. Il a alors deux minutes pour reprendre le lavage ou le lustrage (la machine continue en phase de lavage ou de lustrage, suivant l'tat dans lequel elle a t interrompue), sans quoi la machine s'arrte. En phase de schage, le client peut aussi interrompre la

machine. Mais dans ce cas, la machine s'arrtera dfinitivement (avant de reprendre un autre cycle entier).

souches : afin d'introduire plus d'abstraction dans un diagramme d'tats-transitions complexe, il est possible de rduire la charge d'information, tout en matrialisant la prsence de soustats, l'aide de souches, comme dans l'exemple ci-dessous.

Les vues dynamiques d'UML (suite...) DIAGRAMME DE SEQUENCE


Diagramme de squence : smantique
Les diagrammes de squences permettent de reprsenter des collaborations entre objets selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages. Contrairement au diagramme de collaboration, on n'y dcrit pas le contexte ou l'tat des objets, la reprsentation se concentre sur l'expression des interactions. Les diagrammes de squences peuvent servir illustrer un cas d'utilisation. L'ordre d'envoi d'un message est dtermin par sa position sur l'axe vertical du diagramme ; le temps s'coule "de haut en bas" de cet axe. La disposition des objets sur l'axe horizontal n'a pas de consquence pour la smantique du diagramme. Les diagrammes de squences et les diagrammes d'tat-transitions sont les vues dynamiques les plus importantes d'UML.

Exemple :

Types de messages
Comme vous pouvez le voir dans l'exemple ci-dessus, UML propose un certain nombre de strotypes graphiques pour dcrire la nature du message (ces strotypes graphiques s'appliquent galement aux messages des diagrammes de collaborations) : message simple Message dont on ne spcifie aucune caractristique d'envoi ou de rception particulire. message minut (timeout) Bloque l'expditeur pendant un temps donn (qui peut tre spcifi dans une contrainte), en attendant la prise en compte du message par le rcepteur. L'expditeur est libr si la prise en compte n'a pas eu lieu pendant le dlai spcifi. message synchrone Bloque l'expditeur jusqu' prise en compte du message par le destinataire. Le flot de contrle passe de l'metteur au rcepteur (l'metteur devient passif et le rcepteur actif) la prise en compte du message. message asynchrone N'interrompt pas l'excution de l'expditeur. Le message envoy peut tre pris en compte par le rcepteur tout moment ou ignor (jamais trait).

message drobant N'interrompt pas l'excution de l'expditeur et ne dclenche une opration chez le rcepteur que s'il s'est pralablement mis en attente de ce message.

Activation d'un objet


Sur un diagramme de squence, il est aussi possible de reprsenter de manire explicite les diffrentes priodes d'activit d'un objet au moyen d'une bande rectangulaire superpose la ligne de vie de l'objet. On peut aussi reprsenter des messages rcursifs, en ddoublant la bande d'activation de l'objet concern. Pour reprsenter de manire graphique une excution conditionnelle d'un message, on peut documenter un diagramme de squence avec du pseudo-code et reprsenter des bandes d'activation conditionnelles.

Exemple :

Commentaires : Ne confondez la priode d'activation d'un objet avec sa cration ou sa destruction. Un objet peut tre actif plusieurs fois au cours de son existence (voir exemple ci-dessus). Le pseudo-code peut aussi tre utilis pour indiquer des itrations (avec incrmentation d'un paramtre d'un message par exemple). Le retour des messages asynchrones devrait toujours tre matrialis, lorsqu'il existe. Notez qu'il est fortement recommand de synchroniser vos messages, comme sur l'exemple qui suit... L'exemple qui suit prsente aussi une alternative intressante pour la reprsentation des branchements conditionnels. Cette notation est moins lourde que celle utilise dans l'exemple ci-dessus.

Prfrez aussi l'utilisation de contraintes celle de pseudo-code, comme dans l'exemple qui suit.

Exemple complet
Afin de mieux comprendre l'exemple ci-dessous, veuillez vous rfrer aux chapitres sur la synchronisation des messages. Notez aussi l'utilisation des contraintes pour documenter les conditions d'envoi de certains messages.

Commentaire : Un message rflexif ne reprsente pas l'envoi d'un message, il reprsente une activit interne l'objet (qui peut tre dtaille dans un diagramme d'activits) ou une abstraction d'une autre interaction (qu'on peut dtailler dans un autre diagramme de squence).

Les vues dynamiques d'UML (suite...) DIAGRAMME D'ACTIVITES


Diagramme d'activits : smantique

UML permet de reprsenter graphiquement le comportement d'une mthode ou le droulement d'un cas d'utilisation, l'aide de diagrammes d'activits (une variante des diagrammes d'tats-transitions). Une activit reprsente une excution d'un mcanisme, un droulement d'tapes squentielles. Le passage d'une activit vers une autre est matrialis par une transition. Les transitions sont dclenches par la fin d'une activit et provoquent le dbut immdiat d'une autre (elles sont automatiques). En thorie, tous les mcanismes dynamiques pourraient tre dcrits par un diagramme d'activits, mais seuls les mcanismes complexes ou intressants mritent d'tre reprsents.

activits et transition, notation :

Pour reprsenter des transitions conditionnelles, utilisez des gardes (expressions boolennes exprimes en langage naturel), comme dans l'exemple suivant :

Synchronisation
Il est possible de synchroniser les transitions l'aide des "barres de synchronisation" (comme dans les diagrammes d'tats-transitions). Une barre de synchronisation permet d'ouvrir et de fermer des branches parallles au sein d'un flot d'excution : Les transitions qui partent d'une barre de synchronisation ont lieu en mme temps. On ne franchit une barre de synchronisation qu'aprs ralisation de toutes les transitions

qui s'y rattachent.

L'exemple suivant illustre l'utilisation des barres de synchronisation :

Couloirs d'activits
Afin d'organiser un diagramme d'activits selon les diffrents responsables des actions reprsentes, il est possible de dfinir des "couloirs d'activits". Il est mme possible d'identifier les objets principaux, qui sont manipuls d'activits en activits et de visualiser leur changement d'tat.