《UML系統(tǒng)建?;A(chǔ)教程 第9章 協(xié)作圖》由會員分享,可在線閱讀,更多相關(guān)《UML系統(tǒng)建?;A(chǔ)教程 第9章 協(xié)作圖(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、UMLUML統(tǒng)一建模語言統(tǒng)一建模語言重點內(nèi)容:重點內(nèi)容:l 什么是協(xié)作圖什么是協(xié)作圖 l 組成協(xié)作圖的元素組成協(xié)作圖的元素l使用使用ROSEROSE創(chuàng)建協(xié)作圖創(chuàng)建協(xié)作圖l在項目中創(chuàng)建協(xié)作圖案例分析在項目中創(chuàng)建協(xié)作圖案例分析 UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 所謂協(xié)作是指在一定的語境中一組對象以及用以實現(xiàn)某些行為的這些對象間的相互作用。它描述了在這樣一組對象為實現(xiàn)某種目的而組成相互合作的“對象社會”。協(xié)作圖就是表現(xiàn)對象協(xié)作關(guān)系的圖,它表示了協(xié)作中作為各種類元角色的對象所處的位置,在圖中主要顯示了類元角色(Classifier Roles)和關(guān)聯(lián)角色(Association Roles)。UM
2、LUML統(tǒng)一建模語言統(tǒng)一建模語言 在UML的表示中,協(xié)作圖將類元角色表示為類的符號(矩形),將關(guān)聯(lián)角色表現(xiàn)為實線的關(guān)聯(lián)路徑,關(guān)聯(lián)路徑上帶有消息符號。不帶有消息的協(xié)作圖標(biāo)明了交互作用發(fā)生的上下文,而不表示交互。它可以用來表示單一操作的上下文,甚至可以表示一個或一組類中所有操作的上下文。如果關(guān)聯(lián)線上標(biāo)有消息,圖形就可以表示一個交互。典型的,一個交互用來代表一個操作或者用例的實現(xiàn)UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 協(xié)作圖作為一種在給定語境中描述協(xié)作中各個對象之間的組織交互關(guān)系的空間組織結(jié)構(gòu)圖形化方式,在使用其進(jìn)行建模時,可以將其作用分為以下三個方面:1 通過描繪對象之間消息的傳遞情況來反映具體的使
3、用語境的邏輯表達(dá)。一個使用情境的邏輯可能是一個用例的一部分,或是一條控制流。這和序列圖的作用類似。2 顯示對象及其交互關(guān)系的空間組織結(jié)構(gòu)。協(xié)作圖顯示了在交互過程中各個對象之間的組織交互關(guān)系以及對象彼此之間的鏈接。與序列圖不同,協(xié)作圖顯示的是對象之間的關(guān)系,并不側(cè)重交互的順序,它沒有將時間作為一個單獨的維度,而是使用序列號來確定消息及并發(fā)線程的順序。3 協(xié)作圖的另外一個作用是表現(xiàn)一個類操作的實現(xiàn)。協(xié)作圖可以說明類操作中使用到的參數(shù)、局部變量以及返回值等。當(dāng)使用協(xié)作圖表現(xiàn)一個系統(tǒng)行為時,消息編號對應(yīng)了程序中嵌套調(diào)用結(jié)構(gòu)和信號傳遞過程。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 一個協(xié)作代表了為了完成某個
4、目標(biāo)而共同工作的一組對象。對象的角色表示一個或一組對象在完成目標(biāo)的過程中所應(yīng)起的那部分作用。對象是角色所屬的類的直接或者間接實例。在協(xié)作圖中,不需要關(guān)于某個類的所有對象都出現(xiàn),同一個類的對象在一個協(xié)作圖中也可能要充當(dāng)多個角色。協(xié)作圖中對象的表示形式也和序列圖中的對象的表示方式一樣,使用包圍名稱的矩形框來標(biāo)記,所顯示的對象及其類的名稱帶有下劃線,二者用冒號隔開,使用“對象名:類名”的形式,與序列圖不同的是,對象的下部沒有一條被成為“生命線”的垂直虛線,并且對象存在多對象的形式。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 在協(xié)作圖中,可以通過一系列的消息來描述系統(tǒng)的動態(tài)行為。在協(xié)作圖中,消息使用帶有標(biāo)簽
5、的箭頭來表示,它附在連接發(fā)送者和接收者的鏈上。鏈連接了發(fā)送者和接收者,箭頭的指向便是接收者。每個消息包括一個順序號以及消息的名稱。消息的名稱可以是一個方法,包含一個名字和參數(shù)表、可選的返回值表。消息的各種實現(xiàn)的細(xì)節(jié)也可以被加入,如同步與異步等。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 在協(xié)作圖中的鏈和對象圖中鏈的概念和表示形式都相同,都是兩個或多個對象之間的獨立連接,是對象引用元組(有序表),是關(guān)聯(lián)的實例。在協(xié)作圖中,鏈的表示形式為一個或多個相連的線或弧。在自身相關(guān)聯(lián)的類中,鏈?zhǔn)莾啥酥赶蛲粚ο蟮幕芈罚且粭l弧。為了說明對象是如何與另外一個對象進(jìn)行連接的,我們還可以在鏈的兩端添加上提供者和客戶端的
6、可見性修飾。如圖9-4所示,是鏈的普通和自身關(guān)聯(lián)的表示形式。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 創(chuàng)建一個新的協(xié)作圖,可以通過以下方式進(jìn)行。右鍵單擊瀏覽器中的Use Case View(用例視圖)、Logical View(邏輯視圖)或者位于這兩種視圖下的包。在彈出的菜單中,選中“New”(新建)下的“Collaboration Diagram”(協(xié)作圖)選項。輸入新的協(xié)作圖名稱。雙擊打開瀏覽器中的協(xié)作圖。使用菜單欄中添加對象的步驟如下:使用工具欄時,在菜單欄中,選擇“Tools”(瀏覽)下的“Create”(創(chuàng)建)選項,在“Create”(創(chuàng)建)選項中選擇“Object”(對象),此時光標(biāo)變
7、為“”號。在協(xié)作圖中單擊選擇任意一個位置,系統(tǒng)在該位置創(chuàng)建一個新的對象。在對象的名稱欄中,輸入對象的名稱。這時對象的名稱也會在對象上端的欄中顯示。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 在協(xié)作圖中添加對象與對象之間的簡單消息的步驟如下:1 選擇協(xié)作圖的圖形編輯工具欄中的圖標(biāo),或者選擇菜單欄“Tools”(工具)中“Create”(新建)下的“Message”選項,此時的光標(biāo)變?yōu)椤?”符號。2 單擊連接對象之間的鏈。3 此時在鏈上出現(xiàn)一個從發(fā)送者到接收者的帶箭頭的線段。4 在消息線段上輸入消息的文本內(nèi)容即可。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 在協(xié)作圖中創(chuàng)建鏈的操作與在對象圖中創(chuàng)建鏈的操作相同,
8、可以按照在對象圖中創(chuàng)建鏈的方式進(jìn)行創(chuàng)建。同樣我們也可以在鏈的規(guī)范對話框的“General”選項卡中設(shè)置鏈的名稱、關(guān)聯(lián)、角色以及可見性等。鏈的可見性是指一個對象是否能夠?qū)α硪粋€對象可見的機(jī)制。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 1 根據(jù)系統(tǒng)的用例或具體的場景,確定協(xié)作圖中應(yīng)當(dāng)包含的元素。2 確定這些元素之間的關(guān)系,可以著手建立早期的協(xié)作圖,在元素之間添加鏈接和關(guān)聯(lián)角色等。3 將早期的協(xié)作圖進(jìn)行細(xì)化,把類角色修改為對象實例,并且鏈上添加消息并指定消息的序列。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 倉庫管理員將生產(chǎn)的產(chǎn)品入庫的基本工作流程步驟如下:1 倉庫管理員將通過庫存管理子系統(tǒng)將生產(chǎn)的產(chǎn)品處理入
9、庫 2 倉庫管理員通過庫存管理子系統(tǒng)中的產(chǎn)品入庫界面獲取產(chǎn)品信息。3 產(chǎn)品入庫界面根據(jù)產(chǎn)品的編號將產(chǎn)品類實例化并請求該類產(chǎn)品信息。4 產(chǎn)品類實例化對象根據(jù)產(chǎn)品的編號加載產(chǎn)品信息并提供給產(chǎn)品入庫界面。5 倉庫管理員通過產(chǎn)品入庫界面增加產(chǎn)品數(shù)目。6 產(chǎn)品入庫界面通過產(chǎn)品類實例化對象修改產(chǎn)品信息。7 產(chǎn)品類實例化對象向產(chǎn)品入庫界面返回修改信息。8 產(chǎn)品入庫界面向倉庫管理員顯示添加成功信息。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 創(chuàng)建協(xié)作圖的下一步是確定這些對象之間的連接關(guān)系,使用鏈和角色將這些對象連接起來。在這一步中,我們基本上可以建立早期的協(xié)作圖,表達(dá)出協(xié)作圖中的元素如何在空間上進(jìn)行交互。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言 從已經(jīng)描述的用例中,我們可以確定需要“倉庫管理員”和“產(chǎn)品”二個對象。對于本系統(tǒng)來說,我們需要一個提供倉庫管理員與系統(tǒng)交互的場所,那么我們需要一個“界面”對象。倉庫管理員通過“產(chǎn)品入庫的界面”對象才能將產(chǎn)品放進(jìn)倉庫。將將這些對象列舉到協(xié)作圖中。UMLUML統(tǒng)一建模語言統(tǒng)一建模語言