Diagramme d'états transitions
1 STATE-DEPENDENT BEHAVIOUR. 1
1.1 Les machines à états comme approfondissement des cas d’utilisation. 2
1.2 Cycle de vie d’un processus. 3
2 Diagramme d’états transitions. 3
4.1.1 Définition ou caractérisation des états. 5
8 Événements internes à l'état (Internal transitions): 7
9 Événements externes à l'état : transitions. 8
10.1 Entrée dans les états composites. 10
10.2 Semantics when entering composite states: 10
10.4 Exiting composite states. 11
1 STATE-DEPENDENT BEHAVIOUR
De nombreux objets
présentent un comportement dépendant de leur état :
ils réagissent différemment au même stimulus selon leur situation actuelle.
Un exemple simple est celui d’un lecteur CD composé d’un tiroir (ouvert/fermé)
et de trois boutons : load, play
et stop.
· Le bouton load ouvre le tiroir s’il est fermé et le ferme s’il est ouvert.
· Le bouton stop arrête la lecture, mais n’a aucun effet si aucune lecture n’est en cours.
· Le bouton play lance la lecture du CD présent dans le tiroir, uniquement si les conditions le permettent.
Ce comportement illustre parfaitement la notion d’objets dont les actions dépendent de leur état interne.
Le lecteur peut être dans au moins trois états distincts : ouvert, fermé, et en lecture.
Statechart diagrams can be used to represent lifecycles, protocols, use cases, and workflows.
Les machines à états (statecharts)
sont souvent associées aux classes
et aux cas d’utilisation.
Une machine à états associée à une classe représente généralement le cycle de vie d’une instance typique
de cette classe.

1.1 Les machines à états comme approfondissement des cas d’utilisation
Rappelons qu’un
cas d’utilisation décrit une fonction réalisée par un système.
Le cas d’utilisation met en évidence les acteurs principaux et secondaires avec
lesquels le système interagit, ainsi que les autres cas d’utilisation avec
lesquels il peut être en relation.
Par exemple, un distributeur automatique de billets (DAB / ATM) simple possède trois cas d’utilisation.
Chaque cas
d’utilisation peut être détaillé (élaboré) à l’aide d’un diagramme d’états.
Dans ce contexte, les états sont souvent appelés états d’attente (wait
states).
Dans un état d’attente, le système attend une commande ou une réponse
à une requête provenant d’un acteur.
Voici un diagramme d’états pour le cas d’utilisation « Transfert de fonds » :

Chaque objet Processus possède un attribut état qui peut prendre l’une des quatre valeurs possibles. Cette valeur peut être modifiée par des événements externes ou internes. Les changements d’état et les événements sont caractérisés par un diagramme d’états.
1.2 Cycle de vie d’un processus
Un système d’exploitation conserve un enregistrement de chaque programme en cours d’exécution. Ces enregistrements sont des instances de la classe Processus.
2 Diagramme d’états transitions
Objectif : représenter le comportement dynamique d'une entité (logiciel, composant, objet...).
2.1 Etat
· État : une étape dans le cycle de vie d’un objet.
· Un état d’un objet est une situation stable dans la vie de l’objet où il effectue une activité ou il attend un événement.
· Un état est défini, à un instant donné , par :
-les valeurs des rubriques de l’objet
- l’existence des associations/liens de cet objet aux autres objets.
· States often correspond to verbs with a suffix of “ing” (Waiting, Dialing) or the duration of some condition (Powered, BelowFreezing).

2.2 Transition
· changement d'état
2.3 Un événement
· est un fait survenu qui déclenche une transition.
2.4 Notation UML
|
|
|
3 Types d’événements :
• Appel synchrone (appel de méthode) : c’est le type le plus courant, qui sera traité dans la suite de la présentation.
• Appel asynchrone (signal) : réception d’un message asynchrone. Exemple : clic de souris, interruption d’entrées/sorties.
• Changement : événement provoqué par la satisfaction d’une condition booléenne.
3.1 Exemples :
when (room temperature < heating set point)
when (room temperature > cooling set point)
when (battery power < lower limit)
when (tire pressure < minimum pressure)
• Événement temporel : événement
causé par l’occurrence d’un instant précis ou par l’écoulement d’un intervalle
de temps.
– Date relative : when(date = date), when (date = January 1, 2000)
4 Action et activité
Une action est une opération instantanée qui ne peut être interrompue(atomique, instantanée, non interruptible ) ; elle est associée à une transition.
Une activité est une opération d’une certaine durée qui peut être interrompue, elle est associée à un état d’un objet.
4.1 Exemple
Un objet de la classe « DVD » a les états suivants : disponible, emprunté, non rendu.

