Preface:
活動圖(Activity Diagram)是一個非常實用的圖款,適合用來具體呈現「企業流程」(Buisness Process)或「工作流程」(Workflow)等等的活動流程觀點. 通常是SA會先請User提供現行的作業流程文件, 再來進行企業流程分析,畫出 Activity Diagram,有點類似 flow chart,但是主要 focus 的目標在每一個activity!
雖然,以物件導向的實作技術而言,程序員無法「按圖施工」,直接將活動圖的設計內容對應成程式碼。但是,以分析師的角度來看,活動圖光是用來協助釐清並具體呈現繁雜的企業流程,其實就已經值回票價了. 所以,讓我們從活動圖開始學習UML,也讓我們從活動圖開始著手分析設計。
- 優點:較少的物件導向特徵
- 優點:易於跟客戶溝通流程
- 優點:找尋用例並且串接用例
下圖中將 Activity Diagram 常用到的觀念都以範例顯示出來:
Activity Diagram - 動作、起訖和動線 :
剛才我們提到了,「用例」(Use Case)將流程封裝成一個個近似獨立的單元,倘若分析師讓活動圖中的「動作」(Action),盡可能是一對一對應用例的形式,就可以透過活動圖來展現用例的串接情況了。簡單來說,動作是一個不可切割的流程片段,活動圖中包含了一組動作,透過流程動線(flow edge)來連接動作。在稍後的內容中,我們很快就會學到動作的概念了.
更有價值的,分析師可以透過活動圖來檢驗並挖掘遺漏的用例。許多專案失敗的重要原因之一,來自於「需求暴增」。為什麼需求會暴增?追根究柢,很可能是分析師一開始便遺漏了需求,以致於客戶會在專案中後期緊急追加需求。所以,分析師可以善用活動圖來挖掘出遺漏的用例,進行更切合實際的成本估算,為客戶和公司帶來雙贏的成果.
首先,我們要來談活動圖中最最基本的概念:動作(Action)、起點(Initial Node)、活動終點(Activity Final Node)以及活動動線(Activity Edge),在 astah community 工具列上可以找到:
接著下面範例表達了活動節點(Activity Node), 活動動線 (Activity Edge) 與控制節點(Control Node)的使用. 控制節點往下又細分成兩小類:其中一種控制節點為起點(Initial Node),另一種控制節點為活動終點(Activity Final Node):
請假簽和流程的活動圖
上面活動圖的活動流程從起點開始,中間會經過數個動作,最後控制流程會進入活動終點,然後整張活動圖就結束. 我們可以這麼說,一張活動圖主要表達一個活動,而這個活動呈現了一項行為(behavior)。行為可以被拆解成數個細小的步驟,或者說,數個細小的步驟組成一項行為.
因此,活動圖中包含了數個細小的動作,每一個動作即為一個不可以再往下細分的單一步驟. 此處,我們用一、兩句簡單明確的句子,來定義動作、起點和活動終點,如下:
- 動作(Action)
- 起點(Initial Node)
- 活動終點(Activity Final Node)
在 UML 2.0 引入了另一個符號稱為 "流程終止 (Flow Final Node)", 說明如下:
- 流程終止 (Flow Final Node)
Activity Diagram - 決策點與決策條件 :
在現實生活中, 在某些 Activity 你可以會根據不同的條件, 環境, 行為而有不同的後續 Activity. 而這在編程的概念中就是 if/else if/else. 以上面的簽核範例來說, 簽核可能通過, 也可能被退件. 此時在 活動圖 可以透過 決策點 與 決策點條件 (guard/condition) 來表達:
下面對 決策點 與 決策條件簡單給個定義:
- 決策點 (Decision Point)
- 決策條件 (Guard/Condition)
Activity Diagram - 結合與分岐點 :
通常在簽核過程中, 要核准的不會只有一個人. 假設在這裡的範例審核有兩個角色 "部門主管" 與 "專案經理", 又假設他們是平行的角色, 也就是審核是同時進行. 如此在你 "填寫請假單" Activity 後會有兩個 Activity Edges 分別是要給 "部門主管" 與 "專案經理" 審核 (fork), 又 兩位主管 審核都通過後, 只會有一份進行備存, 此時則需要將兩條 Activity Edge 進行合併到下一個 Activity (join):
下面對 "結合" (Join) 與 "分岐 (Fork)" 給了定義:
- 結合 (Join)
- 分岐 (Fork)
而與 "結合點" 很相似的有另一個稱為 "合併點 (Merge Point)", 都是將多條 Activity Edges 作為輸入, 而只有一條 Activity Edge 成為輸出. 而與 "結合點" 不同的是 "合併點" 並不要求所有流進的 Activity Edge 都要抵達, 而是有自己的決策條件決定輸出 Activity Edge. 底下是它的定義:
- 併點 (Merge Point)
Activity Diagram - Swimlane :
從上面你應該可以發現在 活動圖 中可能有多個角色, 但你不可能在每個 Activity, Control 與 Line 旁邊都標示這是屬於哪一個角色的. 因此就有了所謂的 "泳道 (Swimlane)" 的引入:
底下給了 "泳道" 簡單定義:
- 泳道 (Swimlane)
上面的 Swimlane 是垂直的切割, 其實你也可以水平的切割. 而之所以進行切割是為了分群 (Partitioning), 讓某一群的 Activity 屬於某一個使用者, 活動或是時間:
- 分群 (Partitioning)
Supplement:
* PGR應該要看懂的UML Diagram
* {UML 2.0} Activity Diagram 的說明與範例
* 工具系列:UML活動圖
* IBM developerWors: 如何繪製UML 活動圖(Activity Diagram)
* Activity Diagram Controls
請問第一張圖是用什麼軟體畫的?
回覆刪除參考: http://astah.net/
刪除程式扎記: [ Uml 文章收集 ] Uml 之 Activity Diagram 的簡介 >>>>> Download Now
刪除>>>>> Download Full
程式扎記: [ Uml 文章收集 ] Uml 之 Activity Diagram 的簡介 >>>>> Download LINK
>>>>> Download Now
程式扎記: [ Uml 文章收集 ] Uml 之 Activity Diagram 的簡介 >>>>> Download Full
>>>>> Download LINK BA
これは非常に良いチュートリアルです。チュートリアルをありがとう。あなたがのために使用することができます Creately 図面.
回覆刪除You are welcome and many thanks to your information on toolkit: http://creately.com/diagram-examples
刪除It seems to be a friendly and useful toolkit to help us create UML chart more efficiently and effectly.
I will study it when I have time. ^^
程式扎記: [ Uml 文章收集 ] Uml 之 Activity Diagram 的簡介 >>>>> Download Now
回覆刪除>>>>> Download Full
程式扎記: [ Uml 文章收集 ] Uml 之 Activity Diagram 的簡介 >>>>> Download LINK
>>>>> Download Now
程式扎記: [ Uml 文章收集 ] Uml 之 Activity Diagram 的簡介 >>>>> Download Full
>>>>> Download LINK 1R