知識(shí)點(diǎn)學(xué)習(xí)(順序圖和協(xié)作圖)_第1頁
知識(shí)點(diǎn)學(xué)習(xí)(順序圖和協(xié)作圖)_第2頁
知識(shí)點(diǎn)學(xué)習(xí)(順序圖和協(xié)作圖)_第3頁
知識(shí)點(diǎn)學(xué)習(xí)(順序圖和協(xié)作圖)_第4頁
知識(shí)點(diǎn)學(xué)習(xí)(順序圖和協(xié)作圖)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1順序圖2通信圖3繪制交互圖4順序圖與通信圖的關(guān)系知識(shí)點(diǎn)學(xué)習(xí)(順序圖和協(xié)作圖)知識(shí)點(diǎn):交互圖描述系統(tǒng)中,對(duì)象之間通過消息進(jìn)行通訊的圖就是交互圖。交互圖包含4種類型,它們是順序圖、通訊圖、定時(shí)圖、交互概述圖。1順序圖1.1順序圖的概念1.順序圖順序圖也稱為時(shí)序圖,它描述了系統(tǒng)中,對(duì)象間通過消息進(jìn)行的交互,它強(qiáng)調(diào)了消息在時(shí)間軸上的先后順序。圖1是自動(dòng)車鎖系統(tǒng)中,實(shí)現(xiàn)“鎖車”用例的順序圖。2.順序圖的作用順序圖常用來描述用例的實(shí)現(xiàn),它表明了由哪些對(duì)象,通過消息相互協(xié)作來實(shí)現(xiàn)用例的功能,在順序圖中,標(biāo)識(shí)了消息發(fā)生交互的先后順序。圖1順序圖。1順序圖3.順序圖的組成元素順序圖中的元素包括對(duì)象、生命線、控制焦點(diǎn)、消息。消息表示了對(duì)象間的通訊,生命線表示了對(duì)象的生存期,控制焦點(diǎn)表示對(duì)象正在執(zhí)行一些活動(dòng)。1.2順序圖的表示UML中,表示一個(gè)順序圖,主要是標(biāo)識(shí)系統(tǒng)中的對(duì)象、對(duì)象的生命線、對(duì)象的控制焦點(diǎn)、對(duì)象間交互的消息。如圖2所示。1.順序圖的布局結(jié)構(gòu)順序圖采用二維的布局結(jié)構(gòu),在頂端,從左到右,把對(duì)象排列在順序圖的頂部,一般說來,首先排列參與者對(duì)象,其次是邊界對(duì)象,然后是實(shí)體對(duì)象,對(duì)象用矩形框表示;虛線是生命線;生命線上的矩形是對(duì)象的控制焦點(diǎn);從對(duì)象往下延伸的生命線表示了時(shí)間軸的正方向。在圖2中,參與者對(duì)象是車主,邊界對(duì)象是車鑰匙,實(shí)體對(duì)象是汽車,這三個(gè)對(duì)象在平面圖的頂部,從左向右依此排列。1順序圖生命線消息控制焦點(diǎn)對(duì)象圖2順序圖1順序圖2.對(duì)象:順序圖中對(duì)象的符號(hào)和對(duì)象圖中對(duì)象所用的符號(hào)一樣。將對(duì)象置于順序圖的頂部意味著在交互開始的時(shí)候?qū)ο缶鸵呀?jīng)存在了,如果對(duì)象的位置不在頂部,那么表示對(duì)象是在交互的過程中被創(chuàng)建的。3.生命線生命線是一條垂直的虛線,表示順序圖中的對(duì)象在一段時(shí)間內(nèi)的存在。每個(gè)對(duì)象的底部中心的位置都帶有生命線。生命線是一個(gè)時(shí)間線,所用的時(shí)間取決于交互持續(xù)的時(shí)間。4.控制焦點(diǎn)在對(duì)象的生命線上,包含一個(gè)矩形,表示對(duì)象處于激活狀態(tài),處于激活狀態(tài)的對(duì)象正在執(zhí)行某個(gè)任務(wù)。對(duì)象在完成自己的工作后,被去激活,對(duì)象就處于空閑狀態(tài)。1順序圖5.消息消息用來描述對(duì)象之間所進(jìn)行的通信,它包括消息名、消息參數(shù)。消息分為五種:調(diào)用、返回、發(fā)送、創(chuàng)建和銷毀。在UML中,消息使用箭頭來表示,箭頭的類型表示了消息的類型。幾種消息類型的表示法,如圖3所示。消息編號(hào):按消息產(chǎn)生的先后順序,給消息編號(hào),有兩種編號(hào)方案,一種是順序編號(hào),另一種是嵌套編號(hào).圖3消息表示法1順序圖(1).順序編號(hào):整個(gè)消息的傳遞過程就形成了一個(gè)完整的序列,因此通過在每個(gè)消息的前面加上一個(gè)用冒號(hào)隔開的順序號(hào)(按照消息的先后順序,從1開始對(duì)消息編號(hào))來表示其順序。在第3章,我們?yōu)橐粋€(gè)電子商務(wù)網(wǎng)站構(gòu)建了對(duì)象模型(類圖)?,F(xiàn)在,我們建立一個(gè)順序圖,以實(shí)現(xiàn)用例”將訂單生成送貨單”的功能,如圖7-4所示,Order類有一個(gè)dispath()成員方法,其作用是根據(jù)供應(yīng)商戶的不同將一個(gè)訂單分拆到多個(gè)送貨單中。圖4將訂單生成送貨單1順序圖在圖4中,最頂上的一排矩形框(它的表示法和對(duì)象圖中的對(duì)象是一致的)表示的就是順序圖中的對(duì)象。前兩個(gè)對(duì)象都是有名稱的對(duì)象,它們的名稱分別是dispatchFrom和aOrder。而后面三個(gè)則是匿名對(duì)象,分別表示OrderItem,Product和DeliverOrder的實(shí)例。(2).嵌套編號(hào):UML標(biāo)準(zhǔn)中定義了“嵌套編號(hào)方案”,對(duì)于圖4而言,如果采用嵌套編號(hào)方案,則應(yīng)該改為如圖5所示。圖5的嵌套編號(hào)方案表示了方法間的包含關(guān)系。由于順序圖本身已經(jīng)充分表現(xiàn)出消息執(zhí)行的順序,因此在UML模型中并沒有要求對(duì)消息進(jìn)行編號(hào)。只是要求在通信圖中,對(duì)消息進(jìn)行了編號(hào)。但在Rose等建模工具中,為了能夠自動(dòng)實(shí)現(xiàn)順序圖與通信圖的轉(zhuǎn)換,在順序圖中也默認(rèn)采取“嵌套編號(hào)方案。1順序圖在圖5中,我們把屬于同一個(gè)對(duì)象發(fā)送和接受的消息放在同一層進(jìn)行編號(hào).如對(duì)象dispatchForm的發(fā)送和接受消息放在第一層編號(hào),它們是:1、2;把對(duì)象aOrder發(fā)送和接受的消息放在第二層編號(hào),它們是1.1、1,2、1,3、1,4;匿名對(duì)象:OrderItem的發(fā)送和接受消息放在第三層編號(hào),它們是:1.1.1、1.1.2圖5嵌套編號(hào)1順序圖1.4繪制順序圖下面以飲料自動(dòng)銷售系統(tǒng)為例,看我們是怎樣繪制順序圖的.下面對(duì)“買飲料”的3種場(chǎng)景進(jìn)行建模,對(duì)每一個(gè)場(chǎng)景,我們繪制其對(duì)應(yīng)的順序圖.(1).買飲料的正常場(chǎng)景下面是買到飲料的一般事件流:1順序圖1、顧客從機(jī)器的前端錢幣口投入錢幣,然后選擇想要的飲料;2、錢幣到達(dá)錢幣記錄儀,記錄儀更新自己的存儲(chǔ);3、記錄儀通知分配器分發(fā)飲料到機(jī)器前端;下面是買到飲料的場(chǎng)景對(duì)應(yīng)的順序圖,如圖6所示.(2).

飲料“已售完”的場(chǎng)景圖6買到飲料的場(chǎng)景圖7飲料已售完的場(chǎng)景1順序圖(3).機(jī)器沒有合適的零錢顧客買飲料時(shí),機(jī)器沒有合適的零錢“找不開”的場(chǎng)景.(4).

帶有臨時(shí)對(duì)象的順序圖圖8,該順序圖表示了發(fā)送消息2后,創(chuàng)建一個(gè)臨時(shí)對(duì)象c,其生命線的尾部的叉號(hào),表示銷毀對(duì)象c.

圖9零錢“找不開”的場(chǎng)景.圖8帶有臨時(shí)對(duì)象的順序圖2通信圖2.1通信圖的概念1.通信圖:通信圖也稱為協(xié)作圖,它描述了系統(tǒng)中,對(duì)象間通過消息進(jìn)行的交互,強(qiáng)調(diào)了對(duì)象在交互行為中承擔(dān)的角色。圖10是一個(gè)典型的通信圖。通信圖和順序圖之間的語義是等價(jià)的,只是他們的關(guān)注點(diǎn)有所不同而已,可以很容易的完成從順序圖到通信圖的轉(zhuǎn)換,在Rose中這個(gè)轉(zhuǎn)換還可以自動(dòng)完成。圖10所示的通信圖就是在Rose中通過對(duì)圖5進(jìn)行自動(dòng)轉(zhuǎn)換所產(chǎn)生的結(jié)果。從圖10中不難發(fā)現(xiàn),對(duì)象和消息都與圖5中的對(duì)象和消息一樣,在這幅圖上除了“對(duì)象”之間的鏈(連接線)之外,所有的元素在交互圖中都已經(jīng)標(biāo)識(shí)過。7.2通信圖圖10從訂單生成訂貨單的通信圖。2通信圖1.通信圖的作用通信圖常用來描述業(yè)務(wù)或軟件系統(tǒng)中,每個(gè)對(duì)象在交互發(fā)生時(shí)承擔(dān)的角色,即強(qiáng)調(diào)了交互發(fā)生時(shí),每個(gè)對(duì)象承擔(dān)的職責(zé)。使用協(xié)作圖可以顯示對(duì)象相互協(xié)作時(shí)充當(dāng)?shù)慕巧?。如果需要?qiáng)調(diào)時(shí)間和序列,最好選擇順序圖建模;如果需要強(qiáng)調(diào)上下文相關(guān),最好選擇協(xié)作圖建模。協(xié)作圖用于顯示對(duì)象之間如何進(jìn)行交互,以實(shí)現(xiàn)特定用例或用例中特定部分的行為。設(shè)計(jì)員使用協(xié)作圖和順序圖確定并闡明對(duì)象的角色,這些對(duì)象執(zhí)行用例的特定事件流。這些圖提供的信息主要用來確定類的職責(zé)和接口。2.通信圖的組成元素通信圖的組成元素包括對(duì)象、消息、鏈(連接器)。消息表示了對(duì)象間的通信,對(duì)象通過鏈連接在一起。2通信圖2.2通信圖的表示UML中,表示一個(gè)通信圖,主要是標(biāo)識(shí)系統(tǒng)中的對(duì)象、對(duì)象間交互的消息、對(duì)象間的鏈。如圖11所示,是系統(tǒng)管理員添加書籍的協(xié)作圖。第一個(gè)消息(Additem())表示,管理員要求維護(hù)窗口添加書籍;第二個(gè)消息(find(String))表示,維護(hù)窗口要求:Title對(duì)象根據(jù)書名獲得書的目錄;第三個(gè)消息(update())表示修改書目下書的數(shù)量。圖11通信圖2通信圖1.對(duì)象:通信圖與順序圖中的對(duì)象的概念是一樣,只不過在通信圖中,無法表示對(duì)象的創(chuàng)建和撤銷,所以對(duì)于對(duì)象在圖中的位置沒有限制。2.鏈:表示對(duì)象之間的語義關(guān)系,鏈?zhǔn)顷P(guān)聯(lián)的一個(gè)實(shí)例。通信圖中鏈的符號(hào)和對(duì)象圖中鏈所用的符號(hào)是一樣的,即一條連接兩個(gè)對(duì)象的實(shí)線。

