Descriveremo, adesso, elementi che non abbiamo ancora mai esaminato. Tali elementi sono detti elementi comportamentali e mostrano come varie parti di un diagramma UML possano cambiare nel tempo.
Allo stesso modo in cui un sistema interagisce con gli utenti e, possibilmente, con altri sistemi, così gli oggetti che costituiscono il sistema stesso passano attraverso i necessari cambiamenti che servono a favorire le interazioni.
Se si sta modellando un sistema, è necessario avere un meccanismo che gestisca le modifiche all'interno del modello stesso. Tale meccanismo, in UML, è rappresentato dagli State Diagrams.
Per esempio, quando si preme un interruttore, una lampada cambia il suo stato da spento ad acceso (o viceversa). Oppure, ancora, quando si preme un tasto della tastiera o si muove il mouse durante il funzionamento di uno screen saver sul computer, il computer abbandona la modalità di screen saver e ritorna a funzionare regolarmente in modo attivo.
Gli State Diagrams visualizzano gli stati che un oggetto può attraversare e i passaggi transitori che intercorrono tra questi stati. Inoltre gli State Diagrams mostrano il punto di partenza e il punto di arrivo di una sequenza di cambi di stato.
Definizione: Uno State Diagram mostra gli stati di un singolo oggetto.
Veniamo alla rappresentazione grafica. Gli stati di uno State Diagram sono rappresentati con un rettangolo con gli angoli arrotondati. Il simbolo che mostra la transizione da uno stato ad un altro viene disegnato utilizzando una linea continua che termina con una freccia.
Un cerchio nero pieno rappresenta il punto di partenza di una sequenza di stati mentre il punto di arrivo viene rappresentato da due cerchi concentrici in cui il più interno è riempito di nero (tale figura viene anche definita "occhio di bue").
Nella figura precedente si può vedere un esempio di quanto detto. Inoltre, come si può notare, è possibile aggiungere maggiori dettagli alla figura stessa dividendo il rettangolo in tre aree separate.
L'area in alto contiene il nome dello stato, l'area centrale contiene le variabili di stato (timers, contatori, date, ecc.) e l'area in basso rappresenta le attività (cioè quello che accade quando il sistema entra in un determinato stato e cosa, invece, succede quando il sistema abbandona quello stato.