課件—UML系統(tǒng)建模與分析設(shè)計(5)_第1頁
課件—UML系統(tǒng)建模與分析設(shè)計(5)_第2頁
課件—UML系統(tǒng)建模與分析設(shè)計(5)_第3頁
課件—UML系統(tǒng)建模與分析設(shè)計(5)_第4頁
課件—UML系統(tǒng)建模與分析設(shè)計(5)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五章第五章 系統(tǒng)設(shè)計與對象動態(tài)交互模型系統(tǒng)設(shè)計與對象動態(tài)交互模型動態(tài)行動態(tài)行為包括系統(tǒng)中對象生存期內(nèi)可能的狀態(tài)以及事件發(fā)生時狀態(tài)為包括系統(tǒng)中對象生存期內(nèi)可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移,對象之間動態(tài)合作關(guān)系,顯示對象之間的交互過程的轉(zhuǎn)移,對象之間動態(tài)合作關(guān)系,顯示對象之間的交互過程以及交互順序,同時描述了為滿足用例要求所進(jìn)行的活動以以及交互順序,同時描述了為滿足用例要求所進(jìn)行的活動以及活動間的約束關(guān)系。及活動間的約束關(guān)系。對象通過相互間的通信對象通過相互間的通信(消息傳遞消息傳遞)進(jìn)行合作進(jìn)行合作,并在其并在其生命周期中根據(jù)通信的結(jié)果不斷改變自身的狀態(tài)。生命周期中根據(jù)通信的結(jié)果不斷改變自身

2、的狀態(tài)。對象類動態(tài)模型對象類動態(tài)模型v對象類動態(tài)模型實際上是解決系統(tǒng)中的對象“何時做”的問題,是系統(tǒng)分析、設(shè)計階段的重要內(nèi)容和產(chǎn)物。v該模型描述系統(tǒng)的動態(tài)行為,包括:系統(tǒng)如何響應(yīng)外部事件或激勵,系統(tǒng)中各對象的執(zhí)行順序和狀態(tài)的變化,側(cè)重描述系統(tǒng)控制邏輯。v該模型包括:對象交互行為模型、對象狀態(tài)模型。:狀態(tài)圖用來描述對象,子系統(tǒng),狀態(tài)圖用來描述對象,子系統(tǒng),系統(tǒng)的生命周期。系統(tǒng)的生命周期。:著重描述操作實現(xiàn)中完成的著重描述操作實現(xiàn)中完成的工作以及用例實例或?qū)ο笾械幕顒?,活動圖是狀態(tài)圖的一個工作以及用例實例或?qū)ο笾械幕顒?,活動圖是狀態(tài)圖的一個變種。變種。:是一種交互圖,主要描述:是一種交互圖,主要描

3、述對象之間的動態(tài)合作關(guān)系以及合作過程中的行為次序,常用對象之間的動態(tài)合作關(guān)系以及合作過程中的行為次序,常用來描述一個用例的行為。來描述一個用例的行為。:用于描述相互合作的用于描述相互合作的對象間的交互關(guān)系,它描述的交互關(guān)系是對象間的消息連接對象間的交互關(guān)系,它描述的交互關(guān)系是對象間的消息連接關(guān)系。關(guān)系。 動態(tài)模型主要描述系統(tǒng)的動態(tài)行為和控制結(jié)構(gòu)。包括動態(tài)模型主要描述系統(tǒng)的動態(tài)行為和控制結(jié)構(gòu)。包括4類圖:類圖:狀態(tài)圖和活動圖狀態(tài)圖和活動圖順序圖和合作圖順序圖和合作圖對象狀態(tài)模型對象狀態(tài)模型 該模型主要用于描述對該模型主要用于描述對象的個體行為,其功能包象的個體行為,其功能包括:為某個用例創(chuàng)建事件

