第4章順序圖和協(xié)作圖_第1頁
第4章順序圖和協(xié)作圖_第2頁
第4章順序圖和協(xié)作圖_第3頁
第4章順序圖和協(xié)作圖_第4頁
第4章順序圖和協(xié)作圖_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章順序圖與協(xié)作圖4.1交互圖概述Interactiondiagram,是描述對象之間以及對象與參與者之間的動態(tài)協(xié)作關(guān)系以及協(xié)作過程中行為次序的圖形文檔;通常用來描述一個用例的行為,實(shí)現(xiàn)一個用例,完成對系統(tǒng)的動態(tài)行為建模;包含兩種:順序圖(或時序圖,sequencediagram)協(xié)作圖(collaborationdiagram)順序圖面向時間描述對象交互的圖協(xié)作圖對象間消息協(xié)作的結(jié)構(gòu)化視圖4.2

順序圖UML-4-4.2.1概要順序圖用來表示用例中的行為順序。任何用例都可以使用順序圖進(jìn)一步闡明和實(shí)現(xiàn)。順序圖展示對象之間的交互,這些交互是指在場景或用例的事件流中發(fā)生的。順序圖屬于動態(tài)建模。順序圖的重點(diǎn)在消息序列上,也就是說,描述消息是如何在對象間發(fā)送和接收的。表示了對象之間傳送消息的時間順序。瀏覽順序圖的方法是:從上到下查看對象間交換的消息。4.2順序圖按照時間順序顯示對象之間交互的圖4.2順序圖UML-6-

順序圖與用例圖和類圖的關(guān)系例子--移動電話系統(tǒng)的用例圖移動用戶移動網(wǎng)絡(luò)與對方通話下載圖符下載鈴聲管理電話本例子--移動電話系統(tǒng)的順序圖:移動用戶:移動按鍵:移動顯示:移動手機(jī):移動基站按數(shù)字鍵顯示按鍵號碼按發(fā)送鍵連接基站建立連接連接成功顯示連接成功例子--移動電話系統(tǒng)的協(xié)作圖:移動用戶1:按數(shù)字鍵3:按發(fā)送鍵

:移動按鍵2:顯示按鍵號碼

:移動顯示

:移動手機(jī)

:移動基站4:連接基站5:建立連接6:連接成功7:顯示連接成功4.2

順序圖UML-10-4.2.2順序圖中的事物(建模元素)事物名稱解釋圖參與者與系統(tǒng)、子系統(tǒng)或類發(fā)生交互作用的外部用戶(參見用例圖定義)。對象順序圖的橫軸上是與序列有關(guān)的對象。對象的表示方法是:矩形框中寫有對象或類名,且名字下面有下劃線。生命線坐標(biāo)軸縱向的虛線表示對象在序列中的執(zhí)行情況(即發(fā)送和接收的消息,對象的活動)這條虛線稱為對象的“生命線”。消息符號消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。參與者或?qū)ο髤⑴c者和對象按照從左到右的順序排列一般最多兩個參與者,他們分列兩端。啟動這個用例的活動者往往排在最左邊;接收消息的活動者則排在最右端;對象從左到右按照重要性排列或按照消息先后順序排列。參與者或?qū)ο髮ο蟮拿绞接腥N:包括對象名和類名類名(匿名對象)對象名(不關(guān)心類)生命線生命線(Lifeline):每個對象都有自己的生命線,用來表示在該用例中一個對象在一段時間內(nèi)的存在垂直的虛線如果對象生命期結(jié)束,則用注銷符號表示對象默認(rèn)的位置在圖頂部,表示對象在交互之前已經(jīng)存在如果是在交互過程中由另外的對象所創(chuàng)建,則位于圖的中間某處。激活期激活期(activation)/控制焦點(diǎn)(focusofcontrol)對象在一段時間內(nèi)獲得了焦點(diǎn),也稱激活期對象執(zhí)行某個動作的時期空心矩形條激活期的長短意味著對象執(zhí)行某個動作的時間有多長,可以通過約束{10ms}來限制執(zhí)行時間的長短。消息面向?qū)ο蠓椒ㄖ?,消息是對象間交互信息的主要方式。結(jié)構(gòu)化程序設(shè)計(jì)中,模塊間傳遞信息的方式主要是過程(或函數(shù))調(diào)用。對象A向?qū)ο驜發(fā)送消息,可以簡單地理解為對象A調(diào)用對象B的一個操作(operation)。消息順序圖中,盡力保持消息的順序是從左到右排列的。一個順序圖的消息流開始于左上方,消息2的位置比消息1低,這意味著消息2的順序比消息1要遲。因?yàn)槲鞣降拈喿x習(xí)慣是從左到右。順序圖中消息編號可顯示,也可不顯示。協(xié)作圖中必須顯示。4.2

