{UML2.0} 狀態圖簡單說明與範例-1

什麼是狀態圖(State Diagram)?

  • 觀察物件在某一段時間內的情況,稱之為狀態(State)。
    ex. 人從就寢入眠至醒來之前的這段期間,可稱之為“睡眠狀態”。
  • 因為外在事件(event)的觸發,使得某一物件的狀態轉移(Transit)至另一個狀態,稱為狀態的轉移(Transition)。
    ex. 因為鬧鐘響了(event),喚醒了原來在睡眠的人,而從睡眠的狀態轉移至清醒的狀態。
    利用狀態圖,即在於描述某個物件的生命週期,其狀態的變化情形。

一張簡單的狀態圖範例
(縮略圖,點擊圖片鏈接看原圖)

狀態圖的特性(Features)

  • 被用來描述某個物件(特別是單一物件)的生命週期的期間,所經歷的事件(event)、轉移(transition),以及事件之間的狀態(state)。
  • 多個物件之間的互動行為的描述,會利用互動(Interaction)圖,例如循序(Sequence)圖;而描述單一物件的循序行為,尤其因外部事件的觸發而產生的狀態轉移,利用狀態圖來描述觀察是很適合的。
    ex. 利用狀態圖描述“訂購(Order)”物件的狀態有:新進訂購、處理中、已確認等。
  • 狀態圖,又稱之為狀態機(State machine)圖、狀態圖表(Statechart)。最早(1960~)即被應用於即時(Real-time)、互動性(Reactive)系統的行為描述。

何時使用狀態圖?

  • 顯示某一個類別,內含某些值得觀察的有趣行為(Behaviors)。但請不要替每個類別畫出狀態圖。
  • 使用案例(Use Case) — 描述在使用案例中,整個系統事件的概觀與發生的順序。
  • 將系統(System)視為單一元件(Component),以描述系統行為的狀態變化情形。
  • 控制者物件(Controller) — ex. MVC (Model-View-Controller),Controller 接收從 View 所傳送訊息的不同而協調不同的 Model 物件處理。
  • 裝置(Devices) — 根據目前的狀態對特定的事件作出不同的回應。ex. 冷氣機(透過溫度感應器而有不同的調整)、電視機(接收遙控器的訊號後而有不同的回應)。
  • 使用者介面(UI)元件 — 表單內 UI 元件之間因事件(event)觸發而影響到其他的 UI 元件。ex. 在 textfield 欄位輸入客戶代號、按了“Submit”按鈕,在 Label 欄位顯示客戶姓名。

文章導覽

   

共有 2 則迴響

發佈回覆給「Kenming Wang」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *