UML基礎(chǔ)與建模實(shí)踐:7、第七章 順序圖_第1頁
UML基礎(chǔ)與建模實(shí)踐:7、第七章 順序圖_第2頁
UML基礎(chǔ)與建模實(shí)踐:7、第七章 順序圖_第3頁
UML基礎(chǔ)與建模實(shí)踐:7、第七章 順序圖_第4頁
UML基礎(chǔ)與建模實(shí)踐:7、第七章 順序圖_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

UML基礎(chǔ)與建模實(shí)踐

第七章交互圖

主講人:

內(nèi)容摘要順序圖1協(xié)作圖2定時(shí)圖3小結(jié)與習(xí)題47.1順序圖

7.1.1什么是順序圖1.順序圖順序圖也稱為時(shí)序圖,它描述了系統(tǒng)中對象間通過消息進(jìn)行的交互,強(qiáng)調(diào)了消息在時(shí)間軸上的先后順序。2.順序圖的作用3.順序圖的組成元素

7.1順序圖

如圖7-1所示便是自動(dòng)車鎖系統(tǒng)中,實(shí)現(xiàn)“鎖車”場景的順序圖。圖7-1順序圖7.1.2順序圖的表示在UML中,表示一個(gè)順序圖,主要是標(biāo)識系統(tǒng)中的對象、對象的生命線、對象的控制焦點(diǎn)(對象獲得控制權(quán))以及對象間交互的消息。

1.對象 2.生命線 3.控制焦點(diǎn) 4.消息7.1.2順序圖的表示(1)同步消息如圖7-3就是一個(gè)同步消息。圖7-3同步消息的表示(2)異步消息如圖7-4就是一個(gè)異步消息圖7-4異步消息的表示7.1.2順序圖的表示(3)返回消息返回消息由開放箭頭的虛線表示,如圖7-5所示。圖7-5返回消息的表示(4)創(chuàng)建對象的消息創(chuàng)建對象的消息用開放箭頭的實(shí)線表示,如圖7-6所示。圖7-6創(chuàng)建對象的消息表示7.1.2順序圖的表示(5)銷毀對象的消息銷毀對象的消息表示,如圖7-7所示。圖7-7銷毀對象的消息表示(6)發(fā)現(xiàn)消息發(fā)現(xiàn)消息的表示如圖7-8所示。圖7-8來自不明對象的消息表示7.1.2順序圖的表示(7)丟失消息丟失消息的表示,如圖7-9所示。圖7-9丟失消息的表示7.1.2順序圖的表示5.消息編號有兩種消息編號方案: 一種是順序編號 另一種是嵌套編號7.1.2順序圖的表示(1)順序編號下面是一個(gè)順序圖,該圖演示了“飲料已售完”的場景,如圖7-10所示。圖7-10飲料已售完的順序圖7.1.2順序圖的表示(2)嵌套編號

依據(jù)UML嵌套編號方案,如果對圖7-10采用嵌套編號方案,則順序圖改為如圖7-11所示。在圖

7-11

中,把屬于同一個(gè)對象發(fā)送和接收的消息放在同一層進(jìn)行編號,如對象user的發(fā)送消息放在第一層編號,其編號是1位數(shù)字,編號是1;把對象atm發(fā)送和接收的消息放在第二層編號,其編號是2位數(shù)字,給它們分配的編號是1.1、1.2、1.3;匿名對象“錢幣記錄儀”的發(fā)送和接收消息放在第三層編號,其編號是3位數(shù)字,給它們分配的編號是1.1.1、1.1.2。7.1.2順序圖的表示圖7-11嵌套編號7.1.3表示分支、并發(fā)和循環(huán)順序圖中,對象的行為有分支、并發(fā)和循環(huán)三種方式,為了表示這三種行為,引入組合區(qū)和操作符的概念,下面分別講述。7.1.3表示分支、并發(fā)和循環(huán)下面分別講述每種操作符的語義和應(yīng)用。1.a(chǎn)lt和opt表示分支 可以表示分支的操作符有兩個(gè): alt用來表示多選一 opt用來表示單選一7.1.3表示分支、并發(fā)和循環(huán)(1)alt表示多選一

在圖7-13所示,組合區(qū)包含2個(gè)區(qū)域。上面的區(qū)域的監(jiān)護(hù)條件是:x<10,執(zhí)行語句是calculate(x);下面的區(qū)域的監(jiān)護(hù)條件是else,執(zhí)行語句是calculate(x)。 該組合區(qū)表示的邏輯是:如果x<10,就要求B類對象執(zhí)行calculate(x)操作;否則就要求c類對象執(zhí)行calculate(x)操作。7.1.3表示分支、并發(fā)和循環(huán)圖7-13alt操作符的使用7.1.3表示分支、并發(fā)和循環(huán)(2)opt表示單選一在圖7-14所示演示opt操作符的使用,該組合區(qū)只有一個(gè)區(qū)域,它表示的邏輯是:“如果x<10,就要求B類對象執(zhí)行calculate(x)操作。7.1.3表示分支、并發(fā)和循環(huán)圖7-14opt操作符的使用7.1.3表示分支、并發(fā)和循環(huán)2.loop 操作符loop用來表示操作的循環(huán)執(zhí)行。表示循環(huán)的語句格式如下:Loop(1,n):表示的語義相當(dāng)于程序語言的for語句:for(i=1;i<n;i++)Loop(n):表示執(zhí)行n次。7.1.3表示分支、并發(fā)和循環(huán)圖7-15所示,loop(1,3)表示矩形框中的操作可以循環(huán)執(zhí)行1~3次。首先,用戶輸入密碼到ATM中,然后ATM對密碼進(jìn)行驗(yàn)證,如果無效,用戶可以繼續(xù)輸入密碼,但循環(huán)的次數(shù)不能超過3次,即你輸入密碼不能超過三次。圖7-15loop操作符的使用7.1.3表示分支、并發(fā)和循環(huán)3.par par操作符用來表示并行操作。即,par操作符所擁有的多個(gè)區(qū)域的操作是并行執(zhí)行的。圖7-16所示,是某個(gè)客戶的取款操作交互圖。該順序圖說明,首先執(zhí)行l(wèi)oop操作,由用戶輸入密碼,當(dāng)密碼有效時(shí),進(jìn)入opt操作符所屬的組合區(qū)執(zhí)行。7.1.3表示分支、并發(fā)和循環(huán)圖7-16par操作符的使用7.1.3表示分支、并發(fā)和循環(huán)4.consider與Assert 操作符consider包含一個(gè)消息列表,在consider組合區(qū)中,只有消息列表中的消息才能執(zhí)行。 圖7-17所表示的邏輯是,在consider組合區(qū)中,只有start和brake消息才能執(zhí)行,在消息列表中(start,brake),由于brake(剎車)消息在start消息之后,因此,只有執(zhí)行過start消息后才能執(zhí)行brake消息。盡管其它消息可以出現(xiàn)在consider組合區(qū)中,但是,不會執(zhí)行。

7.1.3表示分支、并發(fā)和循環(huán)圖7-17consider和assert操作符7.1.3表示分支、并發(fā)和循環(huán)5.ignore與assert操作符ingore包含一個(gè)消息列表,與consider操作符相反,在ingore組合區(qū)中,消息列表中的消息被忽略。圖7-18所表示的邏輯是,在ingore組合區(qū)中,backoff(后退)和presshorn(按喇叭)消息被忽略(駕駛員汽車啟動(dòng)后,當(dāng)駕駛員發(fā)送后退或者按喇叭時(shí),汽車不會接受這些消息)。

7.1.3表示分支、并發(fā)和循環(huán)圖7-18ignore和assert操作符7.1.3表示分支、并發(fā)和循環(huán)6.break

