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