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

下載本文檔

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

文檔簡介

1、第第4章章 順序圖與協(xié)作圖順序圖與協(xié)作圖UML- 2 -UML- 2 -nInteraction diagram,是描述對象之間以及對象與,是描述對象之間以及對象與參與者之間的動態(tài)協(xié)作關(guān)系以及協(xié)作過程中行為次參與者之間的動態(tài)協(xié)作關(guān)系以及協(xié)作過程中行為次序的圖形文檔;序的圖形文檔;n通常用來描述一個用例的行為,實現(xiàn)一個用例,完通常用來描述一個用例的行為,實現(xiàn)一個用例,完成對系統(tǒng)的動態(tài)行為建模;成對系統(tǒng)的動態(tài)行為建模;n包含兩種:包含兩種:順序圖(或時序圖,順序圖(或時序圖,sequence diagram)協(xié)作圖(協(xié)作圖(collaboration diagram)UML- 3 -UML- 3

2、-順序圖順序圖面向面向時間時間描述對象交互的圖描述對象交互的圖協(xié)作圖協(xié)作圖對象間對象間消息協(xié)作消息協(xié)作的結(jié)構(gòu)化視圖的結(jié)構(gòu)化視圖UML- 4 -UML- 4 -UML- 4 -概要概要順序圖用來表示用例中的行為順序。任何用例都可以使用順序圖用來表示用例中的行為順序。任何用例都可以使用順序圖進一步闡明和實現(xiàn)。順序圖進一步闡明和實現(xiàn)。順序圖展示對象之間的交互,這些交互是指在場景或用例順序圖展示對象之間的交互,這些交互是指在場景或用例的事件流中發(fā)生的。的事件流中發(fā)生的。 順序圖屬于動態(tài)建模。順序圖屬于動態(tài)建模。 順序圖的重點在消息序列上,也就是說,描述消息是如何順序圖的重點在消息序列上,也就是說,描述

3、消息是如何在對象間發(fā)送和接收的。表示了對象之間傳送消息的時間順在對象間發(fā)送和接收的。表示了對象之間傳送消息的時間順序。序。瀏覽順序圖的方法是:從上到下查看對象間交換的消息。瀏覽順序圖的方法是:從上到下查看對象間交換的消息。UML- 5 -UML- 5 -按照時間順序顯示對象之間交互的圖按照時間順序顯示對象之間交互的圖UML- 6 -UML- 6 -UML- 6 -順序圖與用例圖和類圖的關(guān)系順序圖與用例圖和類圖的關(guān)系UML- 7 -UML- 7 -移動用戶移動用戶移動網(wǎng)絡移動網(wǎng)絡與對方通話與對方通話下載圖符下載圖符下載鈴聲下載鈴聲管理電話本管理電話本UML- 8 -UML- 8 - : 移動用戶

4、移動用戶 : 移動按鍵移動按鍵 : 移動顯示移動顯示 : 移動手機移動手機 : 移動基站移動基站按數(shù)字鍵按數(shù)字鍵顯示按鍵號碼顯示按鍵號碼按發(fā)送鍵按發(fā)送鍵連接基站連接基站建立連接建立連接連接成功連接成功顯示連接成功顯示連接成功UML- 9 -UML- 9 - : 移動用戶移動用戶1: 按數(shù)字鍵按數(shù)字鍵3: 按發(fā)送鍵按發(fā)送鍵 : 移動按鍵移動按鍵2: 顯示按鍵號碼顯示按鍵號碼 : 移動顯示移動顯示 : 移動手機移動手機 : 移動基站移動基站4: 連接基站連接基站5: 建立連接建立連接6: 連接成功連接成功7: 顯示連接成功顯示連接成功UML- 10 -UML- 10 -UML- 10 -順序圖中的

5、事物(建模元素)順序圖中的事物(建模元素)事物名稱事物名稱解釋解釋圖圖參與者參與者與系統(tǒng)、子系統(tǒng)或類發(fā)生交互作用的外與系統(tǒng)、子系統(tǒng)或類發(fā)生交互作用的外部用戶部用戶(參見用例圖定義參見用例圖定義)。對象對象順序圖的橫軸上是與序列有關(guān)的對象。順序圖的橫軸上是與序列有關(guān)的對象。對象的表示方法是:矩形框中寫有對象對象的表示方法是:矩形框中寫有對象或類名,且名字下面有下劃線?;蝾惷?,且名字下面有下劃線。生命線生命線坐標軸縱向的虛線表示對象在序列中的坐標軸縱向的虛線表示對象在序列中的執(zhí)行情況執(zhí)行情況(即發(fā)送和接收的消息,對象的即發(fā)送和接收的消息,對象的活動活動)這條虛線稱為對象的這條虛線稱為對象的“生命線

6、生命線”。消息符號消息符號消息用從一個對象的生命線到另一個對消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。在圖中從上到下排列。UML- 11 -UML- 11 -n參與者和對象按照從左到右的順序排列參與者和對象按照從左到右的順序排列n一般最多兩個參與者,他們分列兩端。啟動這個用例的活一般最多兩個參與者,他們分列兩端。啟動這個用例的活動者往往排在最左邊;接收消息的活動者則排在最右端;動者往往排在最左邊;接收消息的活動者則排在最右端;n對象從左到右按照重要性排列或按照消息先后順序排列。對象從左到右按照重要性排列或按照消息先

7、后順序排列。UML- 12 -UML- 12 -n 對象的命名方式有三種:對象的命名方式有三種:l 包括對象名和類名包括對象名和類名l 類名(匿名對象)類名(匿名對象)l 對象名(不關(guān)心類)對象名(不關(guān)心類)UML- 13 -UML- 13 -n生命線(生命線(Lifeline):):l每個對象都有自己的生命線,用來表示在該用例中一個對每個對象都有自己的生命線,用來表示在該用例中一個對象在一段時間內(nèi)的存在象在一段時間內(nèi)的存在l垂直的虛線垂直的虛線l如果對象生命期結(jié)束,則用注銷符號表示如果對象生命期結(jié)束,則用注銷符號表示l對象默認的位置在圖頂部,對象默認的位置在圖頂部,表示對象在交互之前已經(jīng)存在

8、表示對象在交互之前已經(jīng)存在l如果是在交互過程中由另外如果是在交互過程中由另外的對象所創(chuàng)建,則位于圖的的對象所創(chuàng)建,則位于圖的中間某處。中間某處。UML- 14 -UML- 14 -n激活期激活期(activation)/控制焦點(控制焦點(focus of control)l對象在一段時間內(nèi)獲得了焦點,也稱激活期對象在一段時間內(nèi)獲得了焦點,也稱激活期l對象執(zhí)行某個動作的時期對象執(zhí)行某個動作的時期l空心矩形條空心矩形條l激活期的長短意味著對象執(zhí)行激活期的長短意味著對象執(zhí)行某個動作的時間有多長,可以某個動作的時間有多長,可以通過約束通過約束10ms來限制執(zhí)行來限制執(zhí)行時間的長短。時間的長短。UML

9、- 15 -UML- 15 -n面向?qū)ο蠓椒ㄖ?,消息是對象間交互信息的主要方面向?qū)ο蠓椒ㄖ校⑹菍ο箝g交互信息的主要方式。式。n結(jié)構(gòu)化程序設計中,模塊間傳遞信息的方式主要是結(jié)構(gòu)化程序設計中,模塊間傳遞信息的方式主要是過程(或函數(shù))調(diào)用。過程(或函數(shù))調(diào)用。n對象對象A向?qū)ο笙驅(qū)ο驜發(fā)送消息,可以簡單地理解為對象發(fā)送消息,可以簡單地理解為對象A調(diào)用對象調(diào)用對象B的一個操作(的一個操作(operation)。)。UML- 16 -UML- 16 -n順序圖中,盡力保持消息的順序是從左到右順序圖中,盡力保持消息的順序是從左到右排列的。排列的。n一個順序圖的消息流開始于左上方,消息一個順序圖的消息流

