一種輔助性的制圖工具+交互圖+一種軟件工程設(shè)計(jì)人員必學(xué)習(xí)的內(nèi)容.ppt_第1頁
一種輔助性的制圖工具+交互圖+一種軟件工程設(shè)計(jì)人員必學(xué)習(xí)的內(nèi)容.ppt_第2頁
一種輔助性的制圖工具+交互圖+一種軟件工程設(shè)計(jì)人員必學(xué)習(xí)的內(nèi)容.ppt_第3頁
一種輔助性的制圖工具+交互圖+一種軟件工程設(shè)計(jì)人員必學(xué)習(xí)的內(nèi)容.ppt_第4頁
一種輔助性的制圖工具+交互圖+一種軟件工程設(shè)計(jì)人員必學(xué)習(xí)的內(nèi)容.ppt_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、UML面向?qū)ο蠼;A(chǔ),交互圖,知識圖譜,Agenda,交互與交互圖 如何閱讀交互圖 如何繪制交互圖 交互圖應(yīng)用說明 定時(shí)圖 本章小結(jié),Agenda,交互與交互圖 如何閱讀交互圖 如何繪制交互圖 交互圖應(yīng)用說明 定時(shí)圖 本章小結(jié),交互的概念,一次交互就是指在特定語境中,為了實(shí)現(xiàn)某一個(gè)目標(biāo),而在一組對象之間進(jìn)行交換的一組消息所表示的行為,UML中的4種交互圖,順序圖:順序圖是一種強(qiáng)調(diào)消息時(shí)間順序的交互圖,為讀者提供了控制流隨著時(shí)間推移的清晰的可視化軌跡 通信圖:UML 2.0中的通信圖實(shí)際上就是UML 1中的協(xié)作圖,它強(qiáng)調(diào)的是參加交互的對象的組織,為讀者提供了在協(xié)作對象結(jié)構(gòu)組織的語境中觀察控制流

2、的一個(gè)清晰的可視化軌跡 定時(shí)圖:采用了一種帶數(shù)字刻度的時(shí)間軸來精確地描述消息的順序 交互概述圖:是交互圖和活動(dòng)圖的混合物,1.順序圖,1.1 概述 順序圖(序列圖)主要用于按照交互發(fā)生的一系列順序,顯示對象之間的這些交互。很象類圖,開發(fā)者一般認(rèn)為序列圖只對他們有意義。然而,一個(gè)組織的業(yè)務(wù)人員會發(fā)現(xiàn),序列圖顯示不同的業(yè)務(wù)對象如何交互,對于交流當(dāng)前業(yè)務(wù)如何進(jìn)行很有用。除記錄組織的當(dāng)前事件外,一個(gè)業(yè)務(wù)級的序列圖能被當(dāng)作一個(gè)需求文件使用,為實(shí)現(xiàn)一個(gè)未來系統(tǒng)傳遞需求。在項(xiàng)目的需求階段,分析師能通過提供一個(gè)更加正式層次的表達(dá),把用例帶入下一層次。那種情況下,用例常常被細(xì)化為一個(gè)或者更多的序列圖。,1.順序

3、圖,序列圖的主要用途之一,是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個(gè)或者更多的序列圖。,順序圖的主要元素,對象與角色:最頂上一排矩形框。在交互圖中,參與交互的對象既可以是具體的事物,又可以是原型化的事物。作為具體的事物,一個(gè)對象代表現(xiàn)實(shí)世界中的某個(gè)東西。例如,aOrder作為類Order的一個(gè)實(shí)例,可以代表一個(gè)特定的訂單;而如果作為一個(gè)原型化的事件,則aOrder可以代表類Order的任何一個(gè)實(shí)例。 生命線與控制焦點(diǎn):每個(gè)對象都有自己的生命線,對象生命線是一條垂直的虛線,用來表示一個(gè)對象在一段時(shí)間內(nèi)存在。,消息:用來描述對象之間所進(jìn)行的通信的,該信息帶有對將

