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

2.1        Etat 3

2.2        Transition. 4

2.3        Un événement 4

2.4        Notation UML.. 4

3       Types d’événements : 4

3.1        Exemples : 4

4       Action et activité. 4

4.1        Exemple. 5

4.1.1         Définition ou caractérisation des états. 5

4.1.2         Exemple 2. 6

5       Entry and exit actions. 6

6       ACTIVITIES. 6

7       Completion transitions. 7

8       Événements internes à l'état (Internal transitions): 7

9       Événements externes à l'état : transitions. 8

10          États composites. 8

10.1     Entrée dans les états composites. 10

10.2     Semantics when entering composite states: 10

10.3     History. 10

10.4     Exiting composite states. 11

10.5     Orthogonal Regions. 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.

 

 

 

 

 

Event1[condition]/ action1

Event2 condition]/ / action 2

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 par défaut (déclencheur T1) : si l’état A est atteint à partir de l’état B, le nœud initial est traversé et l’état actif devient A.1.

▪ 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


آخر تعديل: الجمعة، 26 ديسمبر 2025، 5:13 PM