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