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

下載本文檔

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

文檔簡(jiǎn)介

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

第七章交互圖

主講人:

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

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

7.1順序圖

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

1.對(duì)象 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)建對(duì)象的消息創(chuàng)建對(duì)象的消息用開放箭頭的實(shí)線表示,如圖7-6所示。圖7-6創(chuàng)建對(duì)象的消息表示7.1.2順序圖的表示(5)銷毀對(duì)象的消息銷毀對(duì)象的消息表示,如圖7-7所示。圖7-7銷毀對(duì)象的消息表示(6)發(fā)現(xiàn)消息發(fā)現(xiàn)消息的表示如圖7-8所示。圖7-8來(lái)自不明對(duì)象的消息表示7.1.2順序圖的表示(7)丟失消息丟失消息的表示,如圖7-9所示。圖7-9丟失消息的表示7.1.2順序圖的表示5.消息編號(hào)有兩種消息編號(hào)方案: 一種是順序編號(hào) 另一種是嵌套編號(hào)7.1.2順序圖的表示(1)順序編號(hào)下面是一個(gè)順序圖,該圖演示了“飲料已售完”的場(chǎng)景,如圖7-10所示。圖7-10飲料已售完的順序圖7.1.2順序圖的表示(2)嵌套編號(hào)

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

7-11

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

在圖7-13所示,組合區(qū)包含2個(gè)區(qū)域。上面的區(qū)域的監(jiān)護(hù)條件是:x<10,執(zhí)行語(yǔ)句是calculate(x);下面的區(qū)域的監(jiān)護(hù)條件是else,執(zhí)行語(yǔ)句是calculate(x)。 該組合區(qū)表示的邏輯是:如果x<10,就要求B類對(duì)象執(zhí)行calculate(x)操作;否則就要求c類對(duì)象執(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類對(duì)象執(zhí)行calculate(x)操作。7.1.3表示分支、并發(fā)和循環(huán)圖7-14opt操作符的使用7.1.3表示分支、并發(fā)和循環(huán)2.loop 操作符loop用來(lái)表示操作的循環(huán)執(zhí)行。表示循環(huán)的語(yǔ)句格式如下:Loop(1,n):表示的語(yǔ)義相當(dāng)于程序語(yǔ)言的for語(yǔ)句: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對(duì)密碼進(jìn)行驗(yàn)證,如果無(wú)效,用戶可以繼續(xù)輸入密碼,但循環(huán)的次數(shù)不能超過(guò)3次,即你輸入密碼不能超過(guò)三次。圖7-15loop操作符的使用7.1.3表示分支、并發(fā)和循環(huán)3.par par操作符用來(lái)表示并行操作。即,par操作符所擁有的多個(gè)區(qū)域的操作是并行執(zhí)行的。圖7-16所示,是某個(gè)客戶的取款操作交互圖。該順序圖說(shuō)明,首先執(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í)行過(guò)start消息后才能執(zhí)行brake消息。盡管其它消息可以出現(xiàn)在consider組合區(qū)中,但是,不會(huì)執(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í),汽車不會(huì)接受這些消息)。

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í),首先測(cè)試監(jiān)護(hù)條件,若監(jiān)護(hù)條件為真,則跳出循環(huán)語(yǔ)句,否則繼續(xù)執(zhí)行循環(huán)體。Break操作符與程序語(yǔ)言中的break語(yǔ)句作用相同。在圖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ū)的邏輯是:測(cè)試監(jiān)護(hù)條件,若密碼有效,則執(zhí)行exit語(yǔ)句(跳出循環(huán)),如果密碼無(wú)效,則繼續(xù)執(zhí)行循環(huán),但是,循環(huán)不能超過(guò)三次。7.1.3表示分支、并發(fā)和循環(huán)圖7-19break操作符7.1.3表示分支、并發(fā)和循環(huán)7.critical操作符crtical所在的區(qū)域稱為“臨界區(qū)域”,在臨界區(qū)域中,所有的操作要么全部成功執(zhí)行,要么都不執(zhí)行。我們常用臨界區(qū)來(lái)完成一個(gè)完整的事務(wù)。例如,我們把一個(gè)賬戶的的錢轉(zhuǎn)到另一個(gè)賬戶時(shí),就是一種事務(wù)性操作,即,從一個(gè)賬戶中扣錢的操作與向另一個(gè)賬戶中加錢的操作要么都成功,要么都不成功。因此,我們必須把這兩個(gè)動(dòng)作設(shè)置為臨界區(qū)。7.1.3表示分支、并發(fā)和循環(huán)圖7-20表示的含義是,客戶從賬號(hào)a中扣除的錢(money)的操作和往賬戶b中增加的錢的操作要么全部成功完成,要么都不執(zhí)行。圖7-20操作符crtical7.1.3表示分支、并發(fā)和循環(huán)8.ref操作符ref表示引用其它的圖。我們?cè)诰匦慰蛑袑懨鞅灰玫膱D名稱。圖7-21是一個(gè)取款順序圖,在取款前,客戶首先要登錄ATM

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

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

2.連接

3.消息

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論