Uno stato può contenere altri stati, spesso denominati stati nidificati o sottostati. Se si stanno modellando macchine a stati complesse, utilizzare gli stati nidificati per separare la funzionalità dettagliata in più livelli. Gli stati contengono inoltre azioni che identificano le attività che potrebbero verificarsi quando un oggetto si trova in uno stato particolare.
| Tipo di stato | Descrizione | Elemento del diagramma |
|---|---|---|
| Semplice | Uno stato senza regioni | |
| Composto | Uno stato con una regione | |
| Ortogonale | Uno stato con due o più regioni | ![]() |
| Finale | Uno stato inserito nella regione di uno stato composto per indicare che l'attività nella regione è completa | |
| Stato della macchina secondaria | Uno stato che fa riferimento a un'altra macchina a stati |
Una transizione mostra un percorso tra stati che indica che si sta verificando una modifica di stato. Un trigger, una condizione di guardia e un effetto sono le tre parti facoltative di una transizione.
| Tipo di evento | Descrizione | Icona |
|---|---|---|
| Chiamata | Un oggetto riceve una richiesta di richiamare un'operazione. Il richiamo dell'operazione attiva una transizione. | |
| Modifica | Viene specificata una condizione Booleana che attiva una transizione quando la condizione è true. | |
| Segnale | Un messaggio specificato che attiva una transizione quando viene ricevuto da un oggetto. | |
| Ora | Un determinato periodo di tempo che deve trascorrere o un tempo assoluto che attiva una transizione. |