Un diagramme états-transitions est un schéma utilisé en génie logiciel pour représenter des automates déterministes. Il fait partie du modèle UML et s'inspire principalement du formalisme des statecharts et rappelle les grafcets des automates. S'ils ne permettent pas de comprendre globalement le fonctionnement du système, ils sont directement transposables en algorithme. En effet, contrairement au diagramme d'activité qui aborde le système d'un point de vue global, le diagramme états-transitions cible un objet unique du système. Tous les automates d'un système s'exécutent parallèlement et peuvent donc changer d'état de façon indépendante.
En plus des états de départ (au moins un) et d'arrivée (nombre quelconque), une transition peut comporter les éléments facultatifs suivants :
Quand l'événement se produit alors que les états de départ sont actifs et que la condition de garde est vraie alors les actions seront déclenchées.
Cette exécution est enrichie lorsque les états définissent une action d'entrée et une action de sortie : l'action de sortie de l'état de départ est exécutée d'abord, puis l'action de la transition, puis l'action de l'état d'arrivée.
Les points de jonction ne sont qu'un élément graphique permettant de regrouper plusieurs segments de transition de façon à rendre le schéma plus lisible. Les points de décision permettent de simuler un choix : si-alors-sinon, qui entraîne deux états différents.
Le formalisme impose un diagramme par classeur.
À l'état initial ne correspond pas le constructeur de la classe, à l'état final le destructeur de la classe.