UML 交互圖 (順序圖、通信圖、魯棒圖、定時圖)_第1頁
UML 交互圖 (順序圖、通信圖、魯棒圖、定時圖)_第2頁
UML 交互圖 (順序圖、通信圖、魯棒圖、定時圖)_第3頁
UML 交互圖 (順序圖、通信圖、魯棒圖、定時圖)_第4頁
UML 交互圖 (順序圖、通信圖、魯棒圖、定時圖)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、UML 交互圖 (順序圖、通信圖、魯棒圖、定時圖) 2010-12-23 作者:佚名 來源:網(wǎng)絡(luò)    交互與交互圖   交互的概念   一次交互就是指在特定語境中,為了實現(xiàn)某一個目標,而在一組對象之間進行交換的一組消息所表示的行為   消息   UML中的4種交互圖   順序圖:順序圖是一種強調(diào)消息時間順序的交互圖,為讀者提供了控制流隨著時間推移的清晰的可視化軌跡   通信圖:UML 2.0中的通信圖實際上就是UML 1中的協(xié)作圖,它

2、強調(diào)的是參加交互的對象的組織,為讀者提供了在協(xié)作對象結(jié)構(gòu)組織的語境中觀察控制流的一個清晰的可視化軌跡    定時圖:采用了一種帶數(shù)字刻度的時間軸來精確地描述消息的順序   交互概述圖:是交互圖和活動圖的混合物    如何閱讀交互圖   閱讀順序圖順序圖的主要元素對象與角色:最頂上一排矩形框。在交互圖中,參與交互的對象既可以是具體的事物,又可以是原型化的事物。作為具體的事物,一個對象代表現(xiàn)實世界中的某個東西。例如,aOrder作為類Order的一個實例,可以代表一個特定的訂單;而如果作為一個原型化的事件,則aOrde

3、r可以代表類Order的任何一個實例。生命線與控制焦點:每個對象都有自己的生命線,對象生命線是一條垂直的虛線,用來表示一個對象在一段時間內(nèi)存在消息:用來描述對象之間所進行的通信的,該信息帶有對將要發(fā)生的活動的期望。當傳送一個消息時,它所引起的動作是用一個通過對計算過程的抽象而得到的可執(zhí)行語句(就是方法頭)。   消息分為五種:調(diào)用、返回、發(fā)送、創(chuàng)建和銷毀   調(diào)用:表示調(diào)用某個對象一個操作順序編號(第幾步的編號):整個消息的傳遞過程就形成了一個完整的序列,因此通過在每個消息的前面加上一個用冒號隔開的順序號來表示其順序。除了順序編號之外,還可以采用嵌套方案

4、:讀圖小結(jié) 第1步 在dispatchForm(分發(fā)窗體)中,對于某個已支付的Order進行分發(fā)時,就會調(diào)用該訂單(一個Order類的實例對象aOrder)的dispatch()方法。 1.1 dispatch()方法將逐個調(diào)用 for each orderitem 該Order對應(yīng)的所有OrderItem對象的getPeddleryId()方法獲取供應(yīng)商ID 1.2(PeddleryId),1.1.1 而OrderItem對象則是通過其所對應(yīng)的Product對象來的getPeddleryId()方法來獲取供應(yīng)商ID 。 1.2當Order的實例對象aOrder得到返回的PeddleryId后

5、,根據(jù)該值判斷是否已經(jīng)有相對應(yīng)的DeliverOrder對象【if PeddeleryId Not Exist】,如果沒有就創(chuàng)建它(調(diào)用 1.3 create(PeddleryId)),然后再將對應(yīng)的Product添加到這個DeliverOrder對象中。else 1.4否則就直接添加到相應(yīng)的DeliverOrder對象中。嵌套,由左向右,由上向下循環(huán)與分支   交互片斷操作符   片段就是指上面的框,   左上角是片段操作符   assert(斷言)   一定會發(fā)生   交

6、互片斷操作符assert是用來表示內(nèi)容所描述的行為是執(zhí)行過程中那個時刻唯一的有效行為。如果執(zhí)行到這個片斷的前面,則說明該片斷就一定會發(fā)生。它通常和ignore或consider一起使用,以斷言某種特定種類的消息行為break   條件復(fù)合跳出?交互片斷操作符break和循環(huán)語句的break有點類似,通常break用來定義一個含有監(jiān)護條件的子片斷。   如果監(jiān)護條件為“真”則執(zhí)行子片斷,而且不執(zhí)行包含子片斷的圖中其它交互將不會執(zhí)行,也就是跳出去;   如果監(jiān)護條件為“假”,那么執(zhí)行將正常地繼續(xù)進行 critical  

7、0; 連續(xù)性的事物性的操作   表示該子片斷是“臨界區(qū)域”,在臨界區(qū)域中生命線上的事件序列不能夠和其它區(qū)域中的任何其他事件交錯。通常用來表示一個原子性的連續(xù)操作,例如事務(wù)性操作 par   同時執(zhí)行   用來表示“并行”的,也就是用來表示兩個或多個并發(fā)執(zhí)行的子片斷,并行子片斷中單個元素的執(zhí)行次序可以以任何可能的順序相互操作 ref   引用另一個片段到此處   在一個交互圖中,我們可以引用其它的交互圖,其表示的方法是用一個矩形,加上ref操作符,并寫明引用的交互圖名稱即可 圖表示法圖表示法類圖c

