Diagramme de machine à états et diagramme d'états-transitions en UML

⚡ Résumé intelligent

Un diagramme d'état-transition, aussi appelé diagramme à états finis, modélise le comportement dynamique d'un objet passant d'un état à un autre en réponse à des événements. Cette ressource explique la notation, les types d'états, les règles de dessin et en quoi il diffère d'un organigramme.

  • (I.e. Objectif principal : Un diagramme d'état-transition illustre comment un objet change d'état en réponse aux événements qui se produisent au cours de sa durée de vie.
  • 🧩 Deux types: Les machines à états comportementales modélisent l'implémentation d'un élément ; les machines à états protocolaires modélisent les modifications de protocole autorisées.
  • (I.e. Notation clé : Le diagramme est composé d'états initiaux et finaux, de boîtes de décision, de transitions et de boîtes d'état arrondies.
  • 🇧🇷 Types d'États : Les états simples, composites et de sous-machine organisent le comportement, les états orthogonaux contenant des sous-états parallèles.
  • (I.e. Exemple concret : Un modèle d'authentification OTP illustre les transitions entre états en fonction d'une condition de garde.

Qu’est-ce qu’un diagramme de machine à états ?

Diagramme d'état Les diagrammes d'état-transition UML servent à décrire le comportement d'un système logiciel. Ils permettent de modéliser le comportement d'une classe, d'un sous-système, d'un paquetage, voire d'un système entier. On les appelle également diagrammes d'état-transition ou diagrammes de transition d'état.

Qu'est-ce qu'un diagramme d'états-transitions ?

Les diagrammes d'états-transitions nous fournissent un moyen efficace de modéliser les interactions ou la communication qui se produisent au sein des entités externes et d'un système. Ces diagrammes sont utilisés pour modéliser le système basé sur les événements. L'état d'un objet est contrôlé à l'aide d'un événement. Les diagrammes d'états-transitions sont utilisés pour décrire divers états d'une entité au sein du système d'application.

Il existe au total deux types de diagrammes de machines à états en UML :

1. Diagramme de machine à états comportementaux

  • Il capture le comportement d'une entité présente dans le système.
  • Il est utilisé pour représenter l’implémentation spécifique d’un élément.
  • Le comportement d'un système peut être modélisé à l'aide d'un diagramme de machine d'état comportemental dans OOAD.

2. Diagramme de la machine à états du protocole

  • Ces diagrammes sont utilisés pour capturer le comportement d'un protocole.
  • Il représente comment l'état du protocole change concernant l'événement. Cela représente également les changements correspondants dans le système.
  • Ils ne représentent pas l’implémentation spécifique d’un élément.

Pourquoi un diagramme de machine à états ?

Le diagramme d'états-transitions est utilisé pour capturer l'aspect dynamique d'un système. Les diagrammes de machines à états sont utilisés pour représenter le comportement d’une application. Un objet passe par différents états au cours de sa vie. La durée de vie d'un objet reste jusqu'à la fin du programme. L'objet passe de plusieurs états en fonction de l'événement qui se produit dans l'objet. Chaque état représente des informations uniques sur l'objet.

Les diagrammes d'états-transitions sont utilisés pour concevoir des systèmes interactifs qui répondent à un événement interne ou externe. Le diagramme d'états-transitions en UML visualise le flux d'exécution d'un état à un autre état d'un objet.

Il représente l'état d'un objet depuis la création d'un objet jusqu'à ce que l'objet soit détruit ou terminé.

L'objectif principal d'un diagramme d'états est de modéliser des systèmes interactifs et de définir chaque état d'un objet. Les diagrammes d'états-transitions sont conçus pour capturer le comportement dynamique d'un système d'application. Ces diagrammes sont utilisés pour représenter divers états d'un système et des entités au sein du système.

Notation et symbole pour le diagramme de machine d'état (diagramme d'états-transitions)

Voici les différentes notations utilisées dans le diagramme d’état. Toutes ces notations, combinées, constituent un seul diagramme.

Notations de diagramme d'état UML
Notations de diagramme d'état UML

Etat initial

Le symbole d’état initial est utilisé pour indiquer le début d’un diagramme de machine à états.

État final

Ce symbole est utilisé pour indiquer la fin d'un diagramme de machine à états.

Boîte de décision

Il contient une condition. En fonction du résultat d'une condition de garde évaluée, un nouveau chemin est emprunté pour l'exécution du programme.

Transition

Une transition est un changement d'un état vers un autre état qui se produit en raison d'un événement. Une transition provoque un changement dans l'état d'un objet.

Boîte d'état

C'est un moment précis dans la durée de vie d'un objet. Il est défini à l'aide d'une condition ou d'une instruction dans le corps du classificateur. Il est utilisé pour représenter toute situation statique ou dynamique.

Il est désigné par un rectangle aux coins arrondis. Le nom d’un état est inscrit à l’intérieur du rectangle arrondi.

Le nom d'un état peut également être placé en dehors du rectangle. Cela peut être fait dans le cas d’états composites ou sous-machines. On peut soit placer le nom d'un état à l'intérieur du rectangle, soit à l'extérieur du rectangle dans une boîte tabulaire. On ne peut pas faire les deux en même temps.

Un état peut être actif ou inactif. Lorsqu'un état est en mode de fonctionnement, il est actif, dès qu'il arrête de s'exécuter et passe dans un autre état, l'état précédent devient inactif et l'état actuel devient actif.

Types d'État

Unified Modeling Language définit trois types d'états :

  • État simple
  • Ils n'ont aucun sous-état.
  • État composite
  • Ces types d’états peuvent avoir un ou plusieurs sous-états.
  • Un état composite comportant deux sous-états ou plus est appelé un état orthogonal.
  • État de la sous-machine
  • Ces états sont sémantiquement égaux aux états composites.
  • Contrairement à l’état composite, nous pouvons réutiliser les états de la sous-machine.

Comment dessiner un diagramme Statechart ?

Les diagrammes d'états-transitions sont utilisés pour décrire les différents états par lesquels passe un objet. Une transition entre un état et un autre se produit en raison d’un événement déclenché. Pour dessiner un diagramme d'état dans UML, il faut identifier tous les états possibles d’une entité particulière.

Le but de ces Diagrammes UML est de représenter les états d’un système. Les États jouent un rôle essentiel dans les diagrammes de transition étatique. Tous les objets essentiels, les états et les événements qui provoquent des changements au sein des états doivent d'abord être analysés avant de mettre en œuvre le diagramme.

Les règles suivantes doivent être prises en compte lors de l'élaboration d'un diagramme d'état :

  1. Le nom d'une transition d'état doit être unique.
  2. Le nom d’un État doit être facilement compréhensible et décrire le comportement d’un État.
  3. S'il existe plusieurs objets, seuls les objets essentiels doivent être implémentés.
  4. Des noms propres pour chaque transition et un événement doivent être donnés.

Quand utiliser un diagramme de machine à états ?

Les diagrammes d'état sont utilisés pour implémenter en profondeur des modèles de travail réels et des systèmes orientés objet. Ces diagrammes sont utilisés pour comparer la nature dynamique et statique d'un système en capturant le comportement dynamique d'un système.

Les diagrammes d'états-transitions sont utilisés pour capturer les changements dans diverses entités du système du début à la fin. Ils sont utilisés pour analyser comment un événement peut déclencher un changement dans plusieurs états d'un système.

Les diagrammes de caractères d'état sont utilisés :

  1. Modéliser les objets d'un système.
  2. Modéliser et mettre en œuvre des systèmes interactifs.
  3. Pour afficher les événements qui déclenchent des changements au sein des états.

Exemple de machine à états

L'exemple de diagramme d'état suivant représente le processus d'authentification de l'utilisateur.

Diagramme d'état UML

Diagramme d'état UML

Il existe au total deux états, et le premier indique que l'OTP doit être saisi en premier. Après cela, OTP est coché dans la boîte de décision, s'il est correct, alors seule la transition d'état se produira et l'utilisateur sera validé. Si l'OTP est incorrect, la transition n'aura pas lieu et il reviendra à l'état de départ jusqu'à ce que l'utilisateur entre l'OTP correct, comme indiqué dans l'exemple de diagramme de machine d'état ci-dessus.

Diagramme de machine à états et organigramme

Voici les principales différences entre le diagramme d'états-transitions et l'organigramme.

Diagramme de machine d'état Organigramme
Il représente différents états d'un système. L'organigramme illustre le flux d'exécution du programme.
La machine à états a un concept WAIT, c'est-à-dire attendre une action ou un événement. L'organigramme ne traite pas de l'attente d'un concept.
Les machines à états sont utilisées pour un système en cours d'exécution. L'organigramme visualise les séquences de branchement d'un système.
La machine à états est un diagramme de modélisation. Un organigramme est un flux de séquence ou un diagramme DFD.
La machine à états peut explorer différents états d’un système. L'organigramme traite des chemins et du flux de contrôle.

FAQ

Un diagramme d'état-transition illustre les états d'un objet et les événements qui provoquent des transitions entre eux. Un diagramme d'activité représente le flux global des actions et des décisions d'un processus. Les diagrammes d'état-transition mettent l'accent sur les états ; les diagrammes d'activité, sur le flux de travail.

Une auto-transition est une transition qui revient au même état après le déclenchement d'un événement. Elle réactive les actions d'entrée et de sortie de cet état sans modifier l'état actuel, ce qui est utile pour les comportements répétitifs ou nécessitant une nouvelle tentative.

Une condition de garde est une expression booléenne associée à une transition, écrite entre crochets. La transition se déclenche uniquement lorsque son événement survient et que la condition de garde est vraie ; les conditions de garde déterminent donc le chemin emprunté par l’objet.

Les outils de diagrammes d'IA peuvent lire une description de comportement et générer une ébauche de machine à états, listant les états, les événements et les transitions. Cela permet aux concepteurs de démarrer rapidement, même s'il convient de vérifier l'exhaustivité des états et des conditions de garde.

Oui. L'analyse par IA peut comparer une machine à états aux exigences et signaler les états manquants, les états inaccessibles ou les transitions sans déclencheur. Cela permet de détecter les lacunes rapidement, mais les ingénieurs doivent confirmer chaque suggestion avant de mettre à jour le modèle.

Résumez cet article avec :