原文地址: https://www.cnblogs.com/wolf-sun/p/3432135.html
系列文章
UML系列——用例圖Use Case
UML系列——用例圖中的各種關(guān)系(include、extend)
UML系列——類圖Class
UML系列——類圖class的關(guān)聯(lián)關(guān)系(聚合、組合)
UML系列——類圖class的依賴關(guān)系
UML系列——類圖class的泛化關(guān)系
UML系列——類圖class的實(shí)現(xiàn)關(guān)系Realization
UML系列——包圖Package
活動圖的引入:先上實(shí)例
實(shí)例描述:假如現(xiàn)在有一個(gè)簡單的音樂盒,用戶根據(jù)歌曲名稱搜索自己喜愛的音樂,找到后,用戶可以以MP3模式播放(同步顯示歌詞),也可以以MV模式播放。由于音樂和歌詞都來自于互聯(lián)網(wǎng),因此在播放之前應(yīng)連接這些文件。
根據(jù)上述描述,該音樂盒的用例圖如下:

描述MP3播放功能:

實(shí)例引入:活動圖的作用

求最大分?jǐn)?shù):

該過程的代碼描述:
public class assistant
{
public int id;
……
public int max(int score1, int score2, int score3)
{
int temp;
temp = score1;
if (score2 > temp)
temp = score2;
if (score3 > temp)
temp = score3;
return temp;
}
}
活動圖的概念及作用
概念
活動圖本質(zhì)上是一種流程圖,它描述活動的序列,即系統(tǒng)從一個(gè)活動到另一個(gè)活動的控制流。
活動圖的作用
描述用例,描述類的操作,另外,可以用來描述算法(單獨(dú)使用)。
活動圖的基本符號

活動(動作)
1、活動的概念
表示工作流過程中命令的執(zhí)行或活動的進(jìn)行。
2、活動的符號

狀態(tài)

注意:一個(gè)活動圖中只能有一個(gè)開始狀態(tài),但可以有多個(gè)結(jié)束狀態(tài)。(例如上面的MP3活動圖,就有2個(gè)結(jié)束狀態(tài))
轉(zhuǎn)移(動作流)
活動之間、活動與狀態(tài)之間的轉(zhuǎn)換。

分支與合并

分支
根據(jù)條件的取值決定動作的流向。

合并
合并將倆條路徑連接到一起,合并成一條路徑。

活動圖的其他符號
分叉和匯合
分叉
用于將一個(gè)控制流分為兩個(gè)或多個(gè)并發(fā)運(yùn)行的分支。

匯合
用于將兩個(gè)或多個(gè)控制流合并到一起形成一個(gè)單向的控制流,符號與分叉相同。
如果一個(gè)控制流在其他控制流到達(dá)之前到達(dá)了連接,它將會等待,知道所有控制流都到達(dá)了才會向連接傳遞控制權(quán)。

實(shí)例:銷售合同從簽訂到履約的過程
銷售合同簽訂后,要進(jìn)行核對。如果發(fā)現(xiàn)錯(cuò)誤,則終止履約;如果沒有錯(cuò)誤,則要核對貨物清單確定是否有貨,還要核對付款單確定對方是否已經(jīng)付款,只有這兩項(xiàng)都完成,才可以發(fā)貨。如果無貨或?qū)Ψ缴形锤犊?,則終止履約。則活動圖如下:

泳道
泳道表明每個(gè)活動是由哪些人或哪些部門負(fù)責(zé)完成。

在活動圖中泳道區(qū)分了負(fù)責(zé)活動的對象,它明確地表示了哪些活動是由哪些對象進(jìn)行的。
在包含泳道的活動圖中每個(gè)活動只能明確地屬于一個(gè)泳道。
簡單模擬卓越網(wǎng)的購物流程

添加泳道之后:

從左到右:顧客、運(yùn)輸部、財(cái)務(wù)部
用活動圖描述某個(gè)對象時(shí),可以將涉及到的對象放到活動圖中,并用一個(gè)依賴將其連接到活動或狀態(tài)上,對象的這種使用方法就構(gòu)成對象流。

上面的購物過程的活動圖加入對象流之后:

總結(jié)
活動圖就總結(jié)到這里,這章內(nèi)容有點(diǎn)多,涉及到的名詞特別多,其實(shí)照著文章中的實(shí)例自己畫一遍,就印象深刻了?;顒訄D用的還是比較多的。