操作符break常與循環(huán)操作符配合使用,當(dāng)break組合區(qū)執(zhí)行時(shí),首先測試監(jiān)護(hù)條件,若監(jiān)護(hù)條件為真,則跳出循環(huán)語句,否則繼續(xù)執(zhí)行循環(huán)體。Break操作符與程序語言中的break語句作用相同。在圖7-19中,當(dāng)系統(tǒng)要求用戶登錄ATM系統(tǒng)時(shí),ATM系統(tǒng)首先要求用戶輸入密碼,這時(shí)進(jìn)入loop組合區(qū),在組合區(qū)中,用戶輸入密碼,然后,流程進(jìn)入break組合區(qū),break組合區(qū)的邏輯是:測試監(jiān)護(hù)條件,若密碼有效,則執(zhí)行exit語句(跳出循環(huán)),如果密碼無效,則繼續(xù)執(zhí)行循環(huán),但是,循環(huán)不能超過三次。7.1.3表示分支、并發(fā)和循環(huán)圖7-19break操作符7.1.3表示分支、并發(fā)和循環(huán)7.critical操作符crtical所在的區(qū)域稱為“臨界區(qū)域”,在臨界區(qū)域中,所有的操作要么全部成功執(zhí)行,要么都不執(zhí)行。我們常用臨界區(qū)來完成一個(gè)完整的事務(wù)。例如,我們把一個(gè)賬戶的的錢轉(zhuǎn)到另一個(gè)賬戶時(shí),就是一種事務(wù)性操作,即,從一個(gè)賬戶中扣錢的操作與向另一個(gè)賬戶中加錢的操作要么都成功,要么都不成功。因此,我們必須把這兩個(gè)動(dòng)作設(shè)置為臨界區(qū)。7.1.3表示分支、并發(fā)和循環(huán)圖7-20表示的含義是,客戶從賬號a中扣除的錢(money)的操作和往賬戶b中增加的錢的操作要么全部成功完成,要么都不執(zhí)行。圖7-20操作符crtical7.1.3表示分支、并發(fā)和循環(huán)8.ref操作符ref表示引用其它的圖。我們在矩形框中寫明被引用的圖名稱。圖7-21是一個(gè)取款順序圖,在取款前,客戶首先要登錄ATM

機(jī),我們可以用ref操作符來引用圖7-19(該圖名稱是login)。7.1.3表示分支、并發(fā)和循環(huán)圖7-21ref操作符7.1.3表示分支、并發(fā)和循環(huán)在UML中,各種圖類型的表示法如表7-1所示。表7-1圖類型及其對應(yīng)的表示法圖類型對應(yīng)的表示法圖類型對應(yīng)的表示法類圖class對象圖object包圖package用例圖usecase順序圖sd協(xié)作圖comm定時(shí)圖timing活動(dòng)圖activity交互概觀圖intover狀態(tài)機(jī)圖statemachine構(gòu)件圖component部署圖deployment7.1.4順序圖應(yīng)用我們常用順序圖來對場景建模,即表示場景中對象之間的交互。下面以飲料自動(dòng)銷售系統(tǒng)為例,學(xué)習(xí)如何繪制順序圖。下面對“買飲料”的3種場景進(jìn)行建模,對每一個(gè)場景繪制其對應(yīng)的順序圖。7.1.4順序圖應(yīng)用1.買飲料的正常場景下面是買到飲料的一般事件流:(1)顧客在飲料機(jī)器的前端投入錢幣,然后選擇想要的飲料。(2)錢幣到達(dá)錢幣記錄儀,記錄儀獲得錢幣后,檢查存貨。(3)記錄儀通知分配器分發(fā)飲料到機(jī)器前端。7.1.4順序圖應(yīng)用買到飲料的場景對應(yīng)的順序圖,如圖7-22所示。圖7-22買到飲料的場景7.1.4順序圖應(yīng)用2.飲料“已售完”的場景3.機(jī)器沒有合適的零錢4.帶有臨時(shí)對象的順序圖7.2協(xié)作圖

協(xié)作圖(CollaborationDiagram,也叫合作圖)是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接收消息的對象之間的組織結(jié)構(gòu)。一個(gè)協(xié)作圖顯示了一系列對象之間的交互。 設(shè)計(jì)師使用協(xié)作圖和順序圖確定并闡明對象的角色,這些對象執(zhí)行用例的特定事件流。這些圖提供的信息主要用來確定類的職責(zé)和接口7.2.1協(xié)作圖的表示在UML中,表示一個(gè)協(xié)作圖主要是標(biāo)識系統(tǒng)中的對象、對象間交互的消息、對象間的鏈。協(xié)作圖由以下基本元素組成:活動(dòng)者(Actor)、對象(Object)、連接(Link)和消息(Message)。具體見表7-2。7.2.1協(xié)作圖的表示表7-2UML協(xié)作圖包含的基本圖符可視化圖符名稱描述對象用于表示協(xié)作圖中參與交互的對象多對象用于表示協(xié)作圖中參與交互的多對象連接用于表示對象之間的關(guān)系消息用于表示對象之間發(fā)送的消息注釋對協(xié)作圖或某一個(gè)具體對象進(jìn)行說明注釋連接將注釋體與要描述的實(shí)體連接起來,表明該注解是對于哪個(gè)實(shí)體的描述1.對象