8、lass對象圖object包圖package用例圖use case順序圖sd通信圖comm定時圖timing活動圖activity交互概觀圖intover狀態(tài)機圖statemachine構(gòu)件圖component部署圖deployment 閱讀通信圖通信圖就是把順序圖豎起來去看,關(guān)注了訪問關(guān)系。通信圖主要元素鏈:連接器,是用來表示對象之間的語義連接,一般而言,鏈是關(guān)聯(lián)的一個實例(包括association、self、global、local等)。不過在UML 2中已經(jīng)開始弱化它們的使用,因此除非必要,無需過多地考慮它們消息編號:消息的編號有兩種,一種是無層次編號,它簡單直觀;另一種是嵌套的編號,

9、它更易于表示消息的包含關(guān)系(類似,1.3.2 )迭代標記:用*號表示,表示循環(huán),通常還有迭代表達式,用來說明循環(huán)規(guī)則監(jiān)護條件:通常是用來表示分支的,也就是表示“如果條件為true,才發(fā)送消息” 在通信圖中使用監(jiān)護條件一定要有所限制,通常應(yīng)只列出主要的監(jiān)護條件,否則會影響其閱讀。如果需要,盡可能還是通過順序圖來表示如何繪制交互圖準備工作首先根據(jù)自己的喜好和實際的表現(xiàn)需要來選擇順序圖或通信圖。不過由于它們在語義上是等價的,因此可以繪制出一種,再通過建模工具來自動轉(zhuǎn)換成另一種圖 分析模型中的交互圖徹重于分析類的職責(zé)分配和交互流程,而設(shè)計模型中的交互圖則徹重于設(shè)計類的引入和實際方法的調(diào)用與流程控制 先

10、確定參與交互的對象、對象之間的關(guān)系(通信圖),然后確定對象間的消息交互流程(用同步調(diào)用、異步消息、返回消息表示),并利用交互片斷(順序圖)或迭代標記及監(jiān)護條件來表示循環(huán)和分支結(jié)構(gòu)魯棒分析魯棒圖可以很多的解決需求分析和架構(gòu)設(shè)計之間的差別。更詳細的說明請看最后的解釋。Robustness分析不是UML模型的一部分,它是一個強大的草圖工具,是介于分析和設(shè)計之間的一種有效工具在Robustness分析中,將應(yīng)用邊界類、控制類和實體類,分別對應(yīng)MVC 架構(gòu)的3個層從一個用例中抽取三類對象的方法魯棒分析從事件流開始下面是用例描述魯棒分析尋找邊界對象圖書管理員向系統(tǒng)發(fā)出“新增書籍信息”請求主窗口、“新增書籍

11、信息”按鈕系統(tǒng)要求圖書管理員選擇要新增的書籍是計算機類還是非計算機類書籍類別列表框。圖書管理員做出選擇后,顯示相應(yīng)界面,讓圖書管理員輸入信息,并自動根據(jù)書號規(guī)則生成書號“新書信息錄入”窗口及輔助的“提交”按鈕魯棒分析尋找控制對象和實體對象新添兩個邏輯:一 是基本事件流中的步驟2、3要求根據(jù)用戶選擇的類別,自動獲得書號;二 是當書名重復(fù)性檢查沒有通過(有重名),則應(yīng)返回要求其重輸構(gòu)建交互模型轉(zhuǎn)換成通信圖走到這里,我們已經(jīng)能夠知道,MDA的建模順序,是先用例圖,用例描述,魯棒圖,魯棒順序圖(通信圖),類圖,數(shù)據(jù)庫設(shè)計圖交互圖應(yīng)用說明交互模型的類型與演變分析階段的交互模型工作方法:針對用例圖中的每個

12、用例,并結(jié)合領(lǐng)域模型中的類,尋找分析類,并通過Robustness分析來理清業(yè)務(wù)邏輯流程,再用交互模型將其確定下來 注意:主要關(guān)注于區(qū)分出邊界對象、實體對象和控制對象,暫時不要考慮其具體的實現(xiàn)類 說明:對于較復(fù)雜的用例,可以按上述的流程逐漸地進行分析、設(shè)計、實施;但對于比較簡單的用例而言,也是可以直接從用例描述中導(dǎo)出設(shè)計階段交互模型 分析階段的交互模型之后引入基礎(chǔ)類:包括基礎(chǔ)框架、程序庫等質(zhì)量評審: - 低耦合:耦合性是指兩個類之間的連接強度 - 高內(nèi)聚:內(nèi)聚性是指一個類的屬性與方法高度集成 - 效率:解決方案的執(zhí)行效率是否滿足系統(tǒng)的需求 - 完整性:是指在任何環(huán)境下都可以重復(fù)使用- 簡單性:

13、類越簡單,出錯的可能性越小,系統(tǒng)的靈活性和可維護性也越好優(yōu)化類設(shè)計:閱讀 設(shè)計模式與重構(gòu)設(shè)計階段的交互模型 & 交互建模要點在分析模型的基礎(chǔ)上引入基礎(chǔ)類、優(yōu)化類設(shè)計之后,必然會獲得新的類模型(類圖)(設(shè)計模型),因此就可能需要基于新引入的“設(shè)計類”來更新交互模型,以獲得與實際代碼相吻合的模型給出一個能表達其目的的名稱;通過修改元素的布局,盡量避免交叉線的存在;可以通過注解和顏色作為可視化提示,以突出圖形中的重要特性;盡量少用分支,對于分支很多的場景,可以考慮用活動圖來補充定時圖(時序圖)定時圖與順序圖的區(qū)別坐標軸交換了位置,改為從左到右來表示時間的推移(生命線顛倒)用生命線的“凹下凸起”來表示狀態(tài)的變化,每個水平位置代表一種不同的狀態(tài),狀態(tài)的順序可以有意義、也可以沒有意義生命線可以跟在一根線后面,在這根線上顯示些不同的狀態(tài)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論