4、要發(fā)生的活動(dòng)的期望。當(dāng)傳送一個(gè)消息時(shí),它所引起的動(dòng)用是一個(gè)通過對計(jì)算過程的抽象而得到的可執(zhí)行語句。 消息分為五種:調(diào)用、返回、發(fā)送、創(chuàng)建和銷毀 調(diào)用:表示調(diào)用某個(gè)對象一個(gè)操作,順序圖的主要元素,順序圖的主要元素,順序編號:整個(gè)消息的傳遞過程就形成了一個(gè)完整的序列,因此通過在每個(gè)消息的前面加上一個(gè)用冒號隔開的順序號來表示其順序。除了順序編號之外,還可以采用嵌套方案:,1.順序圖,框架符號在 UML 2中,框架元件用于作為許多其他的圖元件的一個(gè)基礎(chǔ),作為圖的圖形化邊界。,1.順序圖,除了提供一個(gè)圖形化邊框之外,用于圖中的框架元件也有描述交互的重要的功能。在序列圖上一個(gè)序列接收和發(fā)送消息(交互),能

5、通過連接消息和框架元件邊界,建立模型(如圖 2 所見到)。,1.順序圖,注意在圖 2 中,對于序列圖,圖的標(biāo)簽由文字“sd”開始。當(dāng)使用一個(gè)框架元件封閉一個(gè)圖時(shí),圖的標(biāo)簽需要按照以下的格式: UML 規(guī)范給圖類型提供特定的文本值。(舉例來說,sd代表序列圖,activity代表活動(dòng)圖,use case代表用例圖)。,1.順序圖,基礎(chǔ)序列圖的主要目的是定義事件序列,產(chǎn)生一些希望的輸出。重點(diǎn)不是消息本身,而是消息產(chǎn)生的順序;不過,大多數(shù)序列圖會表示一個(gè)系統(tǒng)的對象之間傳遞的什么消息,以及它們發(fā)生的順序。圖按照水平和垂直的維度傳遞信息:垂直維度從上而下表示消息/調(diào)用發(fā)生的時(shí)間序列,而且水平維度從左到右

6、表示消息發(fā)送到的對象實(shí)例。,1.順序圖,生命線當(dāng)畫一個(gè)序列圖的時(shí)候,放置生命線符號元件,橫跨圖的頂部。生命線表示序列中,建模的角色或?qū)ο髮?shí)例。 生命線畫作一個(gè)方格,一條虛線從上而下,通過底部邊界的中心(圖 3)。生命線名字放置在方格里。,圖 3: 用于一個(gè)實(shí)體名為freshman的生命線的Student類的一個(gè)例子,UML 的生命線命名標(biāo)準(zhǔn)按照如下格式:,1.順序圖,生命線圖 3 中我們生命線例子是一個(gè)命名的對象,但是不是所有的生命線都代表命名的對象。相反的,一個(gè)生命線能用來表現(xiàn)一個(gè)匿名的或未命名的實(shí)體。當(dāng)在一個(gè)序列圖上,為一個(gè)未命名的實(shí)例建模時(shí),生命線的名字采用和一個(gè)命名實(shí)例相同的模式;但是

7、生命線名字的位置留下空白,而不是提供一個(gè)例圖名字。再次參考圖 3,如果生命線正在表現(xiàn)Student類的一個(gè)匿名例圖,生命線會是: “Student”。同時(shí), 因?yàn)樾蛄袌D在項(xiàng)目設(shè)計(jì)階段中使用,有一個(gè)未指定的對象是完全合法: 舉例來說,“freshman”。,圖 3: 用于一個(gè)實(shí)體名為freshman的生命線的Student類的一個(gè)例子,1.順序圖,消息為了可讀性,序列圖的第一個(gè)消息總是從頂端開始,并且一般位于圖的左邊。然后繼發(fā)的消息加入圖中,稍微比前面的消息低些。 為了顯示一個(gè)對象(例如,生命線)傳遞一個(gè)消息給另外一個(gè)對象,你畫一條線指向接收對象,包括一個(gè)實(shí)心箭頭(如果是一個(gè)同步調(diào)用操作)或一個(gè)

