UML動態(tài)模型圖描述了系統(tǒng)動態(tài)行為的各個方面,包括用例圖、序列圖、協(xié)作圖、活動圖和狀態(tài)圖。下面就每種圖做一個簡單介紹:
用例圖描述系統(tǒng)外部的執(zhí)行者與系統(tǒng)提供的用例之間的某種聯(lián)系。所謂用例是指對系統(tǒng)提供的功能的一種描述。執(zhí)行者是使用用例的人或外部系統(tǒng),二者之間的聯(lián)系描述了“誰使用哪個用例”。用例圖著重于從系統(tǒng)外部執(zhí)行者的角度來描述系統(tǒng)需要提供哪些功能,并指明該執(zhí)行者是誰。在用例圖中,橢圓表示用例,小人表示執(zhí)行者。下圖所示為一個普通用戶進入某系統(tǒng)的用例圖,該圖描述了當普通用戶進入系統(tǒng)時,“普通用戶”為執(zhí)行者,其具有密碼修改、資料修改、訂單查詢、產(chǎn)品搜索等4個用例。
序列圖又被稱為時序圖、順序圖,用于描述幾個對象之間的動態(tài)協(xié)作關(guān)系。序列圖由一組對象構(gòu)成,每個對象分別帶有一條豎線,代表時間軸,稱為生命線。從一個對象的生命線指向另一個對象的生命線的水平箭頭表示消息。序列圖就是描述這些對象隨著時間的推移互相之間交換消息的過程。下圖示為一個模擬銀行間資金轉(zhuǎn)賬的序列圖,通過中心間聯(lián)發(fā)起轉(zhuǎn)賬,描述了銀行A、中心、銀行B的交互過程,通過該模型圖,可以比較清晰的了解整個交互過程及交互順序。
與序列圖相同,協(xié)作圖也是用來描述系統(tǒng)中對象之間的動態(tài)協(xié)作關(guān)系。協(xié)作圖側(cè)重于描述各對象之間存在的消息收發(fā)關(guān)系,而不專門突出這些消息發(fā)送的時間順序。下圖是與上面序列圖對應(yīng)的協(xié)作圖,對象之間的消息箭頭表示它們之間的消息流向,消息上的標號說明這些消息發(fā)送的時序。
狀態(tài)圖是對類描述的補充,用于展示此類對象所具有可能的狀態(tài)以及某些事件發(fā)生時其狀態(tài)的轉(zhuǎn)移情況。下圖示一部電梯的狀態(tài)圖,圓角矩形表示狀態(tài),箭頭表示狀態(tài)的轉(zhuǎn)移,而轉(zhuǎn)移旁標出的是所發(fā)生的事件。如:當電梯處于上升狀態(tài)時發(fā)生了“到達”的事件,則電梯轉(zhuǎn)為空閑狀態(tài)。
活動圖是一種特殊的狀態(tài)圖,活動圖描述一個操作中要進行的各項活動的執(zhí)行流程。同時,也常被用來描述一個用例的處理流程或者某種交互流程。下圖所示是一臺打印服務(wù)器的活動圖。通過該模型圖的描述,可以了解執(zhí)行打印功能時需要涉及哪些活動及其活動順序。圖中的圓角矩形表示活動,活動圖就是由一些活動組成的。當一個活動執(zhí)行完畢之后,控制將沿箭頭轉(zhuǎn)向下一個活動直至結(jié)束。