4、括:為某個用例創(chuàng)建事件發(fā)生的軌跡,說明對象狀發(fā)生的軌跡,說明對象狀態(tài)遷移變化的順序,描述態(tài)遷移變化的順序,描述事件的活動是并發(fā)的還是事件的活動是并發(fā)的還是順序的。順序的。 其中,狀態(tài)是一個對象其中,狀態(tài)是一個對象在某一時刻屬性特征的概在某一時刻屬性特征的概括。括。對象交互行為模型對象交互行為模型 該模型主要描述完成該模型主要描述完成系統(tǒng)某個功能時,幾個對系統(tǒng)某個功能時,幾個對象之間消息傳遞的時間序象之間消息傳遞的時間序列,通常起始于一個系統(tǒng)列,通常起始于一個系統(tǒng)外部輸入事件,結(jié)束于某外部輸入事件,結(jié)束于某個條件的滿足或某個系統(tǒng)個條件的滿足或某個系統(tǒng)外部的輸出事件。外部的輸出事件。知識圖譜知識圖

5、譜v本章目的:本章目的:n了解了解UML軟件開發(fā)的系統(tǒng)設(shè)計方法與技術(shù)軟件開發(fā)的系統(tǒng)設(shè)計方法與技術(shù)n掌握系統(tǒng)設(shè)計規(guī)格說明報告文檔書寫格式掌握系統(tǒng)設(shè)計規(guī)格說明報告文檔書寫格式n掌握掌握UML中順序圖的描述方法中順序圖的描述方法n掌握同步消息和異步消息的定義和描述方法掌握同步消息和異步消息的定義和描述方法n掌握掌握UML中合作圖的描述方法中合作圖的描述方法n掌握利用順序圖與合作圖建立動態(tài)交互模型的方法掌握利用順序圖與合作圖建立動態(tài)交互模型的方法步驟步驟5.1 5.1 系統(tǒng)設(shè)計系統(tǒng)設(shè)計5.1.1 5.1.1 反復(fù)迭代的系統(tǒng)設(shè)計方式反復(fù)迭代的系統(tǒng)設(shè)計方式 面向?qū)ο蟮南到y(tǒng)設(shè)計是在系統(tǒng)分析結(jié)果的基礎(chǔ)上進(jìn)行的

6、,進(jìn)行詳細(xì)分析之后就可以轉(zhuǎn)入系統(tǒng)設(shè)計階段,在系統(tǒng)建立對象靜態(tài)模型的基礎(chǔ)上,建立動態(tài)模型。 與傳統(tǒng)的軟件開發(fā)方法不同,在UML的面向?qū)ο笙到y(tǒng)中,系統(tǒng)設(shè)計和系統(tǒng)分析沒有明顯的分界線,兩者都采用相同的符號表示。在系統(tǒng)分析階段采用反復(fù)迭代的方式逐步細(xì)化和完善軟件系統(tǒng)。系統(tǒng)設(shè)計一般包括:系統(tǒng)設(shè)計一般包括: 系統(tǒng)對象設(shè)計 系統(tǒng)體系結(jié)構(gòu)設(shè)計 系統(tǒng)設(shè)計的優(yōu)化和審查5.1.2 5.1.2 系統(tǒng)對象設(shè)計系統(tǒng)對象設(shè)計(1)對象接口設(shè)計-加入接口對象(2)設(shè)計算法和數(shù)據(jù)結(jié)構(gòu)-為對象的屬性和操作設(shè)計數(shù)據(jù)結(jié)構(gòu)和實現(xiàn)算法(3)確認(rèn)子系統(tǒng)(4)子系統(tǒng)間的通信規(guī)約5.1.3 5.1.3 系統(tǒng)體系結(jié)構(gòu)設(shè)計系統(tǒng)體系結(jié)構(gòu)設(shè)計 1任務(wù)

7、管理設(shè)計(1)主從結(jié)構(gòu)設(shè)計。(2)分布式結(jié)構(gòu)設(shè)計。2數(shù)據(jù)管理設(shè)計(1)定義數(shù)據(jù)類型。(2)設(shè)計數(shù)據(jù)管理。數(shù)據(jù)管理設(shè)計提供了持久對象的基本結(jié)構(gòu)。 3用戶界面設(shè)計5.1.4 系統(tǒng)設(shè)計的優(yōu)化和審查系統(tǒng)設(shè)計的優(yōu)化系統(tǒng)設(shè)計的優(yōu)化: 把一個復(fù)雜系統(tǒng)劃分為幾個子系統(tǒng),每個子系把一個復(fù)雜系統(tǒng)劃分為幾個子系統(tǒng),每個子系統(tǒng)還可以劃分為更小的子系統(tǒng),而最小的子系統(tǒng)就統(tǒng)還可以劃分為更小的子系統(tǒng),而最小的子系統(tǒng)就是構(gòu)件(模塊)。是構(gòu)件(模塊)。 構(gòu)件化是系統(tǒng)優(yōu)化的前提,構(gòu)件具有可復(fù)用性。構(gòu)件化是系統(tǒng)優(yōu)化的前提,構(gòu)件具有可復(fù)用性??梢詼p少重復(fù)設(shè)計,提高開發(fā)效率??梢詼p少重復(fù)設(shè)計,提高開發(fā)效率。系統(tǒng)設(shè)計的審查:系統(tǒng)設(shè)計的審