8、棍形箭頭(如果是一個(gè)異步訊號)。消息/方法名字放置在帶箭頭的線上面。正在被傳遞給接收對象的消息,表示接收對象的類實(shí)現(xiàn)的一個(gè)操作/方法。,1.順序圖,消息,圖 4: 一個(gè)在對象之間傳遞消息的實(shí)例,返回消息是可選擇的;一個(gè)返回消息畫作一個(gè)帶開放箭頭的虛線,向后指向來源的生命線,在這條虛線上面,你放置操作的返回值。,1.順序圖,消息 當(dāng)序列圖建模時(shí),有時(shí)候,一個(gè)對象將會需要傳遞一個(gè)消息給它本身。一個(gè)對象何時(shí)稱它本身?一個(gè)純化論者會爭辯一個(gè)對象應(yīng)該永不傳遞一個(gè)消息給它本身。然而,為傳遞一個(gè)消息給它本身的對象建模,在一些情境中可能是有用的。舉例來說,圖 5 是圖 4 的一個(gè)改良版本。 圖 5 版本顯示調(diào)

9、用它的 determineAvailableReports 方法的系統(tǒng)對象。通過表示系統(tǒng)傳遞消息“determineAvailableReports”給它本身,模型把注意力集中到過程的事實(shí)上,而不是系統(tǒng)對象。,1.順序圖,消息 當(dāng)序列圖建模時(shí),有時(shí)候,一個(gè)對象將會需要傳遞一個(gè)消息給它本身。一個(gè)對象何時(shí)稱它本身?一個(gè)純化論者會爭辯一個(gè)對象應(yīng)該永不傳遞一個(gè)消息給它本身。然而,為傳遞一個(gè)消息給它本身的對象建模,在一些情境中可能是有用的。舉例來說,圖 5 是圖 4 的一個(gè)改良版本。 圖 5 版本顯示調(diào)用它的 determineAvailableReports 方法的系統(tǒng)對象。通過表示系統(tǒng)傳遞消息“de

10、termineAvailableReports”給它本身,模型把注意力集中到過程的事實(shí)上,而不是系統(tǒng)對象。 為了要畫一個(gè)調(diào)用本身的對象,如你平時(shí)所作的,畫一條消息,但是不是連接它到另外的一個(gè)對象,而是你把消息連接回對象本身。,1.順序圖,消息,圖 5: 系統(tǒng)對象調(diào)用它的 determineAvailableReports 方法,1.順序圖,消息 圖 5 中的消息實(shí)例顯示同步消息;然而,在序列圖中,你也能為異步消息建模。一個(gè)異步消息和一個(gè)同步的畫法類似,但是消息畫的線帶一個(gè)棍形矛頭,如圖 6 所示。,圖 6: 表示傳遞到實(shí)體2的異步消息的序列圖片段,1.順序圖,約束當(dāng)為對象的交互建模時(shí),有時(shí)候,

11、必須滿足一個(gè)條件,消息才會傳遞給對象。約束在 UML 圖各處中,用于控制流。在這里,我將會討論UML 1.x 及UML 2.0兩者的約束。在 UML 1.x 中,一個(gè)約束只可能被分配到一個(gè)單一消息。UML 1.x中,為了在一個(gè)序列圖上畫一個(gè)約束,你把約束元件放在約束的消息線上,消息名字之前。圖 7 顯示序列圖的一個(gè)片段,消息addStudent 方法上有一個(gè)約束。,1.順序圖,約束,在圖 7 中,約束是文本“ pastDueBalance=0”。通過這個(gè)消息上的約束,如果應(yīng)收帳系統(tǒng)返回一個(gè)零點(diǎn)的逾期平衡,addStudent 消息才將會被傳遞。,圖 7:UML 1.x 序列圖的一個(gè)片段,其中a

