系列文章
[UML]UML系列——用例圖中的各種關系(include、extend)
[UML]UML系列——類圖class的關聯關系(聚合、組合)
[UML]UML系列——類圖class的實現關系Realization
活動圖的引入:先上實例
實例描述:假如現在有一個簡單的音樂盒,用戶根據歌曲名稱搜索自己喜愛的音樂,找到后,用戶可以以MP3模式播放(同步顯示歌詞),也可以以MV模式播放。由於音樂和歌詞都來自於互聯網,因此在播放之前應連接這些文件。
根據上述描述,該音樂盒的用例圖如下:
描述MP3播放功能:
實例引入:活動圖的作用
求最大分數:
該過程的代碼描述:
1 public class assistant 2 { 3 public int id; 4 …… 5 public int max(int score1, int score2, int score3) 6 { 7 int temp; 8 temp = score1; 9 if (score2 > temp) 10 temp = score2; 11 if (score3 > temp) 12 temp = score3; 13 return temp; 14 } 15 }
活動圖的概念及作用
概念
活動圖本質上是一種流程圖,它描述活動的序列,即系統從一個活動到另一個活動的控制流。
活動圖的作用
描述用例,描述類的操作,另外,可以用來描述算法(單獨使用)。
活動圖的基本符號
活動(動作)
1、活動的概念
表示工作流過程中命令的執行或活動的進行。
2、活動的符號
狀態
注意:一個活動圖中只能有一個開始狀態,但可以有多個結束狀態。(例如上面的MP3活動圖,就有2個結束狀態)
轉移(動作流)
活動之間、活動與狀態之間的轉換。
分支與合並
分支
根據條件的取值決定動作的流向。
合並
合並將倆條路徑連接到一起,合並成一條路徑。
活動圖的其他符號
分叉和匯合
分叉
用於將一個控制流分為兩個或多個並發運行的分支。
匯合
用於將兩個或多個控制流合並到一起形成一個單向的控制流,符號與分叉相同。
如果一個控制流在其他控制流到達之前到達了連接,它將會等待,知道所有控制流都到達了才會向連接傳遞控制權。
實例:銷售合同從簽訂到履約的過程
銷售合同簽訂后,要進行核對。如果發現錯誤,則終止履約;如果沒有錯誤,則要核對貨物清單確定是否有貨,還要核對付款單確定對方是否已經付款,只有這兩項都完成,才可以發貨。如果無貨或對方尚未付款,則終止履約。則活動圖如下:
泳道
泳道表明每個活動是由哪些人或哪些部門負責完成。
在活動圖中泳道區分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。
在包含泳道的活動圖中每個活動只能明確地屬於一個泳道。
簡單模擬卓越網的購物流程
添加泳道之后:
從左到右:顧客、運輸部、財務部
對象流
用活動圖描述某個對象時,可以將涉及到的對象放到活動圖中,並用一個依賴將其連接到活動或狀態上,對象的這種使用方法就構成對象流。
上面的購物過程的活動圖加入對象流之后:
活動圖的Rose建模
一、創建活動圖
右擊use case view ->new->activity diagram”
二、重命名活動圖並雙擊打開活動圖窗口
三、繪制活動圖的關鍵步驟
1、添加泳道
(1)添加泳道:單擊工具欄上的泳道按紐,在活動圖窗口中單擊。
(2)重命名泳道:雙擊泳道標簽,彈出如下窗口
(3)調整泳道的寬度:拖動泳道間的調整線
(4)刪除泳道
方法1:右擊泳道->delete
此刪除操作產生的效果:
泳道被刪除(非徹底刪除,可恢復)
泳道內的圖形也會同時被刪除(非徹底刪除,可恢復)
方法2:在瀏覽器中右擊泳道->delete
此刪除操作產生的效果:
泳道被刪除(徹底刪除,不可恢復)
泳道內的圖形也會同時被刪除(非徹底刪除,可恢復)
2、設置轉移條件
3、添加對象與對象流
(1)將對象與對象流按紐顯示在繪圖工作欄中
右擊繪圖工具欄空白處,選擇“Customize”,彈出如下窗口,將這兩項添加到繪圖工具欄。
(2)添加與設置對象
注意:
在同一步活動圖中,同名的對象只能通過復制來創建
總結
活動圖就總結到這里,這章內容有點多,涉及到的名詞特別多,其實照着文章中的實例自己畫一遍,就印象深刻了。活動圖用的還是比較多的。