10、開始于左上方,消息2的的位置比消息位置比消息1低,這意味著消息低,這意味著消息2的順序比消的順序比消息息1要遲。因為西方的閱讀習慣是從左到右。要遲。因為西方的閱讀習慣是從左到右。n順序圖中消息編號可顯示,也可不顯示。協(xié)順序圖中消息編號可顯示,也可不顯示。協(xié)作圖中必須顯示。作圖中必須顯示。UML- 17 -UML- 17 -UML- 17 -l簡單的例子簡單的例子從參與者到對象和從對象從參與者到對象和從對象到參與者之間發(fā)送的消息到參與者之間發(fā)送的消息從對象傳遞給另一個對從對象傳遞給另一個對象的消息象的消息在類圖中的類的在類圖中的類的對象對象使用系統(tǒng)的使用系統(tǒng)的參與者,這參與者,這個系統(tǒng)是為個系統(tǒng)

11、是為某個用例的某個用例的某個場景設某個場景設計的計的對象生命線表示從上到下對象生命線表示從上到下的時間順序,消息的時間順序,消息1在消息在消息2之前發(fā)生,消息之前發(fā)生,消息2在消息在消息3之前發(fā)生之前發(fā)生窄長方框用以強調(diào)這個窄長方框用以強調(diào)這個部分處于活動狀態(tài)部分處于活動狀態(tài) operation (parameter list) 向哪個對象發(fā)消息向哪個對象發(fā)消息實際上就是調(diào)用它的實際上就是調(diào)用它的類中的操作,就是調(diào)類中的操作,就是調(diào)用箭頭指向的對象所用箭頭指向的對象所在類的在類的 一個一個operation。例:例:訂單類發(fā)消息給客戶類訂單類發(fā)消息給客戶類調(diào)用客戶類中的調(diào)用客戶類中的“驗證驗證