4.1.1 Définition ou caractérisation des états
1.1 L’état « disponible » est défini par : date_emprunt a pour valeur NULL (non défini) et l’objet
n’a pas d’association/lien de type « Emprunt ».
1.2 L’état « emprunté » est défini par date_emprunt < date_jour - delaiMaxEmprunt et l’objet a une association de type « Emprunt ».
1.3 L’état « non rendu» est défini par date_emprunt date_jour - delaiMaxEmprunt et l’objet a une association de type « Emprunt ».
Dans le ca ou les états des objets d’une classe ne peuvent pas être caractérisés par ses valeurs des attributs , on ajoute un attribut supplémentaire « etat_classe » dont la valeur sera l’état de l’objet
4.1.2 Exemple 2
Fig. diagramme etat transitions simple du lecteur CD

5 Entry and exit actions

Figure . Entry and exit actions
6 ACTIVITIES
Les opérations étendues qui nécessitent du temps pour s’exécuter peuvent être représentées sous forme d’activités à l’intérieur des états. Comme les actions, les activités sont écrites à l’intérieur de l’état et précédées du mot-clé « do ».
L’activité de lecture d’une piste serait interrompue et arrêtée si un événement « stop » est détecté avant la fin de la piste.

Figure . The activity of playing a track
7 Completion transitions
Certaines activités se terminent d’elles-mêmes, sans intervention extérieure. Par exemple, dans l’état lecture, l’activité se termine lorsque la piste arrive à son fin. La fin d’une activité peut entraîner une transition vers un autre état, et le diagramme d’états doit indiquer quel état devient actif ensuite.
Completion transitions are transitions that have no event labels.

Figure Completion transitions
8 Événements internes à l'état (Internal transitions):
· Événement sans changement d'état
· Un événement interne n’entraîne pas l’exécution des actions de sortie et d’entrée, contrairement au déclenchement d’une transition réflexive.
Par exemple, supposons que le lecteur CD dispose d’un bouton « info » qui, lorsqu’il est pressé, affiche le temps restant de la piste en cours. Cela doit se produire sans interrompre la lecture en cours.
Cela peut être modélisé comme une transition interne dans l’état lecture. Les transitions internes, indiquées à l’intérieur de l’état avec l’événement qui les déclenche, ne modifient pas l’état et n’activent donc pas les actions d’entrée ou de sortie, contrairement aux auto-transitions.

|
|
une transition réflexive |
9 Événements externes à l'état : transitions
● Transition vers l'état : evt-in
● Transition depuis l'état : evt-out
● Transition depuis l'état vers lui-même : evt-self
10 États composites
Simplifier le diagramme
Composite states are composed of one or more states. The states included in a composite state are referred to below as substates.

Figure . Notaion for composite state
Supposons que l’appui sur le bouton pause du lecteur CD interrompe la lecture. Lorsque le bouton est pressé de nouveau, la lecture reprend à partir de la position où elle avait été mise en pause ; autrement dit, contrairement au cas où le bouton play est pressé, la piste n’est pas redémarrée depuis le début.


Figure Modelling the pause button
Un état doit être actif dans une machine à états. Cette règle doit être respectée en permanence. Si l’état est un état composite, alors l’un de ses sous-états est actif.
10.1 Entrée dans les états composites
La figure suivante
illustre les différentes possibilités d’entrée dans un état composite.

Figure . entry into a composite state.
10.2 Semantics when entering composite states:
▪ Entrée explicite (déclencheur T2) : si l’état A est atteint à partir de l’état C, le nœud initial n’est pas traversé et l’état A.2 est activé directement.
10.3 History
La modélisation fournit la notion d’historique comme une autre
possibilité pour entrer dans des états composites.
Une transition vers un état historique fait en sorte que la sous-état qui était
le plus récemment actif dans l’état composite redevienne actif.

Si l’état « Modes de fonctionnement de la radio de voiture » est activé, l’état qui était actif la dernière fois que cet état a été quitté redevient actif. Ce n’est que dans le cas particulier de la première entrée (c’est-à-dire lorsqu’aucun historique n’est disponible) que le « Mode radio » devient actif. Sur l’illustration, l’« Historique superficiel » est représenté par H.
10.4 Exiting composite states
There are also different ways to exit composite substates

Figure illustrant la sortie d’un état composite.
- Atteindre l’état final (déclencheur T2) : Il doit y avoir une transition depuis l’état A sans déclencheur qui est exécutée. L’état actif suivant est F.
- Transition d’un sous-état (déclencheur T4) : Cela correspond à la sémantique logique : si A.1 est actif et que le signal T4 est reçu, l’état E devient actif.
- Transition de l’état composite (déclencheur T3) : Quel que soit le sous-état actif (A.1 ou A.2), dès que le déclencheur T3 se produit, l’état A est quitté.
10.5 Orthogonal Regions