12、ddStudent 消息有一個(gè)約束,1.順序圖,約束-組合碎片(變體方案,選擇項(xiàng),和循環(huán))然而,在大多數(shù)的序列圖中,UML 1.x“in-line”約束不足以處理一個(gè)建模序列的必需邏輯。這個(gè)功能缺失是 UML 1.x 的一個(gè)問題。UML 2 已經(jīng)通過去掉“in-line”約束,增加一個(gè)叫做組合碎片的符號元件,解決了這一個(gè)問題。一個(gè)組合碎片用來把一套消息組合在一起,在一個(gè)序列圖中顯示條件分支。UML 2 規(guī)范指明了組合碎片的 11 種交互類型。,1.順序圖,約束-變體 變體用來指明在兩個(gè)或更多的消息序列之間的、互斥的選擇。變體支持經(jīng)典的“if then else”邏輯的建模(舉例來說,如果 我買

13、三個(gè),然后 我得到 我購買的20% 折扣;否則 我得到我購買的 10% 折扣)。,1.順序圖,約束-變體,一個(gè)變體的組合碎片元件使用框架來畫。單詞“alt”放置在框架的namebox里。然后較大的長方形分為 UML 2 所稱的操作元。 操作元被虛線分開。每個(gè)操作元有一個(gè)約束進(jìn)行測試,而這個(gè)約束被放置在生命線頂端的操作元的左上部。 如果操作元的約束等于“true”,然后那個(gè)操作元是要執(zhí)行的操作元。,圖 8:包含變體組合碎片的一個(gè)序列圖片段,1.順序圖,約束-變體,圖 8作為一個(gè)變體的組合碎片如何閱讀的例子,顯示序列從頂部開始,即bank對象獲取支票金額和帳戶結(jié)余。此時(shí),序列圖中的變體組合碎片接管

14、。因?yàn)榧s束“balance = amount”,如果余額超過或等于金額,然后順序進(jìn)行bank對象傳遞 addDebitTransaction 和 storePhotoOfCheck 消息給account對象。然而,如果余額不是超過或等于金額,然后順序的過程就是bank傳遞addInsuffientFundFee 和 noteReturnedCheck 消息給account對象,returnCheck 消息給它自身。因?yàn)椤癳lse”約束,當(dāng)余額不大于或者等于金額時(shí),第二個(gè)序列被調(diào)用。在變體的組合碎片中,不需要“else”約束;而如果一個(gè)操作元,在它上面沒有一個(gè)明確的約束,那么將假定“else”約

15、束。,1.順序圖,約束-選擇項(xiàng),選擇項(xiàng)組合碎片用來為序列建模,這些序列給予一個(gè)特定條件,將會發(fā)生的;或者,序列不發(fā)生。一個(gè)選擇項(xiàng)用來為簡單的“if then”表達(dá)式建模。(例如,如果架上的圈餅少于五個(gè),那么另外做兩打圈餅)。 選擇項(xiàng)組合碎片符號與變體組合碎片類似,除了它只有一個(gè)操作元并且永不能有“else”約束以外(它就是如此,沒有理由)。要畫選擇項(xiàng)組合,你畫一個(gè)框架。文字“opt”是被放置在框架的 namebox 里的文本,在框架的內(nèi)容區(qū),選擇項(xiàng)的約束被放置在生命線頂端上的左上角。 然后選擇項(xiàng)的消息序列被放在框架的內(nèi)容區(qū)的其余位置內(nèi)。,1.順序圖,約束-選擇項(xiàng),圖 9:包括選擇項(xiàng)組合碎片的一

16、個(gè)序列圖片段,1.順序圖,約束-選擇項(xiàng),閱讀選擇項(xiàng)組合碎片很容易。圖 9 是圖 7 的序列圖片段的再加工,但是這次它使用一個(gè)選擇項(xiàng)組合碎片,因?yàn)槿绻鸖tudent的逾期平衡等于0,需要傳遞更多的消息。按照圖 9 的序列圖,如果Student的逾期平衡等于零,然后傳遞addStudent,getCostOfClass和chargeForClass消息。如果Student的逾期平衡不等于零,那么在選擇項(xiàng)組合碎片中,序列不傳遞任何一個(gè)消息。,1.順序圖,約束-循環(huán),在 UML 2 中,為一個(gè)重復(fù)的序列建模已經(jīng)改良,附加了循環(huán)組合碎片。 循環(huán)組合碎片表面非常類似選擇項(xiàng)組合碎片。你畫一個(gè)框架,在框架的