12、客戶客戶”操作操作UML- 18 -UML- 18 -UML- 18 -l復雜的例子復雜的例子信息亭售票中心信用卡服務從這個例子中可以看出:從這個例子中可以看出:Kjosk類中的操作有類中的操作有 Show Available (seat-list) Demand Payment (cost) printtickets (performance, seats) eject cardBox Office中的操作有中的操作有 Request (count, performance) Select Seats Insert Card (Card Number) authorizedCredit Ca

13、rd Service類中的操作有類中的操作有 charge(card number, cost) 此圖是描述購票這個用例的順序圖。顧客在信息亭與售票中心通話觸發(fā)了這個用例的執(zhí)行。順序圖中付款這個用例包括售票中心與信息亭和信用卡服務處使用消息進行通信過程。此圖中存在的事物有:此圖中存在的事物有: 對象對象(信息亭信息亭 Kjosk ,售票中心,售票中心 Box Office, 信用卡服務信用卡服務 Credit Card Service ),生命線,消息符號。,生命線,消息符號。信息亭發(fā)Request (count, performance)消息給售票中心,表示調(diào)用售票中心類的Request (

14、count, performance)操作,來查詢演出的信息。售票中心發(fā)Show Available(seat-list)消息給信息亭,表示調(diào)用信息亭類中的Show Available(seat-list)操作,給出可用的座位表。UML- 19 -UML- 19 -nUML三種消息:三種消息:l調(diào)用(調(diào)用(Procedure Call)消息)消息-l異步(異步(Asynchronous)消息)消息l返回(返回(Return)消息)消息nRose擴充:擴充:l阻止(阻止(Balking)消息)消息l超時(超時(Time-out)消息)消息UML- 20 -UML- 20 -nUML三種消息:三種

