1、活動圖,即Activity Diagram,是UML中用於對系統的動態行為建模的一種常用工具,它描述活動的順序,展現從一種活動到另一種活動的控制流。其本質上是一種流程圖,着重表現從一個活動到另一個活動的控制流,是內部處理驅動的流程。
2、活動圖的組成元素有:Activity(活動狀態)、Actions(動作狀態)、Action Contraints(動作狀態約束)、Control Flow(控制流)、Initial Node(開始節點)、 Final Node(結束節點)、Objects(對象)、DataStore(數據存儲器)、Object Flows(對象流)、Decision and Merge Node(分支與合並節點)、Fork and Join(分叉與匯合節點)、Exception Handler(異常處理器)、Interruptible Activity Region(活動中斷區域)、Partition(泳道)。
3、Activity用於表達狀態機中非原子的運行。其特點如下:
- 可以分解成其他子活動或者動作狀態。
- 內部活動可以用另一個活動圖來表示。
- 和Actions不同,Activity可以有入口動作和出口動作,也可以有內部轉移。
- Actions是Activity的一個特例,如果某個Activity只包括一個動作,那么它就是一個Actions。
UML中Activity和Actions的圖標相同,但是活動狀態可以在圖標中給出入口動作和出口動作等信息。
4、Actions指原子的、不可中斷、不可再分的動作,並在此動作完成以后轉向另一個狀態。其特點如下:
- 原子的,它是構造活動圖的最小單位。
- 不可中斷。
- 瞬時的行為。可以有入轉換,入轉換既可以是動作流,也可以是對象流。Actions至少有一條出轉換,這條轉換以內部的完成為起點,與外部事件無關。
- Actions與狀態圖中的狀態不同,它不能有入口動作和出口動作,更不能有內部轉移。
- 在一張活動圖中,Actions允許多處出現。
5、Action Constraints 用來約束Action。
6、Control Flow 即Action之間的轉換,用帶箭頭的直線表示,方向指向轉入的Action。
7、Object Flow 表示Activity或者Action與Object之間的依賴關系。用活動圖描述某個對象時,可以把涉及到的對象放置在活動圖中並用一個依賴將其連接到進行創建、修改和撤銷的動作狀態或者活動狀態上,對象的這種使用方法就構成了對象流。用帶箭頭的虛線表示,如果箭頭是從Action出發指向Object,則表示Action對Object施加了一定的影響。施加的影響包括創建、修改和撤銷等。如果箭頭從Object指向Action,則表示該Action使用對象流所指向的Object。其特點如下:
- 一個Object可以由多個Action操作。
- 一個Action輸出的Object可以作為另一個Action輸入的Object。
- 在活動圖中,同一個Object可以多次出現,它的每一次出現表明該Object正處於Object生存期的不同時間點。
8、Devision and Merge Node 使用空心菱形表示。
9、Fork and Join 分為水平方向和豎直方向。Object在運行時可能會存在兩個或多個並發運行的控制流,為了對並發的控制流建模,UML中引入了分叉與匯合的概念。分叉用於將動作流分為兩個或多個並發運行的分支,而匯合則用於同步這些並發分支,以達到共同完成一項事務的目的。
10、Exception Handler 當受保護的Activity發生異常時觸發異常處理節點。
11、Interruptible Activity Region 圍繞一些可被中斷的動作狀態圖。比如,正常情況下【Process Order】順序流轉到【Close Order】,訂單處理流程完畢;但在【Process Order】過稱中,會發送【Cancel Order】請求,這時會流轉到【Cancel Order】,從而訂單處理流程結束:
12、Partition 將活動圖中的活動划分為若干組,並把每一組指定給負責這組活動的業務組織,即對象。在活動圖中,泳道區分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。在包含泳道的活動圖中,每個活動只能明確地屬於一個泳道。用垂直實線繪出,垂直線分隔的區域就是泳道。在泳道的上方可以給出泳道的名字或對象的名字,該對象負責泳道內的全部活動。泳道沒有順序,不同泳道中的活動既可以順序進行也可以並發進行,動作流和對象流允許穿越分隔線。
13、活動圖描述的是對象活動的順序關系所遵循的規則,它着重表現的是系統的行為,而非系統的處理過程。活動圖能夠表示並發活動的情形,活動圖是面向對象的。
本文參考:http://www.cnblogs.com/ywqu/archive/2009/12/14/1624082.html