UML之狀態圖
1、概念
狀態:是指在對象生命周期中滿足某些條件、執行某些活動或等待某些事件的一個條件和狀況。
狀態機:記錄下給定時刻狀態下的設備,他可以根據不同的輸入對每個給定的變化而改變其狀態或引發一個動作。
狀態圖(statechart Diagram):本質上是一個狀態機,或者是狀態機的特殊情況,它基本上是狀態機中的元素的投影,這也意味著狀態圖包括狀態機的所有特征。
2、狀態圖
狀態
狀態的組成部分
名稱(Name) |
將一個狀態與其他狀態分開的字符串;狀態也可能是匿名的,這表示它沒有名稱 |
進入和退出動作(Entry/Exit Action) |
在進入和退出時執行的操作 |
內部轉移(Internal Transition) |
對事件做出響應,執行一定的動作,但不會發生狀態的轉換 |
子狀態(substage) |
當狀態是複合狀態時 |
延遲事件(Deferred Event) |
未在本狀態中處理,但不被丟棄,而是延遲到其他狀態中處理的事件 |
轉換
用於表示一個狀態機的兩個狀態之間的一種關係,即一個在某初始狀態的對象通過執行指定的動作並符合一定的條件下進入第二種狀態。
五要素
源狀態 |
轉移所影響的狀態;如果對象處於源狀態,當對象收到轉移的觸發事件並且滿足警戒條件(如果有)時,就可能會觸發輸出轉移。 |
事件觸發器 |
使轉移滿足觸發條件的事件。當處於源狀態的對象收到該事件時(假設已滿足其警戒條件),就可能會觸發轉移。 |
警戒條件 |
使轉移滿足觸發條件的事件。當處於源狀態的對象收到該事件時(假設已滿足其警戒條件),就可能會觸發轉移。 |
操作 |
可執行的、不可分割的計算過程,該計算可能直接作用於擁有狀態機的對象,也可能間接作用於該對象可見的其他對象。 |
目標狀態 |
在完成轉移後被激活的狀態。 |
類型
轉換類型 |
描述 |
語法 |
外部轉換 |
對事件做出響應,引起狀態變化或自身轉換,同時引發一個特定動作,如果離開或進入狀態將引發進入轉換、離開轉換 |
事件 ( 參數 )[ 監護條件 ]/ 動作 |
內部轉換 |
對事件做出響應,並執行一個特定的活動,但並不引起狀態變化或進入轉換、離開轉換 |
事件 ( 參數 )[ 監護條件 ]/ 動作 |
進入轉換 |
當進入某一狀態時,執行相應活動 |
entry/ 活動 |
退出轉換 |
當離開某一狀態時,執行相應活動 |
exit/活動 |
還有一種狀態行為:DO/活動,當對象處於一個狀態時,它一般是空閑的,在等待一個事件的發生。但是某些時間,你可能希望描述個正在進行的活動。在處於一個狀態的同時,對象做著某些工作,並一直繼續到被某個事件中斷。
最後更新:2017-04-03 12:55:03