




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章第七章 UML中的幾種其他圖中的幾種其他圖通訊圖活動圖包圖 通訊圖表示圍繞著對象角色以及對象角色之間的鏈所組織的交互。 與順序圖不同: 1)通訊圖表示扮演不同角色的對象之間的關(guān)系。 2)通訊圖不表示作為單獨(dú)維度的時間,所以交互的順序和并發(fā)進(jìn)程必須用順序數(shù)決定。 順序圖表示執(zhí)行消息的顯式順序,最好用于描述實(shí)時系統(tǒng)和復(fù)雜的場景。5.2.1 概念與表示法概念與表示法 通信圖是一種強(qiáng)調(diào)發(fā)送和接收消息的對象結(jié)構(gòu)組織的交互圖,展示圍繞對象以及它們之間的連接器而組織的交互。連接器是由關(guān)聯(lián)實(shí)例化的鏈以及通過過程參數(shù)、局部變量或全局變量而產(chǎn)生的對象之間的臨時連接。 通訊圖由對象(參與者) 、連接器以及連接
2、器上的消息構(gòu)成。這些概念及表示法與前述中的都完全相同。 為表示一個消息的時間順序,可以給消息加一個數(shù)字前綴(從1號消息開始),在控制流中,每個新的消息的順序號單調(diào)增加(如2,3等等)。為了顯示嵌套,可使用帶小數(shù)點(diǎn)的號碼(1表示第一個消息;1.1表示嵌套在消息1中的第一個消息;1.2表示嵌套在消息1中的第二個消息;等等)。 嵌套可為任意深度。要注意的是,沿同一個鏈,可以顯示多個消息(可能發(fā)自不同的方向),并且每個消息都有唯一的一個順序號。 順序圖和通訊圖在語義上是等價的,它們可以從一種形式的圖轉(zhuǎn)換為另一種。 C:Clientt:Transactionp:ODBCProxysactioncreat
3、eSetActions(a,d,o)destroySetValue(d,3.4)SetValue(a,”CO”).4)transientc:Clientt:Transactionp:ODBCProxysaction1:create2:setAction(a,d,o)3:destroy2.1:setValues(d,3.4)2.2:setValues(a,”CO”)上圖與下圖在語義上是等價的5.2.2 建立通訊圖建立通訊圖應(yīng)遵循如下策略建立通訊圖:n 設(shè)置交互的語境,不管它是一個系統(tǒng)、子系統(tǒng)、類,還是用況的腳本。n 通過識別對象在交互中扮演的角色,設(shè)置交互的場所。將它們 作為圖的頂點(diǎn)放在通訊圖中
4、,較重要的對象放在圖的中央,然后放置鄰近的對象。n 若對象之間可能要傳遞消息,說明對象之間的連接器。n 從引起這個交互的消息開始,然后將隨后的每個消息附到適當(dāng)?shù)倪B接器上,恰切地設(shè)置其順序號。并用帶小數(shù)點(diǎn)的編號來顯示嵌套。n如果需要展示消息的循環(huán)或分支,就是使用相應(yīng)的表示法。 n 如果需要說明時間或空間約束,則用時間標(biāo)記修飾每個消息,并附上合適的時間和空間約束。 像順序圖一樣,建議一個單獨(dú)的通訊圖只描述一個控制流。一般來說,可能要建立許多通訊圖,其中一些是基本的,另一些描述的是可選擇的路徑或例外情況。 可以使用包來組織一組通訊圖,并給每個圖起一個合適的名稱,以便與包中其它圖的相區(qū)別。7.2 活動
5、圖活動圖 活動圖可用于對業(yè)務(wù)過程和操作的算法建模721 概念與表示法概念與表示法 活動圖顯示從活動到活動的流。下面詳述有關(guān)的概念。 1、動作和活動、動作和活動 動作的定義與狀態(tài)圖中的是一致的。如調(diào)用另一個操作,發(fā)送一個信號,創(chuàng)建或撤銷一個對象,或者某些純計算(例如對一個表達(dá)式求值),都是一個動作?;顒涌捎蓜幼骱推渌顒咏M成,最底層的活動是由動作執(zhí)行的。 在活動圖中,動作和活動均具有圖形表示法,且是一樣的 發(fā)送郵件審批發(fā)票2、控制流、控制流 當(dāng)動作或活動結(jié)束時,馬上進(jìn)入下一個動作或活動。一系列的動作和活動的執(zhí)行構(gòu)成了一個控制流。在圖形上,用一個箭頭表示從一個動作或活動到下一個動作或活動的轉(zhuǎn)移 開
6、幕式比賽閉幕式控制流的分支與合并 控制流也可以是并發(fā)的。用同步條表示并發(fā)控制流的分岔和匯合。 3、對象流、對象流 定購銷售訂單4、泳道、泳道 在對業(yè)務(wù)過程建模時,可以把活動或動作分成組,每組由特定的履行者來執(zhí)行。履行者可為人員、組織或其他業(yè)務(wù)實(shí)體。把每個組分別稱為一個泳道。 5、活動圖、活動圖 活動圖是展示從動作或活動間的控制流和對象流的圖,其中的結(jié)點(diǎn)描述動作或活動,邊描述控制流或?qū)ο罅鳌?一般用它對計算過程中的步驟建模,也可用它對步驟間的數(shù)值的流動建模。上述的計算過程可為業(yè)務(wù)過程,也可為操作的算法。注意,順序圖強(qiáng)調(diào)對象間的控制流,而活動圖強(qiáng)調(diào)的是活動間的控制流。 對于活動圖中一個活動結(jié)點(diǎn),可
7、用另一張活動圖(子活動圖)進(jìn)行詳述。 7.2.2 建立活動圖建立活動圖對業(yè)務(wù)過程建模,要遵循如下的策略:n設(shè)置業(yè)務(wù)過程的語境。即要考慮在特定的語境中要對哪些業(yè)務(wù)的履行者和業(yè)務(wù)實(shí)體建模。n考慮為每個重要的業(yè)務(wù)的履行者建立一個泳道。n建立初始狀態(tài)和終止?fàn)顟B(tài),并識別該業(yè)務(wù)過程的前置條件和后置條件。n從初始狀態(tài)開始,說明隨著時間發(fā)生的動作或活動,并在活動圖中表示它們。n如果涉及到重要的對象,則把它們也加入到活動圖中。如果有必要,可展示對象的屬性值和狀態(tài)。n連接這些動作和活動結(jié)點(diǎn)的流。n如果需要,使用分支和合并來描述條件路徑和迭代,使用分岔和匯合來描述并發(fā)的動作或活動流。n針對活動建立子活動圖。對一個操
8、作建模時,應(yīng)遵循如下策略:n收集該操作所涉及的事物,包括操作的參數(shù)、可能的返回類型、它所屬于的類以及某些鄰近的類的特征。n識別操作的前置條件和后置條件以及操作所屬的類在操作執(zhí)行期間必須保持的不變式。n從該操作的初始狀態(tài)開始,按照時間順序設(shè)立活動或動作,并在活動圖中將它們表示出來。n如果需要,使用分支和合并來描述條件路徑和迭代。n僅當(dāng)這個操作屬于一個主動類時,才在必要時用分岔和匯合來描述并發(fā)的控制流。在OOA階段,僅用活動圖對關(guān)鍵的復(fù)雜操作進(jìn)行建模,用以展示關(guān)于算法的一些信息。除非想直接從模型生成代碼,即使在OOD階段并也不要求用活動圖對每個操作的算法都建立模型。 對一個較為復(fù)雜的系統(tǒng)建模,要使
9、用大量的模型元素,這時就必要把這些對一個較為復(fù)雜的系統(tǒng)建模,要使用大量的模型元素,這時就必要把這些元素分組進(jìn)行組織。這樣把在語義上接近且傾向于一起變化的模型組織在一起,元素分組進(jìn)行組織。這樣把在語義上接近且傾向于一起變化的模型組織在一起,不但控制模型的復(fù)雜度,有助于理解,而且也有助于按組控制元素的可見性。不但控制模型的復(fù)雜度,有助于理解,而且也有助于按組控制元素的可見性。 7.3.1 概念與表示法概念與表示法 包包是對模型元素分組的機(jī)制。是對模型元素分組的機(jī)制。 使用包的最常見目的是把建模元素組織成為組,作為一個集合進(jìn)行命名使用包的最常見目的是把建模元素組織成為組,作為一個集合進(jìn)行命名和處理。
10、和處理。 包可以擁有類、接口、構(gòu)件、節(jié)點(diǎn)、用況和圖,甚至可以是其它包。擁包可以擁有類、接口、構(gòu)件、節(jié)點(diǎn)、用況和圖,甚至可以是其它包。擁有是一種有是一種組成關(guān)系組成關(guān)系,這意味著被擁有的元素被聲明在包中。如果包被撤消,這意味著被擁有的元素被聲明在包中。如果包被撤消了,元素也要被撤消。了,元素也要被撤消。 一個元素只能被一個包所擁有。一個元素只能被一個包所擁有。 設(shè)計良好的包,把在語義上接近并傾向于一起變化的元素組織在一起。設(shè)計良好的包,把在語義上接近并傾向于一起變化的元素組織在一起。因此結(jié)構(gòu)良好的包是松耦合、高內(nèi)聚的,而且對其內(nèi)容的訪問具有嚴(yán)密的因此結(jié)構(gòu)良好的包是松耦合、高內(nèi)聚的,而且對其內(nèi)容的
11、訪問具有嚴(yán)密的控制。控制。 編號 包名類名 類名 類名包名包名半展開方式壓縮方式全展開方式包的層次性包的層次性 因?yàn)榘羞€可以有包,這樣包之間可以有一個層次,且在組織結(jié)構(gòu)上是因?yàn)榘羞€可以有包,這樣包之間可以有一個層次,且在組織結(jié)構(gòu)上是一棵嚴(yán)格的樹。一棵嚴(yán)格的樹。 在實(shí)際使用中,最好要避免過深地嵌套包,一般兩、三層即可。對過多在實(shí)際使用中,最好要避免過深地嵌套包,一般兩、三層即可。對過多的嵌套,要用的嵌套,要用“引入依賴引入依賴”來組織包。來組織包。 對包中元素的命名對包中元素的命名 一個包形成了一個命名空間,這意味著在一個包的語境中同一種元素的名字必須是唯一的。 例如,例如,同一個包不能擁有
12、兩個名為同一個包不能擁有兩個名為Queue的類,但在的類,但在P1包中可以有一個名包中可以有一個名為為Queue的類,而在的類,而在P2包中又有另一個(不同的)名為包中又有另一個(不同的)名為Queue的類。實(shí)際上,的類。實(shí)際上,類類P1:Queue和類和類P2:Queue是不同的類,這可以由各自的路徑名區(qū)別開來。是不同的類,這可以由各自的路徑名區(qū)別開來。 如果一個包位于另一個包中,外層的包可作為里層包的前綴。例如,在包Vision中有一個名為Camera的類,而包Vision又在包Sensor中。類Camera的全名為Sensor:Vision:camera。 在一個包中不同種類的元素可以有
13、相同的名字。這樣,在同一個包中,對一個類命名為Timer,對一個構(gòu)件也可以命名為Timer。為了不造成混亂,最好對一個包中所有元素也都唯一地命名。 如果包的內(nèi)容沒有被顯示在大矩形中,那么可以把該包的名字放在大矩形中。 如果包的內(nèi)容被顯示在大矩形中,那么可以把該包的名字放在左上角的小矩形中。包中元素的可見性包中元素的可見性 一個包中的元素在包外的可見性,通過在元素名字前加上一個可見性符號來指示。模型元素的可見性可為+(公共的)、-(私有的)、 #(受保護(hù)的) 或(包范圍的),它們的含義為:標(biāo)有“+”號的模型元素對所有的引入包以及它們的后代是可見的。包的各公共部分一同構(gòu)成包的接口。:標(biāo)有“”號的模
14、型元素只對包內(nèi)的元素是可見的。:標(biāo)有“#”號的模型元素只對那些與包含這些元素的包有泛化關(guān)系的子包是可見的。:標(biāo)有“#”號的模型元素只對在同一包內(nèi)聲明的其他元素是可見的。包間的關(guān)系包間的關(guān)系 包之間不但可以具有擁有關(guān)系,包之間也可以具有引入關(guān)系、訪問關(guān)系包之間不但可以具有擁有關(guān)系,包之間也可以具有引入關(guān)系、訪問關(guān)系或泛化關(guān)系?;蚍夯P(guān)系。定義定義 引入依賴引入依賴是兩個包之間的一種許可依賴關(guān)系,一個包中的可見性為公是兩個包之間的一種許可依賴關(guān)系,一個包中的可見性為公有的模型元素,可以在指定的包(包括嵌套在該包中的子包)中被引用,相有的模型元素,可以在指定的包(包括嵌套在該包中的子包)中被引用,相
15、當(dāng)于把提供者包的內(nèi)容附加到客戶包的當(dāng)于把提供者包的內(nèi)容附加到客戶包的公共公共命名空間中,而不必對名稱進(jìn)行命名空間中,而不必對名稱進(jìn)行限制。限制。 把引入依賴?yán)L制成帶有箭頭的虛線,其上標(biāo)有串把引入依賴?yán)L制成帶有箭頭的虛線,其上標(biāo)有串。定義定義 訪問訪問依賴依賴是兩個包之間的一種許可依賴關(guān)系,一個包中的可見性為公是兩個包之間的一種許可依賴關(guān)系,一個包中的可見性為公有的模型元素,可以在指定的包(包括嵌套在該包中的子包)中被引用,相有的模型元素,可以在指定的包(包括嵌套在該包中的子包)中被引用,相當(dāng)于把提供者包的內(nèi)容附加到客戶包的當(dāng)于把提供者包的內(nèi)容附加到客戶包的私有私有命名空間中,而不必對名稱進(jìn)行命
16、名空間中,而不必對名稱進(jìn)行限制。限制。 把訪問依賴?yán)L制成帶有箭頭的虛線,其上標(biāo)有串把訪問依賴?yán)L制成帶有箭頭的虛線,其上標(biāo)有串。 包間的泛化關(guān)系與類間的泛化很類似,即特殊包可以繼承一般包中的可包間的泛化關(guān)系與類間的泛化很類似,即特殊包可以繼承一般包中的可見性為公共的或受保護(hù)的元素,而且在特殊包中還可以有自己的元素,自己見性為公共的或受保護(hù)的元素,而且在特殊包中還可以有自己的元素,自己的元素可以覆蓋繼承來的元素。的元素可以覆蓋繼承來的元素。 Server-Database-LoggingServiceClient+OrderForm+TrackingForm-OrderPolicies+Order
17、RulesGUI+Window+Form#EventHandlerPolicies顯式地引入包GUI。因此,對于類GUI:Window和類GUI:Form,包Policies的內(nèi)容使用簡單名Window 和Form 就能訪問它們。然而,由于GUI:EventHandler 是受保護(hù)的,因此它是不可見的。由于包Server 沒有引入GUI,Server 中的內(nèi)容必須用限定名才能訪問GUI的公共內(nèi)容,例如,GUI:Window。類似地,由于Server中的內(nèi)容是私有的,GUI的內(nèi)容無權(quán)訪問Server中的任何內(nèi)容,即使用限定名也不能訪問它們。引入和訪問依賴是傳遞的。在本例中,Client引入Pol
18、icies,Policies引入GUI,所以Client就傳遞地引入了GUI。因此,Client的內(nèi)容可以訪問Policies的引出,同樣可以訪問GUI的引出。如果Policies訪問GUI,而不是引入它,Client則不能把GUI中的元素添加到自己的命名空間,但是仍然能通過限定名(如GUI:Window)引用它們。importimport嵌套的包之間也存在著可見性問題:1)里層的包中的元素能夠訪問其外層包中定義的可見性為公共的元素,也能訪問其外層包通過訪問或引入依賴而得來的元素。2)一個包要訪問它的內(nèi)部包的元素,就有與內(nèi)部包有引入、訪問關(guān)系或使用限定名。3)里層包中的元素的名字會掩蓋外層包中的同名元素的名字,在這種情況需要用限定名引用外層包中的同名元素。識別低層包識別低層包每個具有泛化關(guān)系或聚合關(guān)系的元素位于一個包每個具有泛化關(guān)系或聚合關(guān)系的元素位于一個包關(guān)聯(lián)密集的類劃分到一個包關(guān)聯(lián)密集的類劃分到一個包獨(dú)立的類暫時作為一個包獨(dú)立的類暫時作為一個包合并或組織合并或組織包包 如果低層包數(shù)量過多,則把它們合并,或用高層包組織它們。如果低層包數(shù)量過多,則把它們合并
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人轉(zhuǎn)讓正規(guī)合同范本
- 農(nóng)村果園銷售合同范本
- 2025年羔羊肉磚行業(yè)深度研究分析報告
- 2025年政府企業(yè)內(nèi)部網(wǎng)絡(luò)系統(tǒng)行業(yè)深度研究分析報告
- 2025年四川省地區(qū)運(yùn)輸主管職位薪酬調(diào)查報告
- 中國商用車變速器行業(yè)市場調(diào)查研究及投資前景預(yù)測報告
- 2025-2030年中國乳豬顆粒濃縮料行業(yè)深度研究分析報告
- 2024-2030年中國觀光旅游行業(yè)發(fā)展運(yùn)行現(xiàn)狀及投資戰(zhàn)略規(guī)劃報告
- 智能產(chǎn)業(yè)園項(xiàng)目可行性研究報告
- 2025年遙控鼠標(biāo)連接線行業(yè)深度研究分析報告
- 常用橋牌詞語(中英文對照)
- 小升初、小學(xué)生滿分優(yōu)秀作文匯編100篇
- 次聲波在臨床醫(yī)學(xué)及麻醉中的作用 次聲波在臨床麻醉中的作用
- 加盟招商方案PPT模板
- 中石油HSE培訓(xùn)試題集(共33頁)
- 2022年云南省中考數(shù)學(xué)試題及答案解析
- TS16949五大工具:SPC
- 五年級下冊-綜合實(shí)踐教案
- 貴州出版社小學(xué)五年級下冊綜合實(shí)踐活動教案全冊
- [方案]隱框玻璃幕墻施工方案
- 設(shè)備安裝檢驗(yàn)批表格
評論
0/150
提交評論