17、namebox 中放置文本“l(fā)oop”。在框架的內(nèi)容區(qū)中,一個(gè)生命線的頂部,循環(huán)約束 6 被放置在左上角。然后循環(huán)的消息序列被放在框架內(nèi)容區(qū)的其余部分中。 在 一個(gè)循環(huán)中,除了標(biāo)準(zhǔn)的布爾測試外,一個(gè)約束能測試二個(gè)特定的條件式。特定的約束條件式是寫作“minint = the number”(例如,“minint = 1”)的最小循環(huán)次數(shù),和寫作“maxint = the number”(例如,“maxint = 5”)的最大循環(huán)次數(shù)。通過最小循環(huán)檢驗(yàn),循環(huán)必須運(yùn)行至少指定次數(shù),而循環(huán)執(zhí)行次數(shù)不能達(dá)到約束指定的最大循環(huán)次數(shù)。,1.順序圖,約束-循環(huán),圖 10:包括循環(huán)項(xiàng)組合碎片的一個(gè)序列圖片段,

18、1.順序圖,引用另外一個(gè)順序圖,當(dāng)做序列圖的時(shí)候,開發(fā)者愛在他們的序列圖中,重用存在的序列圖。 在 UML 2 中開始,引進(jìn)“交互進(jìn)行”元件。由此能組合(重用)較簡單的序列,生成比較復(fù)雜的序列。 一個(gè)交互進(jìn)行元件使用一個(gè)框架繪制。文字“ref”放置在框架的 namebox 中,引用的序列圖名字放置在框架的內(nèi)容區(qū)里,連同序列圖的任何參數(shù)一起。引用序列圖的名字符號如下模式:,1.順序圖,引用另外一個(gè)順序圖,兩個(gè)例子: 1. Retrieve Borrower Credit Report(ssn) : borrowerCreditReport 或者 2. Process Credit Card(na

19、me, number, expirationDate, amount : 100) 在例子 1 中,語法調(diào)用叫做Retrieve Borrower Credit Report的序列圖,傳遞給它參數(shù) ssn。序列Retreive Borrower Credit Report返回變量 borrowerCreditReport 。 在實(shí)例 2 中,語法調(diào)用叫做Process Credit Card的序列圖,傳遞給它參數(shù)name,number,expiration date,和 amount。然而,在例子 2 中,amount參數(shù)將會是值100。因?yàn)槔?沒有返回值標(biāo)簽,序列不返回值(假設(shè),建模的序列

20、不需要返回值)。,1.順序圖,引用另外一個(gè)順序圖,圖 11: 一個(gè)引用兩個(gè)不同序列圖的序列圖,1.順序圖,引用另外一個(gè)順序圖,圖 11 顯示一個(gè)序列圖,它引用了序列圖“Balance Lookup”和“Debit Account”。序列從左上角開始,客戶傳遞一個(gè)消息給teller對象。teller對象傳遞一個(gè)消息給 theirBank 對象。那時(shí),調(diào)用Balance Lookup序列圖,而 accountNumber作為一個(gè)參數(shù)傳遞。Balance Lookup序列圖返回balance變量。然后檢驗(yàn)選擇項(xiàng)組合碎片的約束條件,確認(rèn)余額大于金額變量。在余額比金額更大的情況下,調(diào)用Debit Acc

21、ount序列圖,給它傳遞參數(shù)accountNumber 和amount。在那個(gè)序列完成后,withdrawCash 消息為客戶返回cash。,1.順序圖,引用另外一個(gè)順序圖,在圖 11 中,序列引用“Balance Lookup”序列圖?!癇alance Lookup”序列圖在圖 12 中顯示。因?yàn)槔有蛄杏袇?shù)和一個(gè)返回值,它的標(biāo)簽 位于圖的 namebox 中 按照一個(gè)特定模式:,兩個(gè)例子: 1. SD Balance Lookup(Integer : accountNumber) : Real 2. SD Available Reports(Financial Analyst : ana

22、lyst) : Reports,1.順序圖,引用另外一個(gè)順序圖,在圖 11 中,序列引用“Balance Lookup”序列圖?!癇alance Lookup”序列圖在圖 12 中顯示。:,圖 12: 一個(gè)使用 accountNumber 參數(shù)并返回一個(gè)Real對象的序列圖,1.順序圖,引用另外一個(gè)順序圖,例子 2:,圖 13: 一個(gè)在它的交互中使用參數(shù)、返回一個(gè)Reports對象的序列圖,1.順序圖,門,門是另一種容易在序列圖之間傳遞消息的方法,一個(gè)門只是一個(gè)消息,圖形表示為一端連接序列圖的框架邊緣,另一端連接到生命線。,1.順序圖,門,圖 14: 圖 11 的重構(gòu),這次使用門,1.順序圖,