15、消息:l調(diào)用(調(diào)用(Procedure Call)發(fā)送者把消息發(fā)送后,等待直到接收者返回控制,可發(fā)送者把消息發(fā)送后,等待直到接收者返回控制,可以表示以表示同步同步;實心箭頭符號實心箭頭符號UML- 21 -UML- 21 -nUML三種消息:三種消息:l異步(異步(Asynchronous)消息發(fā)送后,發(fā)送者繼續(xù)操作,不等待,常用于并發(fā);消息發(fā)送后,發(fā)送者繼續(xù)操作,不等待,常用于并發(fā);UML- 22 -UML- 22 -nUML三種消息:三種消息:l 返回(返回(Return)表示消息的返回。消息上方放置返回值表示消息的返回。消息上方放置返回值同步消息的返回可以畫出(如果想明確表達返回值),也

16、可以不畫出,直接隱含。同步消息的返回可以畫出(如果想明確表達返回值),也可以不畫出,直接隱含。異步消息可以有返回,也可以沒有。(可以響應異步消息,也可以不響應該異步消異步消息可以有返回,也可以沒有。(可以響應異步消息,也可以不響應該異步消息。)息。)如果順序圖上顯示有編號,則返回消息的編號和當初發(fā)送消息的編號完全一樣。如果順序圖上顯示有編號,則返回消息的編號和當初發(fā)送消息的編號完全一樣。虛線箭頭虛線箭頭表示,和依賴關(guān)系不要混淆表示,和依賴關(guān)系不要混淆UML- 23 -UML- 23 -v自調(diào)用(自調(diào)用(Self Call)l某對象自己調(diào)用自己的操作某對象自己調(diào)用自己的操作lUML標記標記 (嵌

17、套的矩形條)(嵌套的矩形條) Rose標記標記UML- 24 -UML- 24 -nRose新增消息新增消息l阻止(阻止(Balking)接收者如果無法立即接收消息,則發(fā)送者放棄該消息接收者如果無法立即接收消息,則發(fā)送者放棄該消息l超時(超時(Time-out)如果接收者無法在指定的時間內(nèi)接收消息,則發(fā)送者如果接收者無法在指定的時間內(nèi)接收消息,則發(fā)送者放棄該消息放棄該消息nQ:這兩種消息可以看做是同步:這兩種消息可以看做是同步or異步消息?異步消息?UML- 25 -UML- 25 -n 格式格式前綴前綴警戒條件警戒條件順序表達式順序表達式返回值返回值:=消息名消息名(參數(shù)列表參數(shù)列表)例:例

18、:2: display () 簡單消息簡單消息1.3.1: p:=find() 帶返回值的嵌套消息帶返回值的嵌套消息x0 4: invert(x, color) 條件消息條件消息3.1 *x = 1.10 : update() 循環(huán)消息循環(huán)消息a3,b4/c2: copy(a,b) 線程同步線程同步1.1a, 1.1b/1.2: continue() 帶前綴消息帶前綴消息在發(fā)送線程在發(fā)送線程c的第的第2個消個消息之前,必須先發(fā)送線息之前,必須先發(fā)送線程程a的第的第3個消息和線程個消息和線程b的第的第4個消息個消息在發(fā)送消息在發(fā)送消息1.2之前必須已經(jīng)同之前必須已經(jīng)同時發(fā)送并發(fā)消息給線程時發(fā)送并

19、發(fā)消息給線程a和和bUML- 26 -UML- 26 -n前綴前綴(predecessor)l語法:消息序列號語法:消息序列號,消息序列號消息序列號, . /l前綴是一個用來同步線程或路徑前綴是一個用來同步線程或路徑(path)的表達式的表達式l意思是在發(fā)送當前消息之前指定序列號的消息被意思是在發(fā)送當前消息之前指定序列號的消息被處理處理(必須連續(xù)執(zhí)行必須連續(xù)執(zhí)行)l消息序列號之間用逗號隔開,用斜杠結(jié)束消息序列號之間用逗號隔開,用斜杠結(jié)束例如例如 1.1a, 1.1b/1.2: continue() ,在發(fā)送消息,在發(fā)送消息1.2之之前必須已經(jīng)同時發(fā)送并發(fā)消息給線程前必須已經(jīng)同時發(fā)送并發(fā)消息給線

20、程a和和bUML- 27 -UML- 27 -n警戒條件警戒條件(guard-condition)l語法語法: 條件短語條件短語 l條件短語通常用偽代碼或真正的程序語言來表示,條件短語通常用偽代碼或真正的程序語言來表示,UML并不規(guī)定其語法并不規(guī)定其語法例如,例如,x0 4: invert(x, color) UML- 28 -UML- 28 -n序列表達式序列表達式 (sequence-expression)l語法語法 integer | name recurrence :linteger為指定消息順序的序列號,消息為指定消息順序的序列號,消息1是消息序列的開始是消息序列的開始消息,消息,1

21、.1是消息是消息1的處理過程中的第一條嵌套的消息,消的處理過程中的第一條嵌套的消息,消息息1.2是消息是消息1的處理過程中的第二條嵌套的消息,一個消的處理過程中的第二條嵌套的消息,一個消息序列的例子如息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。這樣的序列等。這樣的序列號不僅能夠表示消息的順序而且還能表示消息的嵌套關(guān)系號不僅能夠表示消息的順序而且還能表示消息的嵌套關(guān)系(當消息是異步消息時消息為嵌套的操作調(diào)用及返回當消息是異步消息時消息為嵌套的操作調(diào)用及返回)lname表示并發(fā)控制線程,例如表示并發(fā)控制線程,例如1.2a和和1.2b為同時發(fā)送的并為同時發(fā)送的并

22、發(fā)消息發(fā)消息UML- 29 -UML- 29 -lrecurrence表示一個條件或迭代的執(zhí)行,有兩種選擇表示一個條件或迭代的執(zhí)行,有兩種選擇* 循環(huán)子句循環(huán)子句 循環(huán)子句循環(huán)子句(iteration-clause)用來指定一個循環(huán)用來指定一個循環(huán)(重復執(zhí)行重復執(zhí)行)例如:一個包括循環(huán)的消息例如:一個包括循環(huán)的消息 1.1 *x = 1.10 : doSomething() 條件子句條件子句 條件子句一般用來表示分支而不是用作警戒條件條件子句一般用來表示分支而不是用作警戒條件x Create collaboration Diagram;或者,直接按下;或者,直接按下F5鍵;鍵; 從協(xié)作圖轉(zhuǎn)換成

23、順序圖從協(xié)作圖轉(zhuǎn)換成順序圖 1、從、從collaboration框圖創(chuàng)建框圖創(chuàng)建sequence框圖:框圖: 2、打開、打開collaboration框圖;框圖; 3、選擇、選擇Browse Create Sequence Diagram;或者,直接按下;或者,直接按下F5鍵;鍵;UML- 57 -UML- 57 -1、確定系統(tǒng)中的類儲戶讀卡機帳戶ATM屏幕存錢機UML- 58 -UML- 58 -2、確定類之間關(guān)系儲戶ATM屏幕帳戶存錢機讀卡機UML- 59 -UML- 59 -3、對象實例之間協(xié)作關(guān)系 : 儲戶 : ATM屏幕 : 讀卡機 : 存錢機 : 帳戶2:讀卡13:驗錢數(shù) 14:帳

24、戶加錢1:插入卡5:提示輸入PIN 8:提示選擇事務 10:提示金額6:輸入PIN9:選擇存錢事務 11:輸入金額7:驗證PIN4:打開帳戶16:退卡3:屏幕初始化15:打印收條12:接收錢UML- 60 -UML- 60 -UML- 61 -UML- 61 -(1) 如何在順序圖中表示消息的循環(huán)發(fā)送如何在順序圖中表示消息的循環(huán)發(fā)送?在消息名前加循環(huán)條件,例如:在消息名前加循環(huán)條件,例如: 1.1 *for all order lines: message1() 2.1 *i:= 1.n: message2()UML- 62 -UML- 62 -(2) 如何在順序圖中表示消息的條件發(fā)送如何在順序圖中表示消息的條件發(fā)送? 在消息上加警戒條件在消息上加警戒條件

溫馨提示

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

評論

0/150

提交評論