8、查: 就是根據(jù)用例的描述,對所設(shè)計的系統(tǒng)和系統(tǒng)就是根據(jù)用例的描述,對所設(shè)計的系統(tǒng)和系統(tǒng)規(guī)格說明報告逐一進(jìn)行嚴(yán)格檢查。規(guī)格說明報告逐一進(jìn)行嚴(yán)格檢查。UML系統(tǒng)建模與分析設(shè)計5.1.5 5.1.5 系統(tǒng)設(shè)計規(guī)格說明報告系統(tǒng)設(shè)計規(guī)格說明報告5.2 5.2 交互模型建模交互模型建模v使用使用UML對軟件系統(tǒng)建模主要是從結(jié)構(gòu)和行為兩對軟件系統(tǒng)建模主要是從結(jié)構(gòu)和行為兩個方面來描述系統(tǒng)。個方面來描述系統(tǒng)。n系統(tǒng)的結(jié)構(gòu)主要使用類圖來描述,而系統(tǒng)的行為則是通過對象的動作來描述。n系統(tǒng)中的對象是相互聯(lián)系的,并通過傳遞消息進(jìn)行交互。n交互圖就是用來描述系統(tǒng)中的對象是如何進(jìn)行相互作用的。n一次交互就是指在特定語境中,

9、為了實現(xiàn)某一個目標(biāo),而在一組對象之間進(jìn)行交換的一組消息所表示的行為 。v交互圖在交互圖在UML中有兩種圖:順序圖和合作圖。中有兩種圖:順序圖和合作圖。v順序圖和合作圖都是用來描述一組對象和它們之順序圖和合作圖都是用來描述一組對象和它們之間如何進(jìn)行消息傳遞的。間如何進(jìn)行消息傳遞的。n順序圖強(qiáng)調(diào)消息的時間順序,描述特定場景中,某個時刻,為完成某一功能,對象間按照時間順序的消息交互。n合作圖強(qiáng)調(diào)對象之間的交互關(guān)系5.2 5.2 順序圖建模順序圖建模 順序圖用來描述對象間的交互行為。它注重消息的時間順序,即對象間消息的發(fā)送和接收的順序。 順序圖揭示了一個特定場景的交互,即系統(tǒng)執(zhí)行期間發(fā)生在某個時間點的

10、對象之間的特定交互,它適合于描述實時系統(tǒng)中的時間特性和時間約束。 順序圖的主要用途之一,是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個或者更多的順序圖。 順序圖主要用于按照交互發(fā)生的一系列順序,順序圖主要用于按照交互發(fā)生的一系列順序,顯示對象之間的這些交互。開發(fā)者一般認(rèn)為順序圖顯示對象之間的這些交互。開發(fā)者一般認(rèn)為順序圖只對他們有意義。然而,一個組織的業(yè)務(wù)人員會發(fā)只對他們有意義。然而,一個組織的業(yè)務(wù)人員會發(fā)現(xiàn),順序圖顯示不同的業(yè)務(wù)對象如何交互,對于交現(xiàn),順序圖顯示不同的業(yè)務(wù)對象如何交互,對于交流當(dāng)前業(yè)務(wù)如何進(jìn)行很有用。除記錄組織的當(dāng)前事流當(dāng)前業(yè)務(wù)如何進(jìn)行很有用。

