Vous êtes sur la page 1sur 10

CHAPITRE 14

UML, les diagrammes dtats-transitions

Introduction la programmation oriente objets

127

eivd

Tlcommunications

mjn

14.1

But du diagramme dtat-transitions

Le diagramme dtats-transitions correspond dans une large mesure ce que lon a appel un organigramme lpoque de la programmation dite structure.
14.1.1

Exemple

Lexemple de la figure14.1, page128 est tir du document dintroduction au produit Together (www.togethersoft.com) et montre le droulement dune opration de vente.
FIGURE 14.1

Exemple de diagramme dtats-transitions

128

Introduction la programmation oriente objets

eivd

Tlcommunications

mjn

14.1.2

Smantique

Ce diagramme sert reprsenter des automates d'tats finis, sous forme de graphes d'tats, relis par des arcs orients qui dcrivent les transitions. Les diagrammes d'tats-transitions permettent de dcrire les changements d'tats d'un objet ou d'un composant, en rponse aux interactions avec d'autres objets/composants ou avec des acteurs. Un tat se caractrise par sa dure et sa stabilit, il reprsente une conjonction instantane des valeurs des attributs d'un objet. Une transition reprsente le passage instantan d'un tat vers un autre. Une transition est dclenche par un vnement. En d'autres termes : c'est l'arrive d'un vnement qui conditionne la transition. Les transitions peuvent aussi tre automatiques, lorsqu'on ne spcifie pas l'vnement qui la dclenche. En plus de spcifier un vnement prcis, il est aussi possible de conditionner une transition, l'aide de "gardes" : il s'agit d'expressions boolennes, exprimes en langage naturel (et encadres de crochets).
FIGURE 14.2

tats, transition et vnement, notation :

FIGURE 14.3

transition conditionnelle :

14.1.3

Super-Etat, historique et souches

Un super-tat est un lment de structuration des diagrammes d'tats-transitions (il s'agit d'un tat qui englobe d'autres tats et transitions). Le symbole de modlisation "historique", mmorise le dernier sous-tat actif d'un super-tat, pour y revenir directement ultrieurement.

Introduction la programmation oriente objets

129

eivd

Tlcommunications

mjn

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.

130

Introduction la programmation oriente objets

eivd

Tlcommunications

mjn

FIGURE 14.4

Souches

14.1.4

Actions dans un tat

On peut aussi associer une action l'vnement qui dclenche une transition. La syntaxe est alors la suivante : vnement / action. Ceci exprime que la transition (dclenche par l'vnement cit) entrane l'excution de l'action spcifie sur l'objet, l'entre du nouvel tat.
Exemple :

il pleut / ouvrir parapluie Une action correspond une opration disponible dans l'objet dont on reprsente les tats. Les actions propres un tat peuvent aussi tre documentes directement l'intrieur de l'tat. UML dfinit un certain nombre de champs qui permettent de dcrire les actions dans un tat :
entry / action

: action excute l'entre de l'tat exit / action : action excute la sortie de l'tat on vnement / action : action excute chaque fois que l'vnement cit survient do / action : action rcurrente ou significative, excute dans l'tat

Introduction la programmation oriente objets

131

eivd

Tlcommunications

mjn

FIGURE 14.5

Exemple :

Remarque :

Attention, les actions attaches aux clauses "entry" et "exit" ne sont pas excutes si l'vnement spcifi dans la clause "on" survient. Pour indiquer qu'elles peuvent tre excutes plusieurs fois l'arrive d'un vnement, reprsentez l'arrive d'un vnement rflexif, comme suit :

14.1.5

Etats concurrents et barre de synchronisation

Pour reprsenter des tats concurrents sur un mme diagramme d'tats-transitions, on utilise la notation suivante :

132

Introduction la programmation oriente objets

eivd

Tlcommunications

mjn

FIGURE 14.6

Etats concurrents

Dans l'exemple ci-dessus, l'automate K est compos des sous-automates L et M. L et M s'activent simultanment et voluent en parallle. Au dpart, l'objet dont on modlise les tats par l'automate K est dans l'tat composite (E-L1, E-M1). Aprs l'vnement Tr1, K passe dans l'tat composite (E-L2, E-M2). Par la suite, si l'vnement Tr2 survient, K passe dans l'tat composite (E-L3, E-M2). Si c'est Tr4 qui survient, M ne passe pas dans l'tat E-M1, car cette transition est contrainte par l'tat de L ("[in E-L3]"). Dans l'tat composite (E-L3, E-M2), si Tr3 survient, K passe dans l'tat composite (EL2, E-M2). Si c'est Tr4 qui survient, K passe dans l'tat composite (E-L3, E-M1). Et ainsi de suite... Attention : la numrotation des vnements n'est pas significative. Pour synchroniser les sous-automates d'une agrgation d'tats, il faut contraindre les transitions, comme dans l'exemple ci-dessus ("[in E-L3]"). On peut aussi utiliser un symbole spcial : "la barre de synchronisation". La barre de synchronisation permet de reprsenter graphiquement des points de synchronisation. Les transitions automatiques 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.

Introduction la programmation oriente objets

133

eivd

Tlcommunications

mjn

FIGURE 14.7

Barre de synchronisation

14.1.6

Evnement paramtr

UML permet aussi de paramtrer les vnements, comme dans l'exemple suivant :
FIGURE 14.8

Evnement paramtr

134

Introduction la programmation oriente objets

eivd

Tlcommunications

mjn

14.1.7

Echange de messages entre automates

Il est aussi possible de reprsenter l'change de messages entre automates dans un diagramme d'tats-transitions. Cette notation particulire n'est pas prsente ici. Veuillez vous rfrer "l'UML notation guide".

Introduction la programmation oriente objets

135

eivd

Tlcommunications

mjn

136

Introduction la programmation oriente objets