順序圖UML-17-簡單的例子從參與者到對象和從對象到參與者之間發(fā)送的消息從對象傳遞給另一個對象的消息在類圖中的類的對象使用系統(tǒng)的參與者,這個系統(tǒng)是為某個用例的某個場景設(shè)計(jì)的對象生命線表示從上到下的時間順序,消息1在消息2之前發(fā)生,消息2在消息3之前發(fā)生窄長方框用以強(qiáng)調(diào)這個部分處于活動狀態(tài)消息格式:operation(parameterlist)

向哪個對象發(fā)消息實(shí)際上就是調(diào)用它的類中的操作,就是調(diào)用箭頭指向的對象所在類的一個operation。例:訂單類發(fā)消息給客戶類調(diào)用客戶類中的“驗(yàn)證客戶”操作4.2

順序圖UML-18-復(fù)雜的例子信息亭售票中心信用卡服務(wù)從這個例子中可以看出:Kjosk類中的操作有

ShowAvailable(seat-list)DemandPayment(cost)printtickets(performance,seats)ejectcardBoxOffice中的操作有

Request(count,performance)SelectSeatsInsertCard(CardNumber)authorizedCreditCardService類中的操作有

charge(cardnumber,cost)

此圖是描述購票這個用例的順序圖。顧客在信息亭與售票中心通話觸發(fā)了這個用例的執(zhí)行。順序圖中付款這個用例包括售票中心與信息亭和信用卡服務(wù)處使用消息進(jìn)行通信過程。此圖中存在的事物有:

對象(信息亭Kjosk,售票中心BoxOffice,信用卡服務(wù)CreditCardService),生命線,消息符號。信息亭發(fā)Request(count,performance)消息給售票中心,表示調(diào)用售票中心類的Request(count,performance)操作,來查詢演出的信息。售票中心發(fā)ShowAvailable(seat-list)消息給信息亭,表示調(diào)用信息亭類中的ShowAvailable(seat-list)操作,給出可用的座位表?!ML三種消息:調(diào)用(ProcedureCall)消息----同步消息異步(Asynchronous)消息返回(Return)消息Rose擴(kuò)充:阻止(Balking)消息超時(Time-out)消息消息UML三種消息:調(diào)用(ProcedureCall)發(fā)送者把消息發(fā)送后,等待直到接收者返回控制,可以表示同步;實(shí)心箭頭符號消息UML三種消息:異步(Asynchronous)消息發(fā)送后,發(fā)送者繼續(xù)操作,不等待,常用于并發(fā);消息UML三種消息:返回(Return)表示消息的返回。消息上方放置返回值同步消息的返回可以畫出(如果想明確表達(dá)返回值),也可以不畫出,直接隱含。異步消息可以有返回,也可以沒有。(可以響應(yīng)異步消息,也可以不響應(yīng)該異步消息。)如果順序圖上顯示有編號,則返回消息的編號和當(dāng)初發(fā)送消息的編號完全一樣。虛線箭頭表示,和依賴關(guān)系不要混淆消息自調(diào)用(SelfCall)某對象自己調(diào)用自己的操作UML標(biāo)記(嵌套的矩形條)Rose標(biāo)記消息Rose新增消息阻止(Balking)接收者如果無法立即接收消息,則發(fā)送者放棄該消息超時(Time-out)如果接收者無法在指定的時間內(nèi)接收消息,則發(fā)送者放棄該消息Q:這兩種消息可以看做是同步or異步消息?消息格式[前綴][警戒條件][順序表達(dá)式][返回值:=]消息名([參數(shù)列表])例:2:display()簡單消息1.3.1:p:=find()帶返回值的嵌套消息[x<0]4:invert(x,color)條件消息3.1*[x=1..10]:update()