11、除記錄組織的當(dāng)前事件外,一個業(yè)務(wù)級的順序圖能被當(dāng)作一個需求文件件外,一個業(yè)務(wù)級的順序圖能被當(dāng)作一個需求文件使用,為實現(xiàn)一個未來系統(tǒng)傳遞需求。在項目的需使用,為實現(xiàn)一個未來系統(tǒng)傳遞需求。在項目的需求階段,分析師能通過提供一個更加正式層次的表求階段,分析師能通過提供一個更加正式層次的表達(dá),把用例帶入下一層次。那種情況下,用例常常達(dá),把用例帶入下一層次。那種情況下,用例常常被細(xì)化為一個或者更多的順序圖。被細(xì)化為一個或者更多的順序圖。 順序圖的主要目的是定義事件序列,產(chǎn)生一些希順序圖的主要目的是定義事件序列,產(chǎn)生一些希望的輸出。重點不是消息本身,而是消息產(chǎn)生的順望的輸出。重點不是消息本身,而是消息產(chǎn)生

12、的順序;不過,大多數(shù)順序圖會表示一個系統(tǒng)的對象之序;不過,大多數(shù)順序圖會表示一個系統(tǒng)的對象之間傳遞的什么消息,以及它們發(fā)生的順序。間傳遞的什么消息,以及它們發(fā)生的順序。 圖按照水平和垂直的維度傳遞信息:垂直維度從圖按照水平和垂直的維度傳遞信息:垂直維度從上而下表示消息上而下表示消息/調(diào)用發(fā)生的時間序列,而且水平調(diào)用發(fā)生的時間序列,而且水平維度從左到右表示消息發(fā)送到的對象實例。維度從左到右表示消息發(fā)送到的對象實例。5.2.1 一個簡單的順序圖例子一個簡單的順序圖例子時間時間對象對象順序圖有兩個坐標(biāo):順序圖有兩個坐標(biāo):垂直坐標(biāo)垂直坐標(biāo)-時間時間(從上到下),(從上到下),水平坐標(biāo)水平坐標(biāo)對象對象。

13、生存線生存線激活期激活期消息消息(1)對象:順序圖中所包含的每個對象用一個對象框(短式)表示,對象名需帶下劃線。(2)生存線:對象框下畫的一條垂直虛線,稱為該對象的生存線,表示對象的生存時間。(3)激活期:對象生存線上的一個細(xì)長方形框,表示該對象的激活時間段,即活動期間。一個激活的對象要么正在執(zhí)行自己的代碼,要么等待另一個對象的返回。(4)消息:對象之間消息的發(fā)送和接收用兩個對象生存線(激活期)之間的消息箭頭線。對象圖對象圖(4)消息消息的標(biāo)識格式:序號警戒條件*重復(fù)次數(shù)回送值表:= 操作名(參數(shù)表)其中,1序號:表示消息在對象間交互的時間順序號。2警戒條件:選擇項,為一布爾條件表達(dá)式。3*重

14、復(fù)次數(shù):選擇項,表示消息重復(fù)發(fā)送的次數(shù)。4回送值表:以“,”區(qū)分的名字表列,分別表示完成指定操作后返回的系列值??扇笔 ?操作名:必須是接收該消息的對象類角色中的操作名。6“()”內(nèi)的參數(shù)表是以“,”號區(qū)分的實參表,傳送給接收消息的對象中的某個操作。消息的種類消息的種類v對象之間的通信可以同步進(jìn)行,也可以異步進(jìn)行。對象之間的通信可以同步進(jìn)行,也可以異步進(jìn)行。在在UML中消息分為四種:中消息分為四種:(1)簡單消息:表示控制流,描述控制如何從一個對象傳遞到另一個對象,但不描述通信的細(xì)節(jié)。(2)同步消息:是一種嵌套的控制流,用操作調(diào)用實現(xiàn)。操作的執(zhí)行者要到消息相應(yīng)操作執(zhí)行完并回送一個簡單消息后,再

15、繼續(xù)執(zhí)行。 (3)異步消息:是一種異步的控制流,消息的發(fā)送者在消息發(fā)送后就繼續(xù)執(zhí)行,不等待消息的處理。(4)返回消息:表示控制流從過程調(diào)用的返回順序圖中的消息表示v在順序圖中,對象之間消息的發(fā)送和接收用兩個對象的生存線之間的消息箭頭線表示,用來指出該對象執(zhí)行期間的時序。順序圖中的消息表示u簡單消息:類型未知,或與類型無關(guān),也可是同簡單消息:類型未知,或與類型無關(guān),也可是同步消息的返回。步消息的返回。u同步消息:必有一個與同步消息配對的返回消息同步消息:必有一個與同步消息配對的返回消息, 但是可以不畫出但是可以不畫出.u異步消息:異步消息:UML畫順序圖-生命線生命線當(dāng)畫一個順序圖的時候,放置生

