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