狀态:是指在對象生命周期中滿足某些條件、執行某些活動或等待某些事件的一個條件和狀況。
狀态機:記錄下給定時刻狀态下的裝置,他可以根據不同的輸入對每個給定的變化而改變其狀态或引發一個動作。
狀态圖(statechart diagram):本質上是一個狀态機,或者是狀态機的特殊情況,它基本上是狀态機中的元素的投影,這也意味着狀态圖包括狀态機的所有特征。
狀态的組成部分
名稱(name)
将一個狀态與其他狀态分開的字元串;狀态也可能是匿名的,這表示它沒有名稱
進入和退出動作(entry/exit action)
在進入和退出時執行的操作
内部轉移(internal transition)
對事件做出響應,執行一定的動作,但不會發生狀态的轉換
子狀态(substage)
當狀态是複合狀态時
延遲事件(deferred event)
未在本狀态中處理,但不被丢棄,而是延遲到其他狀态中處理的事件
用于表示一個狀态機的兩個狀态之間的一種關系,即一個在某初始狀态的對象通過執行指定的動作并符合一定的條件下進入第二種狀态。
源狀态
轉移所影響的狀态;如果對象處于源狀态,當對象收到轉移的觸發事件并且滿足警戒條件(如果有)時,就可能會觸發輸出轉移。
事件觸發器
使轉移滿足觸發條件的事件。當處于源狀态的對象收到該事件時(假設已滿足其警戒條件),就可能會觸發轉移。
警戒條件
操作
可執行的、不可分割的計算過程,該計算可能直接作用于擁有狀态機的對象,也可能間接作用于該對象可見的其他對象。
目标狀态
在完成轉移後被激活的狀态。
轉換類型
描述
文法
外部轉換
對事件做出響應,引起狀态變化或自身轉換,同時引發一個特定動作,如果離開或進入狀态将引發進入轉換、離開轉換
事件 ( 參數 )[ 監護條件 ]/ 動作
内部轉換
對事件做出響應,并執行一個特定的活動,但并不引起狀态變化或進入轉換、離開轉換
進入轉換
當進入某一狀态時,執行相應活動
entry/ 活動
退出轉換
當離開某一狀态時,執行相應活動
exit/活動
還有一種狀态行為:do/活動,當對象處于一個狀态時,它一般是空閑的,在等待一個事件的發生。但是某些時間,你可能希望描述個正在進行的活動。在處于一個狀态的同時,對象做着某些工作,并一直繼續到被某個事件中斷。