16、命線符號元件,橫跨圖的頂部。生命線當(dāng)畫一個順序圖的時候,放置生命線符號元件,橫跨圖的頂部。生命線表示序列中建模的角色或?qū)ο髮嵗?。表示序列中建模的角色或?qū)ο髮嵗?生命線畫作一個方格,一條虛線從生命線畫作一個方格,一條虛線從上而下,通過底部邊界的中心(圖上而下,通過底部邊界的中心(圖 )。生命線名字放置在方格里。)。生命線名字放置在方格里。用于一個實體名為用于一個實體名為freshman的生命線的的生命線的Student類的一個例子類的一個例子UML 的生命線命名標(biāo)準(zhǔn)按照如下格式:順序圖-消息消息 消息:為了可讀性,順序圖的第一個消息總是從頂端開始,并且一般消息:為了可讀性,順序圖的第一個消息總

17、是從頂端開始,并且一般位于圖的左邊。然后繼發(fā)的消息加入圖中,稍微比前面的消息低些。位于圖的左邊。然后繼發(fā)的消息加入圖中,稍微比前面的消息低些。 為了顯示一個對象傳遞一個消息給另外一個對象,你畫一條線指向接為了顯示一個對象傳遞一個消息給另外一個對象,你畫一條線指向接收對象,包括一個實心箭頭(如果是一個同步調(diào)用操作)或一個棍形箭頭收對象,包括一個實心箭頭(如果是一個同步調(diào)用操作)或一個棍形箭頭(如果是一個異步訊號)。消息(如果是一個異步訊號)。消息/ /方法名字放置在帶箭頭的線上面。正在方法名字放置在帶箭頭的線上面。正在被傳遞給接收對象的消息,表示接收對象的類實現(xiàn)的一個操作被傳遞給接收對象的消息,

18、表示接收對象的類實現(xiàn)的一個操作/ /方法。方法。返回消息是可選擇的;一個返回消息畫作一個帶開放箭頭的虛線,向后返回消息是可選擇的;一個返回消息畫作一個帶開放箭頭的虛線,向后指向來源的生命線,在這條虛線上面,你放置操作的返回值。指向來源的生命線,在這條虛線上面,你放置操作的返回值。 當(dāng)順序圖建模時,有時候,一個對象將會需要傳遞一個消息給它本身。一當(dāng)順序圖建模時,有時候,一個對象將會需要傳遞一個消息給它本身。一個對象何時稱它本身?一個純化論者會爭辯一個對象應(yīng)該永不傳遞一個消個對象何時稱它本身?一個純化論者會爭辯一個對象應(yīng)該永不傳遞一個消息給它本身。然而,為傳遞一個消息給它本身的對象建模,在一些情境

19、中息給它本身。然而,為傳遞一個消息給它本身的對象建模,在一些情境中可能是有用的。舉例來說,下圖可能是有用的。舉例來說,下圖 是上圖是上圖 的一個改良版本。的一個改良版本。 該圖顯示調(diào)用它該圖顯示調(diào)用它的的 determineAvailableReports determineAvailableReports 方法的系統(tǒng)對象。通過表示系統(tǒng)傳遞消息方法的系統(tǒng)對象。通過表示系統(tǒng)傳遞消息“determineAvailableReports”determineAvailableReports”給它本身,模型把注意力集中到過程的事實上給它本身,模型把注意力集中到過程的事實上,而不是系統(tǒng)對象。,而不是系統(tǒng)對

20、象。為了要畫一個調(diào)用本身的對象,如你平時所作的,畫一條消息,但是不是為了要畫一個調(diào)用本身的對象,如你平時所作的,畫一條消息,但是不是連接它到另外的一個對象,而是你把消息連接回對象本身。連接它到另外的一個對象,而是你把消息連接回對象本身。5.3 5.3 對象之間的同步與異步操作對象之間的同步與異步操作1對象之間的同步操作 同步消息的發(fā)送者把進(jìn)程控制傳遞給消息同步消息的發(fā)送者把進(jìn)程控制傳遞給消息的接收者,然后暫停活動,等待消息的接收者的接收者,然后暫?;顒樱却⒌慕邮照叻艞壔蚍祷乜刂?;放棄或返回控制; 同步消息的接收者執(zhí)行所請求的操作,如同步消息的接收者執(zhí)行所請求的操作,如果需要的話,可以把控

