《UML順序圖和協(xié)作圖》由會(huì)員分享,可在線閱讀,更多相關(guān)《UML順序圖和協(xié)作圖(42頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,,,,,,,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,*,電氣與信息工程學(xué)院 翟亞紅,UML,建模技術(shù),,,,——,第,4,章 順序圖和協(xié)作圖,,交互圖概述,,順序圖,,協(xié)作圖,,順序圖與協(xié)作圖的比較,,練習(xí),主要內(nèi)容,,UML,中幾個(gè)圖的關(guān)系,用例圖,需求,類圖,(,復(fù)雜,),狀態(tài)圖,順序圖,類圖,(,簡單,),活動(dòng)圖,協(xié)作圖,需求獲取階段,系統(tǒng)分析階段,設(shè)計(jì)階段,,案例,1,:,ATM,自動(dòng)柜員機(jī)系統(tǒng),建立一個(gè)具有基本功能的,ATM,機(jī)軟件,客戶可以存錢,取錢,客戶可以查詢帳戶余額,客戶可以修改密碼,客戶可以進(jìn)行轉(zhuǎn)帳,,,案例,1
2、,:,ATM,自動(dòng)柜員機(jī)系統(tǒng),【,任務(wù)描述,】,客戶到,ATM,機(jī)上,取款,,其操作為插卡、輸入密碼、查詢余額、輸入取款數(shù)額、出鈔、取鈔、出卡、取卡等一系列動(dòng)作,每一個(gè)動(dòng)作(操作)是有一定的時(shí)間順序的。根據(jù)以上操作繪制出一個(gè),ATM,機(jī),取款的順序圖,。,,1.,交互圖概述,交互圖(,interaction diagram,)是用來描述,對(duì)象之間,以及,對(duì)象與參與者之間,的動(dòng)態(tài)協(xié)作關(guān)系以及協(xié)作過程中行為次序的圖形文檔。,,,交互圖包括,順序圖,(,sequence diagram),和,協(xié)作圖,(,collaboration diagram,)兩種形式。,,1.,交互圖概述,順序圖:著重描述對(duì)
3、象,按時(shí)間,順序的消息交換,,,協(xié)作圖:著重描述系統(tǒng)成分,如何協(xié)同,工作,,2.,順序圖,定義:順序圖也稱時(shí)序圖,是顯示對(duì)象之間交互的圖,這些對(duì)象是按時(shí)間順序排列的。,,順序圖中顯示的是參與交互的,對(duì)象,以及對(duì)象之間,消息交互,的順序。,,,順序圖的作用,表示用例的行為順序,描述對(duì)象之間以及對(duì)象與,Actor,之間的消息發(fā)送關(guān)系;,,,,發(fā)現(xiàn)類并依據(jù)其,職責(zé),構(gòu)建類的屬性和方法。,,,案例回顧,,曹操,赤壁之戰(zhàn),孫權(quán),劉備,關(guān)羽,孔明,張飛,,曹操舉兵南下,,劉備,請(qǐng),孔明,擬定策略。派遣,關(guān)羽,和,張飛,防守荊州,同時(shí)請(qǐng),孔明,聯(lián)絡(luò)孫權(quán),共同對(duì)抗曹操。,孔明,聯(lián)合孫權(quán),借東風(fēng),火燒曹軍于赤壁
4、。,,,場(chǎng)景描述,,,:,劉備,:,孔明,:,關(guān)羽,求戰(zhàn),請(qǐng)擬策略,:,張飛,請(qǐng)防守荊州,請(qǐng)防守,,荊州前線,孫權(quán),曹操,請(qǐng)聯(lián)絡(luò)孫權(quán),請(qǐng)孫權(quán)領(lǐng)兵相助,借東風(fēng)火攻,火攻曹軍,,寫,C++程序內(nèi)容,,,:,劉備,求戰(zhàn),請(qǐng)擬定策略,請(qǐng)防守荊州,請(qǐng)聯(lián)絡(luò)孫權(quán),寫,C++,,程序,Class,劉備,{,,孔明,,k =,New,孔明,,關(guān)羽,,g,=,,New,關(guān)羽,Public,,迎戰(zhàn)曹操,(),,,{,,,k.,擬定策略,(),,,g.,防守荊州,(),,,,k.,聯(lián)合孫權(quán),(),,,},,},,寫,C++程序內(nèi)容,,:,孔明,請(qǐng)擬定策略,請(qǐng)聯(lián)絡(luò)孫權(quán),請(qǐng)孫權(quán)領(lǐng)兵相助,借東風(fēng)火攻,借東風(fēng)火攻,寫,C++
5、,,程序,Class,孔明,{,,孫權(quán),,s,= new,孫權(quán),,Public,,擬定策略,(),,,{,,……,,,},,Public,,聯(lián)合孫權(quán),(),,,{,,,s.,請(qǐng)領(lǐng)兵相助,(),,,借東風(fēng)火攻(),,,},,Private,,借東風(fēng)火攻,(),,{,,,……,,,},,},,案例,1,:,ATM,自動(dòng)柜員機(jī)系統(tǒng),【,任務(wù)描述,】,儲(chǔ)戶到,ATM,機(jī)上,取款,,其操作為插卡、輸入密碼、查詢余額、輸入取款數(shù)額、出鈔、取鈔、出卡、取卡等一系列動(dòng)作,每一個(gè)動(dòng)作(操作)是有一定的時(shí)間順序的。根據(jù)以上操作繪制出一個(gè),ATM,機(jī),取款的順序圖,。,,(,1,)確定操作順序,,根據(jù)需求分析,客戶
6、使用,ATM,機(jī)取款的操作順序如下:,,1,),客戶,將卡插入,ATM,的讀卡機(jī)(銀行卡)。,,2,),讀卡機(jī),接受,ATM,卡,并把它交給,客戶管理,模塊。,,3,)客戶管理模塊啟動(dòng)驗(yàn)證密碼程序,向儲(chǔ)戶顯示輸入密碼請(qǐng)求。,,4,)客戶通過,輸入設(shè)備,輸入密碼,輸入設(shè)備把密碼傳遞給客戶管理模塊。,,5,)客戶管理模塊向事務(wù)管理模塊請(qǐng)求確認(rèn)密碼的合法性。,,6,)事務(wù)管理模塊向客戶管理模塊確認(rèn)密碼的合法性。,,7,)客戶管理模塊通過,顯示屏,向客戶顯示輸入服務(wù)類別請(qǐng)求。,,8,)客戶通過輸入設(shè)備輸入取款請(qǐng)求,并傳遞給客戶管理模塊。,,9,)客戶管理模塊通過顯示設(shè)備詢問客戶取款數(shù)額。,,10,)客
7、戶通過輸入設(shè)備輸入取款數(shù)額,并傳遞給客戶管理模塊。,,11),客戶管理模塊通過顯示設(shè)備向客戶詢問取款確認(rèn)。,,12,)客戶通過輸入設(shè)備向客戶管理模塊傳遞確認(rèn)信息。,,13,)客戶管理模塊向,事務(wù)管理,模塊請(qǐng)求數(shù)額合法性確認(rèn)。,,14,)事務(wù)管理模塊向客戶管理模塊確認(rèn)數(shù)額合法性。,,15,)事務(wù)管理模塊向,點(diǎn)鈔機(jī),發(fā)出出鈔請(qǐng)求。,,16,)點(diǎn)鈔機(jī)出鈔。,,17,)客戶取鈔。,,18,)客戶取出,ATM,卡(銀行卡)。,,(,2,)確定對(duì)象,,,,,,(,3,)創(chuàng)建對(duì)象之間的消息,,(,4,)創(chuàng)建順序圖,:,ATM,機(jī)順序圖,,順序圖是一個(gè)二維圖形。在順序圖中水平方向?yàn)?對(duì)象維,,沿水平方向排列的
8、是參與交互的對(duì)象。,,順序圖中的垂直方向?yàn)?時(shí)間維,,沿垂直向下方向按時(shí)間遞增順序列出各對(duì)象所發(fā)出和接收的消息。,2.,順序圖,,順序圖建模元素,對(duì)象,(,object,),,生命線,(,lifeline,),,控制焦點(diǎn),(,focus of control,),,消息,(,message,),,順序圖中對(duì)象的命名方式有,3,種:,顯示對(duì)象名和類名,只顯示類名,只顯示對(duì)象名,,同步消息,/,調(diào)用消息,發(fā)送者把控制傳遞給消息的接收者,然后停止活動(dòng),等待消息接收者放棄或返回控制。,,同步消息必有一個(gè)配對(duì)的返回消息,在圖中可以不用畫出。,,異步消息,異步消息的發(fā)送者通過消息把信號(hào)傳遞給消息的接收者,
9、然后繼續(xù)自己的活動(dòng),不等待接收者返回消息或控制。異步消息的發(fā)送者和接收者是并行工作的。,,返回消息,返回消息表示從過程調(diào)用返回,以,虛線箭頭,表示。,,阻止消息,阻止消息是指消息發(fā)送者發(fā)出消息給接收者,若接收者無法立即接收消息,則發(fā)送者放棄此消息。,Rose,中用折回的箭頭表示阻止消息。,,Rose,所擴(kuò)充的消息類型,,超時(shí)消息,超時(shí)消息是指消息發(fā)送者發(fā)出消息給接收者并按指定時(shí)間等待。若接收者無法在指定時(shí)間內(nèi)接收消息,則發(fā)送者放棄此消息。,Rose,所擴(kuò)充的消息類型,,對(duì)象的創(chuàng)建和銷毀,,一個(gè)對(duì)象可以在交互中創(chuàng)建。如果一個(gè)對(duì)象是在交互中創(chuàng)建的,則該對(duì)象的生命線就從接收到一個(gè)標(biāo)有構(gòu)造型,>,的創(chuàng)
10、建消息之時(shí)開始。,,一個(gè)對(duì)象可以在交互中銷毀。如果一個(gè)對(duì)象是在交互中銷毀的,則該對(duì)象的生命線就從接收到一個(gè)標(biāo)有構(gòu)造型,>,的銷毀消息之時(shí)終止。對(duì)象銷毀的標(biāo)志是在其生命線的端部標(biāo)上一個(gè),“,×,”,。,,一個(gè)對(duì)象可以由其它的對(duì)象發(fā)送,>,消息予以銷毀,也可以自己銷毀。,,返回消息按需要繪制,圖,1,對(duì)數(shù)據(jù)庫的,JDBC,接口的訪問,,建立順序圖的一般步驟,(1),確定交互過程的上下文(,context);,,(2),確定參與交互過程的活動(dòng)者和對(duì)象;,,(3),確定活動(dòng)者、對(duì)象的生命周期;,,(4),確定交互中產(chǎn)生的消息;,,(5),從引發(fā)該交互過程的初始消息開始,在生命線之間自頂向下依次畫出隨后
11、的各個(gè)消息;,,,,一個(gè)單獨(dú)的順序圖最好只顯示一個(gè)控制流(建議盡量少用迭代和分支),,案例,2,:飲料自動(dòng)銷售機(jī),假設(shè)飲料銷售機(jī)有,3,部分:前端(,front,)、錢幣記錄儀(,register,)(負(fù)責(zé)收集顧客投的錢幣)、分配器(,dispenser,)。,,前端負(fù)責(zé):,,1,、接收顧客的選購和現(xiàn)鈔。,,2,、顯示諸如,Out of selection,和,Use correct change,的信息。,,3,、從記錄儀接收找回的零錢并返還給顧客。,,4,、返還現(xiàn)鈔。,,5,、從分配器接收一罐飲料并把它交給顧客。,,錢幣記錄儀負(fù)責(zé):,,1,、從前端獲取顧客輸入信息(即選購的飲料種類和現(xiàn)鈔)
12、。,,2,、更新現(xiàn)鈔儲(chǔ)存。,,3,、找零錢。,,分配器負(fù)責(zé):,,1,、檢查選購的飲料是否還有存貨。,,2,、分發(fā)一罐飲料。,,下面對(duì)“,buy soda”(,買飲料,),的理想場(chǎng)景建模:顧客塞入合適的零錢,顧客選擇的飲料還有存貨。買飲料的順序如下:,,1,、,顧客,從機(jī)器,前端,的錢幣口塞入錢幣,然后選擇想要的飲料。,,2,、錢幣到達(dá),錢幣記錄儀,,記錄儀更新自己的存儲(chǔ)。,,3,、,分配器,檢查飲料是否還有的結(jié)果是還還有存貨,記錄儀通知分配器分發(fā)一罐飲料到機(jī)器前段。,,案例,2,:飲料自動(dòng)銷售機(jī),,對(duì)上述步驟建模的順序圖如下:,,思考:,1,、在,Buy Soda,(買飲料)場(chǎng)景中,假設(shè)顧客選
13、擇的飲料已經(jīng)銷售完了(,sold out),,如何建立,sold-out,場(chǎng)景建模的順序圖。,,2,、假設(shè)顧客塞入的零錢數(shù)量不對(duì),該場(chǎng)景用順序圖如何描述呢?,,3.,協(xié)作圖,(Collaboration Diagram),協(xié)作圖:,用于描述系統(tǒng)的行為是如何由系統(tǒng)的成分協(xié)作實(shí)現(xiàn)的圖。,,協(xié)作圖中的一些主要建模元素:,,Object(,包括,actor,實(shí)例,),,Message,(消息),,Link(,鏈,),,鏈,(link),:協(xié)作圖中用鏈來連接對(duì)象,消息顯示在鏈的旁邊,一個(gè)鏈上可以有多個(gè)消息。,,鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例。,,順序圖中不使用鏈,只有在協(xié)作圖中才使用鏈。,,例:飲料銷售機(jī)中“,Buy
14、soda”,理想場(chǎng)景的協(xié)作圖如下:,,建立,Collaboration,圖的步驟,1.,確定交互過程的上下文,(context),;,,2.,確定參與交互過程的活動(dòng)者與對(duì)象;,,3.,確定對(duì)象之間的鏈,(link),,,以及沿著鏈的消息;,,4.,從引發(fā)這個(gè)交互過程的初始消息開始,將隨后的每個(gè)消息附到相應(yīng)的鏈上;,,5.,細(xì)化消息內(nèi)容。如需要說明時(shí)間或空間的約束時(shí)。,,思考:,在,Buy Soda,(買飲料)場(chǎng)景中,假設(shè)顧客選擇的飲料已經(jīng)銷售完了(,sold out),,如何建立,sold-out,場(chǎng)景建模的協(xié)作圖。,,,順序圖和協(xié)作圖對(duì)比(,1,),均屬交互圖,都用于描述系統(tǒng)中對(duì)象之間的動(dòng)態(tài)
15、關(guān)系。,,兩者可相互轉(zhuǎn)換,但兩者強(qiáng)調(diào)重點(diǎn)不同。,,順序圖強(qiáng)調(diào)消息的,時(shí)間順序,,按時(shí)間順序布圖;協(xié)作圖強(qiáng)調(diào)的是,參與交互的對(duì)象的組織,,按空間組織布圖。,,順序圖和協(xié)作圖對(duì)比(,2,),兩者語義上是等價(jià)的,但兩者并不能完全相互代替。,,,例如,在順序圖中不能表示對(duì)象與對(duì)象之間的,鏈,,在協(xié)作圖中則可以表示;協(xié)作圖不能表示,生命線和控制焦點(diǎn),,在順序圖中則可以表示。,,知識(shí)技能,,目標(biāo),(,1,)熟悉,UML,順序圖與協(xié)作圖的功能和組成元素,,(,2,)理解順序圖與協(xié)作圖的繪制方法,,(,3,)學(xué)會(huì)構(gòu)思順序圖與協(xié)作圖,,(,4,)學(xué)會(huì)在,Rational Rose 2003,中繪制順序圖與協(xié)作圖,本章重點(diǎn),(,1,),UML,順序圖與協(xié)作圖的功能和組成元素,,(,2,)在,Rational Rose 2003,中繪制順序圖與協(xié)作圖,小結(jié),,練習(xí):,ATM,自動(dòng)柜員機(jī)系統(tǒng),參照,ATM,自動(dòng)柜員機(jī)的,取款,用例的順序圖,試著完成以下任務(wù):,,(,1,)繪制,存款,用例的順序圖及協(xié)作圖。,,(,2,)繪制,修改密碼,用例的順序圖及協(xié)作圖。,,(,3,)繪制,查詢賬戶余額,及,轉(zhuǎn)賬,用例的順序圖及協(xié)作圖。,,