循環(huán)消息a3,b4/c2:copy(a,b)線程同步1.1a,1.1b/1.2:continue()帶前綴消息在發(fā)送線程c的第2個消息之前,必須先發(fā)送線程a的第3個消息和線程b的第4個消息在發(fā)送消息1.2之前必須已經(jīng)同時發(fā)送并發(fā)消息給線程a和b前綴(predecessor)語法:消息序列號,消息序列號,.../前綴是一個用來同步線程或路徑(path)的表達(dá)式意思是在發(fā)送當(dāng)前消息之前指定序列號的消息被處理(必須連續(xù)執(zhí)行)消息序列號之間用逗號隔開,用斜杠結(jié)束例如1.1a,1.1b/1.2:continue()

,在發(fā)送消息1.2之前必須已經(jīng)同時發(fā)送并發(fā)消息給線程a和b消息警戒條件(guard-condition)語法:[條件短語]條件短語通常用偽代碼或真正的程序語言來表示,UML并不規(guī)定其語法例如,[x<0]4:invert(x,color)消息序列表達(dá)式(sequence-expression)語法[integer|name][recurrence]:integer為指定消息順序的序列號,消息1是消息序列的開始消息,1.1是消息1的處理過程中的第一條嵌套的消息,消息1.2是消息1的處理過程中的第二條嵌套的消息,一個消息序列的例子如1,1.1,1.2,1.2.1,1.2.2,1.3,等。這樣的序列號不僅能夠表示消息的順序而且還能表示消息的嵌套關(guān)系(當(dāng)消息是異步消息時消息為嵌套的操作調(diào)用及返回)name表示并發(fā)控制線程,例如1.2a和1.2b為同時發(fā)送的并發(fā)消息消息消息recurrence表示一個條件或迭代的執(zhí)行,有兩種選擇*[循環(huán)子句]循環(huán)子句(iteration-clause)用來指定一個循環(huán)(重復(fù)執(zhí)行)例如:一個包括循環(huán)的消息

1.1*[x=1..10]:doSomething()[條件子句]條件子句一般用來表示分支而不是用作警戒條件[x<0]是兩個可以用來分支的條件子句這兩個條件只能有一個為真因而只有一個分支被執(zhí)行(即發(fā)送與分支有關(guān)的消息)條件子句和循環(huán)子句都可以用偽代碼或真正的編程語言來表示序列表達(dá)式用冒號結(jié)束消息返回值、消息名和參數(shù)表返回值表示一個操作調(diào)用(即一個消息)的結(jié)果消息Rose中的消息Rose中的消息Simple和Asynchronous都可表示異步,UML1.4之后的版本用Simple消息表示異步ProcedureCall和Synchronous和都可表示同步,UML早期版本用“同步消息”這一術(shù)語,目前常用ProcedureCall消息表示同步Return不變新增balking和time-out消息4.2.3建立順序圖的步驟確定交互過程的上下文識別參與交互過程的對象為每個對象設(shè)置生命線從引發(fā)這個交互過程的初始消息開始,在生命線之間自頂向下依次畫出隨后的各個消息.如果需要嵌套或(和)表示消息發(fā)生的時間點(diǎn),使用FOC.如果需要說明時間約束,則在消息旁邊加上約束說明.如果需要,可以為每個消息設(shè)置前置條件和后置條件.4.2.4案例:存款分析級別的順序圖,粗略,雙斜杠——忽略消息同步異步類別也無妨4.2.4案例:新增書目和圖書操作4.2順序圖UML-38-①②③④⑤⑦⑥⑨⑧⑩1指出左圖中的參與者?A①B②C③D④2哪些是對象?A①B②③④C④D⑤⑥⑦⑧⑨⑩3Server類調(diào)用了CreditService類中的什么操作?A⑦B⑧C⑦⑧D⑧⑨練習(xí)題1.A2.B3.B4.2.5練習(xí)用戶打印文件,計(jì)算機(jī)向打印服務(wù)器發(fā)送打印命令,打印機(jī)如果空閑,則直接打印,否則把打印文件存儲在打印隊(duì)列中。用戶打印文件,計(jì)算機(jī)向打印服務(wù)器發(fā)送打印命令,打印機(jī)如果空閑,則直接打印,否則把打印文件存儲在打印隊(duì)列中。4.2.5練習(xí)管理員通過課程管理器打印課程UML的信息順序圖制作提示:只關(guān)注核心對象順序圖用于描述某個用例的部分交互細(xì)節(jié)管理員通過課程管理器打印課程UML的信息管理員通過課程管理器打印所有課程信息4.3協(xié)作圖協(xié)作圖是用于描述系統(tǒng)的行為是如何由系統(tǒng)成分協(xié)作實(shí)現(xiàn)的圖.對象object鏈link消息message協(xié)作圖中的元素:4.3.1多對象多對象是多個對象組成的集合,往往是同一個類的對象;如果消息同時發(fā)給多個對象,則用多對象表示;在順序圖中仍然顯示為單對象一樣的圖標(biāo),