21、制傳遞給另一個對象角果需要的話,可以把控制傳遞給另一個對象角色,請求做某個操作,并且當(dāng)該操作完成后把色,請求做某個操作,并且當(dāng)該操作完成后把控制返回給原來的同步消息的發(fā)送者;控制返回給原來的同步消息的發(fā)送者; 同步消息的接收者也可以直接返回或發(fā)送同步消息的接收者也可以直接返回或發(fā)送信息給原來的消息發(fā)送者。信息給原來的消息發(fā)送者。2對象之間的異步操作異步消息的發(fā)送者通過發(fā)消息把信號傳遞給消息的接收異步消息的發(fā)送者通過發(fā)消息把信號傳遞給消息的接收者,然后繼續(xù)自己的活動,不等待消息接收者返回信息者,然后繼續(xù)自己的活動,不等待消息接收者返回信息或控制;或控制;異步消息的接收者執(zhí)行所請求的操作,操作完成

22、后可以異步消息的接收者執(zhí)行所請求的操作,操作完成后可以向異步消息的發(fā)送者返回信息;向異步消息的發(fā)送者返回信息;異步消息的發(fā)送者和接收者采用并發(fā)工作方式。異步消息的發(fā)送者和接收者采用并發(fā)工作方式。一條異步消息每次只發(fā)一個信號,即只做一件事,可以一條異步消息每次只發(fā)一個信號,即只做一件事,可以做的事情有:做的事情有:創(chuàng)建一個新對象;創(chuàng)建一個新對象;創(chuàng)建一個新線程,此時異步消息連接到一個激活期的頂創(chuàng)建一個新線程,此時異步消息連接到一個激活期的頂部;部;與一個正在運行的線程通信。與一個正在運行的線程通信。在順序圖中,你也能為異步消息建模。一個異步消息和在順序圖中,你也能為異步消息建模。一個異步消息和一

23、個同步的畫法類似,但是消息畫的線帶一個棍形矛頭一個同步的畫法類似,但是消息畫的線帶一個棍形矛頭,如圖所示。,如圖所示。5.4 5.4 順序圖中的分支控制順序圖中的分支控制圖圖5-55-5帶條件和分支并發(fā)執(zhí)行的順序圖帶條件和分支并發(fā)執(zhí)行的順序圖v帶分支條件的順序圖帶分支條件的順序圖:Computer:Printer Server:Printer:QueuePrint(file)Printer freePrint(file)Printer busyStore(file)順序圖中的約束標(biāo)記順序圖中的約束標(biāo)記呼叫者呼叫者交換交換接受者接受者拿起話筒拿起話筒響撥號聲響撥號聲撥號碼撥號碼路由選擇路由選擇鳴

24、響音鳴響音停音停音響鈴聲響鈴聲接電話接電話停鈴聲停鈴聲ABCDEB-A1SC-B10S通過網(wǎng)絡(luò)選通過網(wǎng)絡(luò)選擇通話路徑擇通話路徑E-D5S雙方通話雙方通話打電話的順序圖圖圖5-65-6中中 帶有時間延遲標(biāo)記的順序圖帶有時間延遲標(biāo)記的順序圖順序圖中的循環(huán)處理操作順序圖中的循環(huán)處理操作:C1:c:D1:D:D2:DOp( )Op2( )Op3( )Op4( )有循環(huán)標(biāo)記的順序圖Send message op2 until5.5 5.5 合作圖建模合作圖建模合作圖合作圖(Collaboration Diagram),也稱也稱為協(xié)作圖,用于描述相互合作的對象間的交互關(guān)為協(xié)作圖,用于描述相互合作的對象間的

