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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論