我的雲端生活網 - Life+

Sunday, March 29, 2009

工具系列:UML狀態圖

本篇介紹UML狀態圖。狀態圖是用來表達系統執行的狀態,特別要顯示系統在不同狀態之間有不同的行為。系統的每一項活動或操作步驟會使一個狀態轉移為另一個狀態。通常,狀態圖關心的範圍相當小,只和一個類別或元件有關。

以下先介紹狀態圖的圖示,然後給一個示範。

一、UML狀態圖的圖示
  • 狀態:(State) 用圓角方形、其中寫狀態名稱,表示一個狀態。圓角方形中間可打一橫線,線下方標示該狀態的效果

  • 效果:(Effect) 以格式為 "動作類型 / 動作" 的文字,描述一個狀態的進、出、及運作的效果。動作類型Entry, Exit, 和 Do 等等。動作可以是類別的操作方法、或是簡單的動詞。對一項狀態來說,如果同一組動作類型的行為都有同樣的效果,則應該將此狀態效果寫出來。
  • 傳遞:(Transition) 從一項狀態拉出帶箭頭的線、到另一項狀態、並在線上標識名稱,表示從一項狀態傳遞到另一項狀態。

  • 傳遞標籤:(Transition Label) 以格式為 "事件 [限制條件] / 動作效果" 的文字,描述一項狀態滿足條件時會觸發一項事件、轉為另一項狀態,並且造成一項效果。事件(event)若使用英文應記為過去式動詞。限制條件是一則判斷式,為了表達明確,不要使用重疊的限制條件,例如 x <= 0 是重疊的,應該分為 x < x =" 0" style="font-weight: bold;">動作效果要標記類別的操作方法;動作效果和狀態效果有相同意義。
  • 起動狀態:(Initial State) 用實心圓點表示起動狀態。起動狀態拉出的傳遞線不能有限制條件
  • 結束狀態:(Final State) 用外圍圓邊的實心圓點表示結束狀態。

二、UML狀態圖的示範

以下示範一台讀卡機的狀態圖。

No comments:

Blog Archive