2.連接

3.消息

4.消息編號7.2.1協(xié)作圖的表示4.消息編號消息的編號有兩種,一種是無層次編號(按順序編號),它簡單直觀;另一種是嵌套的編號,它更易于表示消息的包含關(guān)系。 圖7-26所示是系統(tǒng)管理員添加書籍的協(xié)作圖。圖7-26協(xié)作圖7.2.2表示循環(huán)和分支1.迭代標(biāo)記 在協(xié)作圖中,我們用一個(gè)迭代符“*”和迭代子句(可選)來表示循環(huán)??梢允褂萌魏斡幸饬x的句子來表示迭代子句。常用的迭代表子句如表7-3所示。表7-3常用迭代表達(dá)式迭代子句語義[i:=1…n]迭代n次[I=1…10]I迭代10次[while(表達(dá)式)]表達(dá)式為true時(shí)才進(jìn)行迭代[until(表達(dá)式)]迭代到表達(dá)式為true時(shí),才停止迭代[foreach(對象集合)]在對象集合上迭代7.2.2表示循環(huán)和分支圖7-27所示,是管理員通過課程管理器打印所有的課程信息的協(xié)作圖。圖7-27打印課程信息7.2.2表示循環(huán)和分支2.監(jiān)護(hù)條件 在協(xié)作圖中,我們用監(jiān)護(hù)條件來表示分支。監(jiān)護(hù)條件的格式是:[條件表達(dá)式]。當(dāng)監(jiān)護(hù)條件為真時(shí),才執(zhí)行消息。圖7-28展示了課程注冊系統(tǒng)的協(xié)作圖。為學(xué)生注冊課程,分三個(gè)步驟:第一步:在系統(tǒng)中找出某個(gè)學(xué)生的信息;第二步:在系統(tǒng)中找出正確的課程;第三步:在學(xué)生和課程都存在的情況下,為該學(xué)生注冊。7.2.2表示循環(huán)和分支圖7-28課程注冊7.2.3順序圖與協(xié)作圖的關(guān)系順序圖與協(xié)作圖都表示對象之間的交互作用,只是它們的側(cè)重點(diǎn)有所不同。(1)順序圖描述了對象交互的時(shí)間順序,但沒有明確地表達(dá)對象之間的關(guān)系,也沒有表明對象在交互中承擔(dān)的角色。(2)協(xié)作圖描述了對象在交互中承擔(dān)的角色(關(guān)系),但對象在交互中的時(shí)間順序必須從消息的順序號獲得。(3)順序圖可以表示出對象的激活狀態(tài)和去激活狀態(tài),也可以表示出對象的創(chuàng)建和銷毀的相對時(shí)間,協(xié)作圖則沒有這些功能。 兩種圖的語義是等價(jià)的,可以采用RationalRose工具把一種形式的圖轉(zhuǎn)換成另一種形式的圖,而不丟失任何信息。7.3定時(shí)圖定時(shí)圖是一種特殊的順序圖。如果要對實(shí)時(shí)性較強(qiáng)的系統(tǒng)建模,我們就采用定時(shí)圖。例如,對工業(yè)控制系統(tǒng)、人工智能系統(tǒng)、嵌入式系統(tǒng)進(jìn)行建模時(shí),最好用定時(shí)圖。

7.3定時(shí)圖定時(shí)圖是一種特殊的順序圖。如果要對實(shí)時(shí)性較強(qiáng)的系統(tǒng)建模,我們就采用定時(shí)圖。例如,對工業(yè)控制系統(tǒng)、人工智能系統(tǒng)、嵌入式系統(tǒng)進(jìn)行建模時(shí),最好用定時(shí)圖。

7.3定時(shí)圖1.定時(shí)圖與順序圖的區(qū)別定時(shí)圖與順序圖的區(qū)別主要體現(xiàn)在以下幾個(gè)方面:

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論