rose中multipleinstance協(xié)作圖中重疊的方框。4.3.2活動對象/主動對象主動對象是一組屬性和一組方法的封裝體,其中至少有一個方法不需要接收消息就能主動執(zhí)行(稱為主動方法)主動對象是不需接收消息就可自動啟動交互的對象除了含有主動方法外,主動對象和被動對象無區(qū)別

UML標(biāo)記Rose標(biāo)記4.3.3建立協(xié)作圖的步驟確定交互過程的上下文識別參與交互過程的對象如果需要,為每個對象設(shè)置初始特性確定對象之間的鏈,及沿著鏈的消息從引發(fā)該交互過程的初始消息開始,將每個消息附到相應(yīng)的鏈上如果需要表示消息嵌套,則有Dewey十進(jìn)制表示.如果需要說明時間約束,則在消息旁邊加上約束說明如果需要,可以為每個消息設(shè)置前置條件和后置條件4.3.4案例:存款4.2.4案例:存款—順序圖4.4順序圖與協(xié)作圖的比較相同點(diǎn)規(guī)定責(zé)任,二者均直觀地規(guī)定了發(fā)送對象和接收對象的責(zé)任.支持消息,二者均支持所有的消息類型.衡量工具,二者均是衡量耦合性的工具.不同點(diǎn)協(xié)作圖強(qiáng)調(diào)參與交互的對象的組織結(jié)構(gòu);順序圖強(qiáng)調(diào)消息的時間順序.順序圖可以反映對象的創(chuàng)建/激活/撤消;協(xié)作圖不能.協(xié)作圖能反應(yīng)動作路徑,消息必須有順序號;順序圖沒有.4.4順序圖與協(xié)作圖的比較汽車租賃系統(tǒng)中”客戶還車”的順序圖4.4順序圖與協(xié)作圖的比較汽車租賃系統(tǒng)中”客戶還車”的協(xié)作圖4.4順序圖與協(xié)作圖的比較案例:查詢學(xué)生信息—順序圖4.4順序圖與協(xié)作圖的比較案例:查詢學(xué)生信息—協(xié)作圖4.4順序圖與協(xié)作圖的比較

順序圖和協(xié)作圖都屬于交互圖,這兩種圖之間的區(qū)別在于:順序圖基于時間,按時間順序顯示出現(xiàn)的任務(wù);協(xié)作圖顯示任務(wù)和信息(對象)的交互方式。在協(xié)作圖中,時間以編碼形式顯示,很難選取。雖然存在這些根本區(qū)別,但這兩類圖有相同之處:都用于顯示對象和用戶如何交互以執(zhí)行任務(wù)。

4.5順序圖與協(xié)作圖的轉(zhuǎn)換

順序圖與協(xié)作圖語義等價、可相互轉(zhuǎn)換但不能完全相互代替,利用Rationalrose支持順序圖與協(xié)作圖之間的轉(zhuǎn)換。

順序圖轉(zhuǎn)換為協(xié)作圖

1、從sequence框圖創(chuàng)建collaboration框圖:

2、打開sequence框圖;

3、選擇Browse>CreatecollaborationDiagram;或者,直接按下F5鍵;

從協(xié)作圖轉(zhuǎn)換成順序圖

1、從collaboration框圖創(chuàng)建sequence框圖:

2、打開collaboration框圖;

3、選擇Browse>CreateSequenceDiagram;或者,直接按下F5鍵;1、確定系統(tǒng)中的類課堂練習(xí):建模儲戶在ATM機(jī)上存錢操作的協(xié)作圖。2、確定類之間關(guān)系3、對象實(shí)例之間

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論