25、交互關(guān)系和鏈接系和鏈接(Link)關(guān)系。關(guān)系。 雖然順序圖和合作圖都用來描述對象間的交雖然順序圖和合作圖都用來描述對象間的交互關(guān)系互關(guān)系,但側(cè)重點不一樣。但側(cè)重點不一樣。順序圖著重體現(xiàn)交互的順序圖著重體現(xiàn)交互的時間順序時間順序,合作圖則著重體現(xiàn)交互對象間的靜態(tài)鏈合作圖則著重體現(xiàn)交互對象間的靜態(tài)鏈接關(guān)系。接關(guān)系。v合作圖(collaboration diagram), 描述系統(tǒng)各成分(即對象)如何協(xié)同工作,來實現(xiàn)系統(tǒng)的某個功能。v合作圖描述對象及其之間的鏈接(關(guān)聯(lián)的實例),以及鏈接的對象如何發(fā)送消息。v鏈接(或稱鏈):是關(guān)聯(lián)的實例,當(dāng)一個類與另一個類之間有關(guān)聯(lián)時,這兩個類的實例之間就有鏈,一個對

26、象就能向另一個對象發(fā)送消息。5.5.1 合作圖的組成成分合作圖的組成成分UML和設(shè)計模式對象對象object鏈鏈 link消息消息 message 合作圖中對象的外觀與順序圖中的一樣。如果合作圖中對象的外觀與順序圖中的一樣。如果一個對象在消息的交互中被創(chuàng)建一個對象在消息的交互中被創(chuàng)建,則可在對象名稱之則可在對象名稱之后標(biāo)以后標(biāo)以new。類似地。類似地,如果一個對象在交互期間如果一個對象在交互期間被刪除被刪除,則可在對象名稱之后標(biāo)以則可在對象名稱之后標(biāo)以destroy。對象名對象名newnew對象名對象名 destroy 包括包括組成關(guān)系的組成關(guān)系的鏈接鏈接(Composition Link)、

27、聚集關(guān)系的鏈接聚集關(guān)系的鏈接(Aggregation Link)、限定關(guān)系的鏈接限定關(guān)系的鏈接(Qualified Link)以及以及導(dǎo)航鏈接導(dǎo)航鏈接(Navigation Link)。各種鏈接關(guān)系與類圖中的定義相同。各種鏈接關(guān)系與類圖中的定義相同,在鏈接在鏈接的端點位置可以顯示對象的角色名和模板信息的端點位置可以顯示對象的角色名和模板信息。對象對象對象對象對象對象對象對象對象對象對象對象對象對象對象對象限定詞限定詞v對于鏈接還可以加上對于鏈接還可以加上“角色角色”與與“約束約束”,在鏈,在鏈角色上附加的約束有角色上附加的約束有g(shù)lobal(全局全局),local(局局部部),paramete

28、r(參數(shù)參數(shù)),self(自身自身),broadcast(廣播廣播)。v不過在不過在UML 2中已經(jīng)開始弱化它們的使用,因此中已經(jīng)開始弱化它們的使用,因此除非必要,無需過多地考慮它們除非必要,無需過多地考慮它們3 消息消息v 在對象之間的靜態(tài)鏈接關(guān)系上可標(biāo)注消息,消息類型有簡在對象之間的靜態(tài)鏈接關(guān)系上可標(biāo)注消息,消息類型有簡單消息,同步消息和異步消息三種。用標(biāo)號表示消息執(zhí)行單消息,同步消息和異步消息三種。用標(biāo)號表示消息執(zhí)行的順序。的順序。消息定義消息定義的格式如下:的格式如下:v v 消息編號消息編號:消息的編號有兩種,一種是無層次編號,它:消息的編號有兩種,一種是無層次編號,它簡單直觀;另一

29、種是嵌套的編號,它更易于表示消息的包簡單直觀;另一種是嵌套的編號,它更易于表示消息的包含關(guān)系。含關(guān)系。n順序執(zhí)行:按整數(shù)大小執(zhí)行。,n嵌套執(zhí)行:標(biāo)號中帶小數(shù)點。1.1,1.2,1.3,n并行執(zhí)行:標(biāo)號中帶小寫字母。1.1.1a,1.1.1b,v 迭代標(biāo)記迭代標(biāo)記:用:用*號表示,表示循環(huán),通常還有迭代表達(dá)式,號表示,表示循環(huán),通常還有迭代表達(dá)式,用來說明循環(huán)規(guī)則用來說明循環(huán)規(guī)則嵌套消息與順序消息的標(biāo)識嵌套消息與順序消息的標(biāo)識1嵌套消息序號的標(biāo)識 圖圖5-12 5-12 采用層次嵌套消息描述的銷售合同管理系統(tǒng)采用層次嵌套消息描述的銷售合同管理系統(tǒng)中的處理付款單合作圖中的處理付款單合作圖2順序消息

