什麼時候才需要畫狀态圖:遇到複雜的狀态時,狀态變化。此時我們需要畫一個狀态圖來讓他簡單化。
(一)概念:
1,定義:
狀态圖是通過建立類對象的生存周期模型來描述對象随時間變化的動态行為。一個狀态圖表示一個狀态機。狀态圖有狀态的節點和表示狀态之間轉換的帶箭頭的直線組成。若幹個狀态由一條或者多條轉換箭頭連接配接。狀态的轉換由事件觸發。
狀态機:是展現狀态與狀态裝換的圖。在作業系統的程序中,通産用狀态機描述程序的各個狀态之間的轉換關系。當然,狀态圖還可以表示在OOA和OOD中,對象的狀态、狀态的轉換、觸發狀态轉換的事件、對象對事件的響應。
2,元素:
組成組成圖的圖形元素有狀态,轉換,初始狀态,終結狀态,判定。
(1)狀态
狀态是描述了一個類對象生命周期中的一個時間段。他模組化的對象包括:在某些方面性質相似的一組對象值;對象等待一些事件發生時的一段時間;對象執行持續活動時德一段時間等。事實上,類對象的任何一個屬性值都是一個狀态,全部的狀态機構成一個龐大的狀态空間。狀态圖中的狀态一般是給定類對象中的一組屬性值。一般分為狀态分為簡單狀态群組成狀态。
狀态包括了狀态名,活動,入口動作和出口動作等。
(2)轉換
轉換使用帶箭頭的直線表示,一端連接配接源狀态(轉出的狀态),箭頭一端連接配接目标狀态(轉入狀态),轉變可以标記與此相關的選項,如:事件,動作和監護條件。
(3)初始狀态
每一個狀态圖都應該有一個初始狀态,而且隻允許有一個,初始狀态隻能作為轉換的源,而不能作為轉換目标。
使用一個實心的圓表示。
(4)終止狀态
終止狀态是模型中最後的狀态,是一個狀态圖的終止點。和初始狀态相反,他隻能作為轉換的目标而不能作為轉換的源,而且終止狀态在一個狀态圖中可以有很多個。
他是用一個含有實心的圓的空心圓表示。
(5)判定
判定處在狀态圖中這樣一個位置:工作流在此處按監護條件的取值而發生分支。監護條件為布爾表達式。判定使用空心小菱形表示。
(二)模組化
狀态圖一般用于對系統中的某些對象。比如類、用例、系統的行為模組化。模組化的時候要找出對象的所處狀态、觸發狀态改變的動作,已經對象狀态改變時應執行的動作。
模組化步驟如下:
(1)找出合适用模型描述其行為的類。
(2)确定對象可能存在的狀态。
(3)确定引起狀态轉換的事件。
(4)确定轉換進行時對象執行的相應動作。
(5)對模組化的結果進行相應的精化和細化。
(三)步驟:
首先分析系統的狀态。
其次畫圖模組化:
1,建立狀态圖
2,加入開始狀态和終止狀體
3,添加狀态。(狀态、動作、活動等)
4,增加轉換(畫一條帶箭頭直線,添加事件,動作,監護條件)
5,增加曆史狀态(細化)
如圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90zdiZnUU1UMFRVTx5ESkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TO3kDOzAjMyITOycDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)