3.消息通信圖中的消息類型與時(shí)序圖中的相同,只不過為了說明交互過程中消息的時(shí)間順序,需要給消息添加順序號(hào)。順序號(hào)是在消息的前面加一個(gè)整數(shù)。每個(gè)消息都必須有唯一的順序號(hào)。4.消息編號(hào):消息的編號(hào)有兩種,一種是無層次編號(hào)(按順序編號(hào)),它簡(jiǎn)單直觀;另一種是嵌套的編號(hào),它更易于表示消息的包含關(guān)系.5.迭代標(biāo)記和監(jiān)護(hù)條件2通信圖(1).迭代標(biāo)記迭代標(biāo)記用*號(hào)表示,表示循環(huán),通常還有迭代表達(dá)式,用來說明循環(huán)規(guī)則。雖然在UML2.0中順序圖已不采用迭代標(biāo)記(用交互片段代替迭代標(biāo)記的功能),但在通信圖中仍然使用迭代標(biāo)記。迭代是通過在順序編號(hào)前加上一個(gè)迭代符“*”和一個(gè)可選的迭代表達(dá)式來表示。對(duì)于迭代表達(dá)式,UML沒有強(qiáng)制規(guī)定什么語法,因此可以使用任何可讀的、有意義的表達(dá)式來表示。常用的迭代表達(dá)式如表1所示。表1常用迭代表達(dá)式迭代表達(dá)式語義[i:=1..n]迭代n次[I=1..10]I迭代10次[while(表達(dá)式)]表達(dá)式為true時(shí)才進(jìn)行迭代[until(表達(dá)式)]迭代到表達(dá)識(shí)為true時(shí),才停止迭代[foreach(對(duì)象集合)]在對(duì)象集合上迭代2通信圖(2).監(jiān)護(hù)條件監(jiān)護(hù)條件通常是用來表示分支的,也就是表示“如果條件為true,發(fā)送消息”的語義,在UML中,監(jiān)護(hù)條件是以“【條件表達(dá)式】”的格式表示的2通信圖2.3

