Un modello di stato rappresenta il modello di processo per un tipo di record. Uno stato rappresenta lo stato di un record, ad esempio Inoltrato, Assegnato, Aperto e Chiuso. Un'azione CHANGE_STATE è un'attività che viene eseguita da un utente che sposta un record allo stato successivo. Le azioni CHANGE_STATE tipiche includono Inoltra, Assegna e Chiudi.
Questo spostamento di un record viene definito una transizione di stato. Una transizione di stato è costituita da uno stato di origine (lo stato corrente), uno stato di destinazione e l'azione che sposta il record dallo stato di origine a quello di destinazione.
Il modello di stato mostra tutti gli stati e le transizioni di stato validi per tale tipo di record. Ad esempio, il modello di stato nella figura mostra come il tipo di record EnhancementRequest (che è incluso in diversi schemi predefiniti) viene spostato da uno stato all'altro in seguito alle azioni dell'utente (Figura 1).
Il modo migliore per iniziare a progettare un modello di stato è quello di elencare e descrivere tutti gli stati validi per un tipo di record specifico (ossia, un tipo specifico di record). Ad esempio, la seguente tabella descrive gli stati per il tipo di record EnhancementRequest.
Sono disponibili due meccanismi per modificare i modelli di stato e le azioni: la matrice di transizione dello stato e la griglia Azioni.
La matrice di transizione dello stato rappresenta il modello di stato come una griglia, simile ad un foglio elettronico, che elenca gli stati su entrambi gli assi laterali e sull'asse superiore e le azioni che consentono le transizioni tra gli stati mostrati nelle celle.
La griglia Azioni elenca le azioni definite nello schema. Ogni riga nella griglia include un nome azione, il tipo di azione e le impostazioni di controllo accessi per l'azione e le impostazioni facoltative inizializzazione, convalida, commit, notifica e script record.