解析UML面向對象分析與建模中交互圖
UML面向對象分析與建模你是否熟悉,本節就和大家分享一下UML面向對象分析與建模中交互圖的內容,相信通過本節的學習你對UML面向對象分析與建模的概念有清晰的認識。
UML面向對象分析與建模 交互圖
一、概述
交互圖是用來表達系統的各個對象之間如何交互,如何合作完成某個行為的動態模型工具,它與用例圖、狀態圖、活動圖等共同構成了系統的行為視圖。
交互圖主要用于對用例圖中的控制流進行建模,它包括序列圖和協作圖,其中,序列圖按時間次序描述系統中各對象如何通過消息交互,協作圖從空間上描述收發消息的對象的結構關系。
二、序列圖
UML面向對象分析與建模中序列圖是一種交互圖,描述了系統中各個對象之間傳遞消息的時間次序,用來表示用例的行為順序,從而為對象類圖中概括對象的行為、劃分對象類的職責提供依據。它依賴與用例圖,如果說用例圖是對用戶需求的***次抽象,那通過序列圖,用戶的需求就會變得更加具體,系統中各個對象的行為和角色也更加清晰。
序列圖也稱為時序圖,包括對象、生命線、消息和激活。其中激活表示該對象被占用以完成某個任務,撤銷表示對象處于空閑等待消息狀態。在UML中,矩形表示對象是激活的,稱為激活期或控制期。對象完成任務后被撤銷,一般發生在一個消息離開對象生命線的時候。
同步消息代表一個通過操作調用的嵌套的控制流,該操作調用要求操作同步。同步消息的接收方必須是一個被動對象,即它是一個需要通過消息的驅動才能執行動作的對象。異步消息代表一個非同步的信號請求,該信號異步要求一個操作。異步消息的發送方和接收方是并行工作的。異步消息的接收方必須是一個主動對象,它不需要消息驅動就可以執行對象的動作。
一個對象可以在交互中動態創建。動態創建的對象生命線起始位置低于正常的對象。一個對象可以在交互中銷毀。當一個對象已經完成了自己的全部動作或活動后,可以在對象生命線的末端使用刪除標志來銷毀,對象可以自己銷毀自己(析構函數)。
自調用指一個對象調用自己。當指定的事件已經出現或者操作已完成時,接收方立即發送一個異步消息給發送方,通知發送方可以繼續進行后續的動作,這就是回調機制。回調發送的是一個異步消息,收發雙方并行進行各自的活動,并且并非任何異步消息都要有相對應的回調消息,而返回消息則是與同步消息匹配的,同步消息的發送方必須等待接收方響應后才能繼續后續的動作。
三、協作圖
UML面向對象分析與建模中協作圖強調以消息傳遞為紐帶的一組對象之間的組織結構,用于描述系統的行為如何由系統的各對象合作完成的。
序列圖和協作圖都可以用來表示系統的動態行為,前者側重強調消息的時間順序,即對象間的通信模式;后者側重強調對象間的靜態連接關系,即對象間的協作。
協作圖沒有時間維,所以消息和并發線程的時間順序必須用序號表示。協作圖描述了兩個方面:對交互作用的對象的靜態結構描述,包括相關的對象的關系、屬性和操作;為完成工作在對象間交換的消息的時間順序的描述。***個方面稱為協作所提供的“上下文”,第二個方面稱為協作關系的“交互作用”。
四、交互圖建模
序列圖建模基本步驟:
(1)確定交互的上下文。
(2)找出參與交互的對象類的角色,并橫向排列在序列圖的頂部。最重要的或啟動交互的對象放在最左邊,依次向右排列,動態創建的對象應放在被創建的時間點位置。
(3)對每個對象設置一條垂直向下的生命線。
(4)從初始化交互的消息開始,自頂向下在生命線上放置消息,注意各類不同消息的表示法。
(5)在生命線上繪制對象的激活期,包括動態對象的創建和銷毀。
(6)根據消息之間的關系,確定循環結構及其循環參數和出口條件。
協作圖建模的基本步驟:
(1)確定交互的上下文。
(2)找出參與交互的對象類的角色,把它們作為圖形的節點安置在協作圖中。最重要的對象放在中央。
(3)設置對象的初始性質。
(4)給出對象間的關聯,注意必要的修飾,如構造型<<global>><<local>>等。
(5)從初始化交互的消息開始,按交互順序放置其它消息,注意消息的序號不可缺少。
(6)處理特殊的情況,如循環、主動對象、異步消息、多對象等。
UML面向對象分析與建模中序列圖和協作圖都是交互圖,但它們間并不完全相同,表現為:
(1)序列圖和協作圖都能等價地表現系統運行中對象的交互行為。
(2)序列圖表達了時間的消息序列,體現了系統行為的順序。
(3)協作圖表達了系統中對象間的關聯和消息的相互作用,體現了系統的靜態結構。
(4)序列圖適合按時間次序建立系統的控制流模型,協作圖適合按對象組織建立系統的控制流模型
【編輯推薦】