30、序號的標(biāo)識UMLUML系統(tǒng)建模與分析設(shè)計系統(tǒng)建模與分析設(shè)計圖圖5-13 5-13 采用順序消息序號描述的銷售合同采用順序消息序號描述的銷售合同管理系統(tǒng)中的處理付款單合作圖管理系統(tǒng)中的處理付款單合作圖異步操作中的回調(diào)消息異步操作中的回調(diào)消息1自調(diào)用-遞歸調(diào)用2異步操作中的回調(diào)-即消息的接收對象也可以向消息的發(fā)送對象發(fā)送消息。圖5-14 具有回調(diào)消息的合作圖圖5-15 具有回調(diào)消息的順序圖循環(huán)發(fā)送同一個重復(fù)消息循環(huán)發(fā)送同一個重復(fù)消息存款的例子存款的例子例子例子1:v用戶打印文件,計算機(jī)向打印服務(wù)器發(fā)送打印命令,打印機(jī)如果空閑,則直接打印,否則把打印文件存儲在打印隊列中。例子例子2 管理員通過課程管

31、理器打印所有課程信息5.5.2 5.5.2 動態(tài)交互模型動態(tài)交互模型控制流建??刂屏鹘#?)進(jìn)程:進(jìn)程是一個動作流;能夠與其他進(jìn)程并發(fā)執(zhí)行。(2)線程:線程是進(jìn)程內(nèi)部的一個動作流;能夠與其他線程并發(fā)執(zhí)行。(3)主動對象:一個擁有進(jìn)程或線程的對象。(4)被動對象:必須由其它對象發(fā)來的消息進(jìn)行觸發(fā),才執(zhí)行動作的對象。(5)主動對象類:主動對象類是主動對象的抽象。v 首先根據(jù)自己的喜好和實際的表現(xiàn)需要來選擇順序圖或合首先根據(jù)自己的喜好和實際的表現(xiàn)需要來選擇順序圖或合作圖。不過由于它們在語義上是等價的,因此可以繪制出作圖。不過由于它們在語義上是等價的,因此可以繪制出一種,再通過建模工具來自動轉(zhuǎn)換成另

32、一種圖一種,再通過建模工具來自動轉(zhuǎn)換成另一種圖 v 分析模型中的交互圖徹重于分析類的職責(zé)分配和交互流程,分析模型中的交互圖徹重于分析類的職責(zé)分配和交互流程,而設(shè)計模型中的交互圖則徹重于設(shè)計類的引入和實際方法而設(shè)計模型中的交互圖則徹重于設(shè)計類的引入和實際方法的調(diào)用與流程控制的調(diào)用與流程控制 v 先確定參與交互的對象、對象之間的關(guān)系(合作圖),然先確定參與交互的對象、對象之間的關(guān)系(合作圖),然后確定對象間的消息交互流程(用同步調(diào)用、異步消息、后確定對象間的消息交互流程(用同步調(diào)用、異步消息、返回消息表示),并利用交互片斷(順序圖)或迭代標(biāo)記返回消息表示),并利用交互片斷(順序圖)或迭代標(biāo)記及監(jiān)護(hù)條件來表示循環(huán)和分支結(jié)構(gòu)及監(jiān)護(hù)條件來表示循環(huán)和分支結(jié)構(gòu)5.6 5.6 動態(tài)交互模型建模案例動態(tài)交互模型建模案例“銷售合同管理銷售合同管理”子系統(tǒng)子系統(tǒng)5.6.1 子系統(tǒng)的用例模型和對象靜態(tài)模型UML系統(tǒng)建模與分析設(shè)計5.6.2 5.6.2 順序圖建模步驟順序圖建模步驟1.確定交互和涉及的對象(1 1)啟動系統(tǒng))啟動系統(tǒng)(2 2)循環(huán)處理付款

溫馨提示

  • 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

提交評論