表示循環(huán)和分支通信圖中,用迭代表示循環(huán),用監(jiān)護(hù)條件表示分支。下面分別講述迭代標(biāo)記和監(jiān)護(hù)條件。監(jiān)護(hù)條件通常是用來表示分支的,也就是表示“如果條件為true,就發(fā)送消息”的語義,在UML中,監(jiān)護(hù)條件是以“【條件表達(dá)式】”的格式表示的?,F(xiàn)在來看一下它在交互圖中的應(yīng)用。例如,在圖10中,消息“1.3:create(prddleryid)”的前面就添加了一個(gè)監(jiān)護(hù)條件【peddleryidnotexist】,它說明只有當(dāng)peddleryid不存在時(shí),才調(diào)用create方法來創(chuàng)建新的送貨單。如果已經(jīng)存在,那就不必創(chuàng)建,直接調(diào)用1.4方法,將訂單項(xiàng)中的產(chǎn)品添加到相應(yīng)的送貨單即可。2通信圖在通信圖中使用監(jiān)護(hù)條件一定要有所限制,通常應(yīng)只列出主要的監(jiān)護(hù)條件,否則會(huì)影響其閱讀。在圖12中,coutse類實(shí)例c中還用到了構(gòu)造型《local》,這是因?yàn)檫@個(gè)對(duì)象是由CourseList的find方法創(chuàng)建的,是一個(gè)局部的對(duì)象。而在這張圖中,共有五處使用了監(jiān)護(hù)條件,它們的含義如表2所示.圖12注冊(cè)課程2通信圖表2監(jiān)護(hù)條件語義監(jiān)護(hù)表達(dá)式與消息語義解釋[s&c]1.3register(s)當(dāng)s和c都不是空對(duì)象時(shí),才執(zhí)行register方法[(!s)&c]1:studentNotFound如果s是空對(duì)象,則說明沒有指定的學(xué)生,返回studentNotFound消息[s&(!c)]1:courseNotFound如果c是空對(duì)象,則表示沒有找到指定課程,返回courseNotFound消息[(!s)&(!c)]1:allNotFound如果s和c都是空對(duì)象,表示都沒有找到,返回allNotFound消息[s&c]1:ok如果s和c都不是空對(duì)象,則返回ok,表示注冊(cè)成功1、借閱者用例圖2、系統(tǒng)管理員用例圖3、圖書館工作人員用例圖類圖幾個(gè)邊界類的說明:給出“添加圖書”和“刪除圖書

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論