23、門,圖 14: 圖 11 的重構(gòu),這次使用門,1.順序圖,門,圖 15: 圖 12 的重構(gòu),這次使用門,1.順序圖,跳轉(zhuǎn),跳轉(zhuǎn)組合碎片幾乎在每個(gè)方面都和選擇項(xiàng)組合碎片一致,除了兩個(gè)例外。首先,跳轉(zhuǎn)的框架namebox的文本“break”代替了“option”。其次, 當(dāng)一個(gè)跳轉(zhuǎn)組合碎片的消息運(yùn)行時(shí),封閉的交互作用的其他消息將不會執(zhí)行,因?yàn)樾蛄写蚱屏朔忾]的交互。這樣,跳轉(zhuǎn)組合碎片非常象 C+ 或 Java 的編程語言中的break關(guān)鍵字。,1.順序圖,跳轉(zhuǎn),圖 16: 來自圖 8 的序列圖片段的重構(gòu),片段使用跳轉(zhuǎn)代替變體,1.順序圖,跳轉(zhuǎn),跳轉(zhuǎn)最常用來做模型異常處理。圖 16 是圖 8 的重構(gòu),

24、但是這次圖16使用跳轉(zhuǎn)組合碎片,因?yàn)樗裝alance amount的情況作為一個(gè)異常對待,而不是一個(gè)變體流。要閱讀圖 16,你從序列的左上角開始,向下讀。當(dāng)序列到達(dá)返回值“balance”的時(shí)候,它檢查看看是否余額比金額更少。如果余額不少于金額,被傳遞的下一個(gè)消息是 addDebitTransaction 消息,而且序列正常繼續(xù)。然而,在余額比金額更少的情況下,然后序列進(jìn)入跳轉(zhuǎn)組合碎片,它的消息被傳遞。一旦跳轉(zhuǎn)組合的消息的已經(jīng)被傳遞,序列不發(fā)送任何其它消息就退出(舉例來說,addDebitTransaction)。,1.順序圖,跳轉(zhuǎn),注意有關(guān)跳轉(zhuǎn)的一件重要的事是,它們只引起一個(gè)封閉交互的序列

25、退出,不必完成圖中描述的序列。在這種情況下,跳轉(zhuǎn)組合是變體或者循環(huán)的一部分,然后只是變體或循環(huán)被退出。,1.順序圖,并行,今天的現(xiàn)代計(jì)算機(jī)系統(tǒng)在復(fù)雜性和有時(shí)執(zhí)行并發(fā)任務(wù)方面不斷進(jìn)步。當(dāng)完成一個(gè)復(fù)雜任務(wù)需要的處理時(shí)間比希望的長的時(shí)候,一些系統(tǒng)采用并行處理進(jìn)程的各部分。當(dāng)創(chuàng)造一個(gè)序列圖,顯示并行處理活動(dòng)的時(shí)候,需要使用并行組合碎片元件。 并行組合碎片使用一個(gè)框架來畫,你把文本“par”放在框架的 namebox 中。然后你把框架的內(nèi)容段用虛線分為水平操作元??蚣艿拿總€(gè)操作元表示一個(gè)在并行運(yùn)行的線程。,1.順序圖,并行,圖 17: oven 是并行做兩個(gè)任務(wù)的對象實(shí)例,1.順序圖,并行,圖 17 可

26、能沒有舉例說明做并行活動(dòng)的對象的最好的計(jì)算機(jī)系統(tǒng)實(shí)例,不過提供了一個(gè)容易理解的并行活動(dòng)序列的例子。序列如這樣進(jìn)行:hungryPerson 傳遞 cookFood 消息給oven 對象。當(dāng)oven 對象接收那個(gè)消息時(shí),它同時(shí)發(fā)送兩個(gè)消息(nukeFood 和 rotateFood)給它本身。這些消息都處理后,hungryPerson 對象從oven 對象返回 yummyFood 。,1.順序圖,總結(jié),序列圖是一個(gè)用來記錄系統(tǒng)需求,和整理系統(tǒng)設(shè)計(jì)的好圖。序列圖是如此好用的理由是,因?yàn)樗凑战换グl(fā)生的時(shí)間順序,顯示了系統(tǒng)中對象間的交互邏輯。,2 通信圖,通信圖主要元素,鏈:連接器,是用來表示對象之

