Un diagramme de machine d’état est un comportement qui spécifie la séquence d’états qu’un objet visite au cours de sa vie en réponse à des événements, ainsi que ses réponses à ces événements.
État
Un état est une condition au cours de la vie d’un objet au cours de laquelle il satisfait à une condition, exécute une activité ou attend un événement externe
Exemple:
Caractéristiques de l’État
- L’état représente les conditions des objets à certains moments.
- Les objets (ou systèmes) peuvent être considérés comme se déplaçant d’un état à l’autre
- Un point dans le cycle de vie d’un élément de modèle qui satisfait à une condition, où une action particulière est en cours d’exécution ou où un événement est attendu
La figure ci-dessous montre une description détaillée d’un état. L’état est étendu avec des actions internes (faire, aider). Contrairement à d’autres actions, ces actions peuvent être interrompues. Si « annuler » se produit, les actions faire ou aider sont interrompues. Les actions internes sont exécutées après la section « entrée » et sont abandonnées lorsque l’état est quitté.
États initiaux et finaux
- L’ état initial d’un diagramme de machine d’état, appelé pseudo-état initial, est indiqué par un cercle plein. Une transition à partir de cet état montrera le premier état réel
- L’ état final d’un diagramme de machine d’état est représenté par des cercles concentriques. Une machine à états en boucle ouverte représente un objet qui peut se terminer avant que le système ne se termine, tandis qu’un diagramme de machine à états en boucle fermée n’a pas d’état final; si c’est le cas, alors l’objet vit jusqu’à ce que tout le système se termine.
Exemple:
Événement
Un événement est la spécification d’un événement significatif. Pour une machine à états, un événement est l’occurrence d’un stimulus qui peut déclencher une transition d’état.
Transition
Une transition est une relation entre deux états indiquant qu’un objet dans le premier état, lorsqu’un ensemble spécifié d’événements et de conditions est satisfait, effectuera certaines actions et entrera dans le second état.
Une transition a : Des composants de transition qui incluent (1) un état source (2) un déclencheur d’événement (3) une action (4) un état cible
Auto-transition
Une auto-transition est une transition dont les états source et cible sont les mêmes
action
Une action est un calcul exécutable, atomique (en référence à la machine d’état). Les actions peuvent inclure des opérations, la création ou la destruction d’autres objets, ou l’envoi de signaux à d’autres objets (événements)
Exemple de bibliothèque
La figure ci-dessous montre un schéma de machine d’état simple. Les principaux composants d’un tel diagramme sont les suivants :
- État : l’exemple a deux états : « En prêt » et « En rayon ».
- Etat initial : c’est l’état dans lequel le système démarre.
- Transitions : les transitions décrivent les changements d’état possibles. Le diagramme comporte deux transitions : de « En prêt » à « En rayon » et vice versa.
- Événements : les événements sont étiquetés sur les transitions. Ils représentent l’événement effectué sur une transition. Lors du passage de l’état « En prêt » à l’état « En rayon », l’événement « Retourné() » est exécuté.
Les actions sont des modifications des variables d’état. Dans l’exemple ci-dessous, les actions sont spécifiées sur les transitions. Lorsque la transition de « En rayon » à « En prêt » est prise, la variable d’état des livres est diminuée.
Les actions peuvent être spécifiées sur les transitions, mais aussi dans les états. Dans ce cas, on peut spécifier si l’action doit être effectuée lors de l’entrée ou de la sortie de l’état. Dans la figure ci-dessous montre ces options.
- La première option affiche la spécification des actions lorsqu’une transition est effectuée. L’action est effectuée sur le changement d’état.
- La deuxième option montre la spécification d’une action dans un état. Le mot-clé ”entry” indique que l’action doit être effectuée lorsque l’état est entré.
- Enfin, la troisième option montre comment spécifier qu’une action est entreprise à la sortie d’un état. Notez le mot-clé « exit ».
Notation de diagramme de machine d’état simple
Diagramme de machine d’état — Concepts avancés
Contraintes
Il est possible d’ajouter des contraintes aux transitions. Considérez la figure ci-dessous. Les contraintes ”[not last copy]” et ”[last copy]” sont utilisées pour distinguer les deux transitions avec l’événement ”copyBorrowed()”. La sémantique est qu’une transition est activée lorsque la contrainte est vraie.
Sous-états
Un état simple est un état qui n’a pas de sous-structure. Un état qui a des sous-états (états imbriqués) est appelé un état composite. Les sous-états peuvent être imbriqués à n’importe quel niveau. Une machine à états imbriquée peut avoir au plus un état initial et un état final. Les sous-états sont utilisés pour simplifier les machines à états plates complexes en montrant que certains états ne sont possibles que dans un contexte particulier (l’état englobant).
Exemple de sous-état — réchauffeur
Les diagrammes de machine d’état sont souvent utilisés pour dériver des cas de test, voici une liste d’idées de test possibles :
- L’état inactif reçoit l’événement Trop chaud
- L’état inactif reçoit l’événement Too Cool
- L’état Refroidissement/Démarrage reçoit l’événement Compresseur en marche
- L’état Refroidissement/Prêt reçoit l’événement Ventilateur en marche
- L’état de refroidissement/fonctionnement reçoit l’événement OK
- L’état de refroidissement/fonctionnement reçoit l’événement d’échec
- L’état d’échec reçoit l’événement Échec effacé
- L’état de chauffage reçoit l’événement OK
- L’état de chauffage reçoit l’événement d’échec
États de l’historique
Sauf indication contraire, lorsqu’une transition entre dans un état composite, l’action de la machine à états imbriquée recommence à l’état initial (sauf si la transition cible directement un sous-état). Les états d’historique permettent à la machine d’état de réintégrer le dernier sous-état qui était actif avant de quitter l’état composite. Un exemple d’utilisation de l’état de l’historique est présenté dans la figure ci-dessous.
État simultané
Comme mentionné ci-dessus, les états des diagrammes de machines d’état peuvent être imbriqués. Les états associés peuvent être regroupés en un seul état composite. L’imbrication d’états dans d’autres est nécessaire lorsqu’une activité implique des sous-activités concurrentes. Le diagramme de machine d’état suivant modélise une enchère avec deux sous-états simultanés : traitement de l’offre et autorisation de la limite de paiement.
Exemple de diagramme de machine à états simultanés – Processus d’enchères
Dans cet exemple, la machine d’état entrant pour la première fois dans l’enchère nécessite une bifurcation au début en deux threads de démarrage distincts. Chaque sous-état a un état de sortie pour marquer la fin du thread. Sauf en cas de sortie anormale (Annulé ou Rejeté), la sortie de l’état composite se produit lorsque les deux sous-états sont sortis.
Liens connexes
Exemples de diagramme d’état à faire soi-même avec Visual Paradigm Online
- Exemples et modèles gratuits de diagramme de machine d’état modifiables dans un logiciel en ligne de diagramme de machine d’état : Visual Paradigm Online .
- Utilisez les modèles comme point de départ pour créer votre propre diagramme de machine d’état.
Outil logiciel UML gratuit
Vous avez appris ce qu’est un diagramme de machine d’état et comment dessiner un diagramme de machine d’état. Il est temps de dessiner votre propre diagramme de machine d’état. Obtenez Visual Paradigm Community Edition, un logiciel UML gratuit, et créez votre propre diagramme de machine d’état avec l’outil gratuit de diagramme de machine d’état. Il est facile à utiliser et intuitif.