狀態模型代表一種記錄類型的程序模型。狀態代表記錄的狀態,例如,「已送出」、「已指派」、「已開啟」和「已關閉」。CHANGE_STATE 動作是使用者所執行的一種活動,可將記錄移至下一個狀態。一般的 CHANGE_STATE 動作包括「送出」、「指派」和「關閉」。
這種移動記錄的動作即稱為狀態轉移。狀態轉移是由來源狀態(現行狀態)、目的地狀態以及將記錄從來源狀態移至目的地狀態的動作所組成。
狀態模型會顯示該類型記錄的所有有效狀態和狀態轉移。例如,此圖中的狀態模型顯示 EnhancementRequest 記錄類型(包含在數個預先定義的綱目中)如何從一種狀態移至另一種狀態,成為使用者動作的結果 (圖 1)。
開始設計狀態模型的最佳方式,就是列出並說明對特定記錄類型有效的所有狀態(亦即,記錄的特定類型)。例如,下表說明 EnhancementRequest 記錄類型的狀態。
修改狀態模型和動作有兩種機制可用:「狀態轉移矩陣」和「動作格線」。
「狀態轉移矩陣」是以類似試算表的格線來表示狀態模型,列出兩側的軸和上軸的狀態,以及容許資料格所顯示的各狀態進行轉移的動作。
「動作格線」列出綱目所定義的動作。格線中每一列包含動作名稱、動作類型、動作的存取控制設定及選用的「起始設定」、「驗證」、「確定」、「通知」和「記錄 Script」等設定。