[UML]UML系列——用例圖中的各類關係(include、extend)算法
[UML]UML系列——類圖class的關聯關係(聚合、組合)併發
[UML]UML系列——類圖class的實現關係Realizationurl
實例描述:假如如今有一個簡單的音樂盒,用戶根據歌曲名稱搜索本身喜好的音樂,找到後,用戶能夠以MP3模式播放(同步顯示歌詞),也能夠以MV模式播放。因爲音樂和歌詞都來自於互聯網,所以在播放以前應鏈接這些文件。3d
根據上述描述,該音樂盒的用例圖以下:code
描述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 }
概念
活動圖本質上是一種流程圖,它描述活動的序列,即系統從一個活動到另外一個活動的控制流。
活動圖的做用
描述用例,描述類的操做,另外,能夠用來描述算法(單獨使用)。
活動(動做)
一、活動的概念
表示工做流過程當中命令的執行或活動的進行。
二、活動的符號
狀態
注意:一個活動圖中只能有一個開始狀態,但能夠有多個結束狀態。(例如上面的MP3活動圖,就有2個結束狀態)
轉移(動做流)
活動之間、活動與狀態之間的轉換。
分支與合併
分支
根據條件的取值決定動做的流向。
合併
合併將倆條路徑鏈接到一塊兒,合併成一條路徑。
分叉和匯合
分叉
用於將一個控制流分爲兩個或多個併發運行的分支。
匯合
用於將兩個或多個控制流合併到一塊兒造成一個單向的控制流,符號與分叉相同。
若是一個控制流在其餘控制流到達以前到達了鏈接,它將會等待,知道全部控制流都到達了纔會向鏈接傳遞控制權。
實例:銷售合同從簽定到履約的過程
銷售合同簽定後,要進行覈對。若是發現錯誤,則終止履約;若是沒有錯誤,則要覈對貨物清單肯定是否有貨,還要覈對付款單肯定對方是否已經付款,只有這兩項都完成,才能夠發貨。若是無貨或對方還沒有付款,則終止履約。則活動圖以下:
泳道
泳道代表每一個活動是由哪些人或哪些部門負責完成。
在活動圖中泳道區分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。
在包含泳道的活動圖中每一個活動只能明確地屬於一個泳道。
簡單模擬卓越網的購物流程
添加泳道以後:
從左到右:顧客、運輸部、財務部
對象流
用活動圖描述某個對象時,能夠將涉及到的對象放到活動圖中,並用一個依賴將其鏈接到活動或狀態上,對象的這種使用方法就構成對象流。
上面的購物過程的活動圖加入對象流以後:
1、建立活動圖
右擊use case view ->new->activity diagram」
2、重命名活動圖並雙擊打開活動圖窗口
3、繪製活動圖的關鍵步驟
一、添加泳道
(1)添加泳道:單擊工具欄上的泳道按紐,在活動圖窗口中單擊。
(2)重命名泳道:雙擊泳道標籤,彈出以下窗口
(3)調整泳道的寬度:拖動泳道間的調整線
(4)刪除泳道
方法1:右擊泳道->delete
此刪除操做產生的效果:
泳道被刪除(非完全刪除,可恢復)
泳道內的圖形也會同時被刪除(非完全刪除,可恢復)
方法2:在瀏覽器中右擊泳道->delete
此刪除操做產生的效果:
泳道被刪除(完全刪除,不可恢復)
泳道內的圖形也會同時被刪除(非完全刪除,可恢復)
二、設置轉移條件
三、添加對象與對象流
(1)將對象與對象流按紐顯示在繪圖工做欄中
右擊繪圖工具欄空白處,選擇「Customize」,彈出以下窗口,將這兩項添加到繪圖工具欄。
(2)添加與設置對象
注意:
在同一步活動圖中,同名的對象只能經過複製來建立
活動圖就總結到這裏,這章內容有點多,涉及到的名詞特別多,其實照着文章中的實例本身畫一遍,就印象深入了。活動圖用的仍是比較多的。