27、間的語義連接,一般而言,鏈?zhǔn)顷P(guān)聯(lián)的一個(gè)實(shí)例(包括association、self、global、local等)。不過在UML 2中已經(jīng)開始弱化它們的使用,因此除非必要,無需過多地考慮它們 消息編號:消息的編號有兩種,一種是無層次編號,它簡單直觀;另一種是嵌套的編號,它更易于表示消息的包含關(guān)系 迭代標(biāo)記:用*號表示,表示循環(huán),通常還有迭代表達(dá)式,用來說明循環(huán)規(guī)則,通信圖主要元素,監(jiān)護(hù)條件:通常是用來表示分支的,也就是表示“如果條件為true,才發(fā)送消息” 在通信圖中使用監(jiān)護(hù)條件一定要有所限制,通常應(yīng)只列出主要的監(jiān)護(hù)條件,否則會影響其閱讀。如果需要,盡可能還是通過順序圖來表示,Agenda,交互與

28、交互圖 如何閱讀交互圖 如何繪制交互圖 交互圖應(yīng)用說明 定時(shí)圖 本章小結(jié),準(zhǔn)備工作,首先根據(jù)自己的喜好和實(shí)際的表現(xiàn)需要來選擇順序圖或通信圖。不過由于它們在語義上是等價(jià)的,因此可以繪制出一種,再通過建模工具來自動(dòng)轉(zhuǎn)換成另一種圖 分析模型中的交互圖徹重于分析類的職責(zé)分配和交互流程,而設(shè)計(jì)模型中的交互圖則徹重于設(shè)計(jì)類的引入和實(shí)際方法的調(diào)用與流程控制 先確定參與交互的對象、對象之間的關(guān)系(通信圖),然后確定對象間的消息交互流程(用同步調(diào)用、異步消息、返回消息表示),并利用交互片斷(順序圖)或迭代標(biāo)記及監(jiān)護(hù)條件來表示循環(huán)和分支結(jié)構(gòu),魯棒分析,Robustness分析不是UML模型的一部分,它是一個(gè)強(qiáng)大的

29、草圖工具,是介于分析和設(shè)計(jì)之間的一種有效工具 在Robustness分析中,將應(yīng)用邊界類、控制類和實(shí)體類 從一個(gè)用例中抽取三類對象的方法:,魯棒分析從事件流開始,魯棒分析尋找邊界對象,圖書管理員向系統(tǒng)發(fā)出“新增書籍信息”請求主窗口、“新增書籍信息”按鈕 系統(tǒng)要求圖書管理員選擇要新增的書籍是計(jì)算機(jī)類還是非計(jì)算機(jī)類書籍類別列表框。 圖書管理員做出選擇后,顯示相應(yīng)界面,讓圖書管理員輸入信息,并自動(dòng)根據(jù)書號規(guī)則生成書號“新書信息錄入”窗口及輔助的“提交”按鈕,魯棒分析尋找控制對象和實(shí)體對象,根據(jù)事件流中的步驟5,以及擴(kuò)展路徑的描述,就可以在原圖上增加相應(yīng)的控制對象,得到更進(jìn)一步的Robustness分析圖,魯棒分析尋找控制對象和實(shí)體對象,新添兩個(gè)邏輯:一是基本事件流中的步驟2、3要求根據(jù)用戶選擇的類別,自動(dòng)獲得書號;二是當(dāng)書名重復(fù)性檢查沒有通過(有重名),則應(yīng)返回要求其重輸,構(gòu)建交互模型,轉(zhuǎn)換成通信圖,Agenda,交互與交互圖 如何閱讀交互圖 如何繪制交互圖 交互圖應(yīng)用說明 定時(shí)圖 本章小結(jié),交互模型的類型與演變,

溫馨提示

  • 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

提交評論