UML圖例之活動圖


  作為UML圖例中的重要角色,活動圖描述的是對象活動的順序關系所遵循的規則,作為用例實現的描述,非常適合於和用戶溝通,同時也有助於為開發提供指導。

 

一、活動圖簡介

  活動圖(activity diagram)是闡明了業務用例實現的工作流程。業務工作流程說明了業務為向所服務的業務主角提供其所需要的價值而必須完成的工作,業務用例由一系列活動組成,他們共同為業務主角生成某些工件。工作流程通常包括一個基本的工作流程和一個或多個備選工作流程。工作流程的結構使用活動圖來進行說明。是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流程。

 

二、基本元素

1、活動圖起點:活動的開始節點,實心黑色圓點,只能有一個。

2、活動圖終點:表示整個活動的結束,圓圈加內部實心黑色圓點,可以有多個結束點。

3、流終點:表示子流程的結束,圓圈加內部叉。

4、活動狀態(activity):用於表達狀態機中的非原子的運行
(1)、活動狀態可以分解成其他子活動或者動作狀態。
(2)、活動狀態的內部活動可以用另一個活動圖來表示。
(3)、和動作狀態不同,活動狀態可以有入口動作和出口動作,也可以有內部轉移。
(4)、動作狀態是活動狀態的一個特例,如果某個活動狀態只包括一個動作,那么它就是一個動作狀態。
活動狀態和動作狀態的圖標相同,但是活動狀態可以在圖標中給出入口動作和出口動作等信息。 

5、動作狀態(actions):是指原子的不可中斷的動作,並在此動作完成后通過完成轉換轉向另一個狀態
(1)、動作狀態是原子的,它是構造活動圖的最小單位。
(2)、動作狀態是不可中斷的。
(3)、動作狀態是瞬時的行為。
(4)、動作狀態可以有入轉換,入轉換既可以是動作流,也可以是對象流。動作狀態至少有一條出轉換,這條轉換以內部的完成為起點,與外部事件無關。
(5)、動作狀態與狀態圖中的狀態不同,它不能有入口動作和出口動作,更不能有內部轉移。
(6)、在一張活動圖中,動作狀態允許多處出現。 

6、動作狀態約束(action constraints):用來約束動作狀態,有前置條件和后置條件之分

7、動作流(control flow):動作之間的轉換,用帶箭頭的直線表示,箭頭的方向指向轉入的方向,簡單來講,就是讓動作狀態流動起來。

8、對象:矩形的方框,如果一個操作執行結束之后生成了某些數據需要傳遞給下一個目標操作,此時需要用對象節點表示。作為動作狀態的輸出或是動作狀態的輸入。

9、對象流:是動作狀態或活動狀態與對象之間的依賴關系,表示動作使用對象或動作對對象的影響。簡單來說就是對象的產生或者使用過程。

(1)、一個對象可以由多個動作操作。

(2)、一個動作輸出的對象可以作為另一個動作輸入的對象。

(3)、在活動圖中,同一個對象可以多次出現,它的每一次出現表面該對象正處於對象生存期的不同時間點。

 

 

10、分支與合並:用菱形表示,它有一個轉換(箭頭從外指向分支符號),一個或多個離開轉換(箭頭從分支符號指向外)。每個離開轉換都會有一個監護條件,用來表示滿足什么條件的時候執行該轉換.

11、分叉與匯合:分叉用於將動作流分為兩個或多個並發運行的分支,而匯合則用於同步這些並發分支,以達到共同完成一項事務的目的,對象在運行時可能會存在兩個或多個並發的控制流,為對並發的控制流建模,UML中引入了交叉與匯合的概念

分叉形式

      

匯合形式

12、泳道:將活動圖中的活動划分為若干組,每一個活動只允許屬於一個組,並把每一個組指定個負責這組活動的業務組織,設置一個組(業務組織)名稱作為泳道的名稱。利用泳道圖可以很方便描述多個角色之間的協作、部門之間的協作等非常有效。泳道形式上有縱向和橫向兩種。

 

 

三、活動圖、流程圖、狀態圖的區別

活動圖與流程圖區別:

(1)、流程圖着重描述處理過程,它的主要控制結構是順序、分支和循環,各個處理過程之間有嚴格的順序和時間關系。而活動圖描述的是對象活動的順序關系所遵循的規則,它着重表現的是系統的行為,而非系統的處理過程,但活動圖在本質上是一種流程圖。

(2)、活動圖能夠表示並發活動的情形,而流程圖不行。

(3)、活動圖是面向對象的,而流程圖是面向過程的。

活動圖與狀態圖區別:

(1)、描述對象不同,狀態圖是描述某一對象的狀態轉化的,它主要是展示的是對象的狀態,描述的是一個對象的事情。利用狀態圖我們可以看出,對象在接受了事件刺激后,會做出什么樣的反應。

(2)、使用場合不同,狀態圖描述對象在生命期中的自身狀態變化,描述用例中的業務流程變化。

 

四、簡單案例

  結合業務中一個添加報價單的用例,設計活動圖,泳道中的業務組織分為業務員和應用系統。業務員填寫一份報價單並提交,應用系統執行參數判定,如參數均正確則開始處理計算報價單價格並發送消息通知給相關人員,如不正確,則提示給業務人員修改報價單。

 

 至此,針對UML活動圖的相關內容做了大概的總結,結合開發中的場景,先規划好用例,再針對具體用例設計活動圖,方便開發過程。

2020-01-21,望技術有成后能回來看見自己的腳步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM