2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、包圖,在UML建模機(jī)制中,模型的組織是通過(guò)包(package)來(lái)實(shí)現(xiàn)的。包可以把建立的各種模型(包括靜態(tài)模型和動(dòng)態(tài)模型)組織起來(lái),形成各種功能和用途的模塊并可以控制包中元素的可見(jiàn)性以及描述包之間的依賴關(guān)系。通過(guò)這種方式系統(tǒng)模型的實(shí)現(xiàn)者能夠在高層(按照模塊的方式)把握系統(tǒng)的結(jié)構(gòu)。包圖是一種維護(hù)和描述系統(tǒng)總體結(jié)構(gòu)模型的重要建模工具,通過(guò)對(duì)圖中各個(gè)包以及包之間關(guān)系的描述,展現(xiàn)出系統(tǒng)的模塊與模塊之間的依賴關(guān)系。,知識(shí)圖譜,,Agenda

2、,什么是包如何閱讀包圖如何繪制包圖包圖應(yīng)用說(shuō)明本章小結(jié),Agenda,什么是包如何閱讀包圖如何繪制包圖包圖應(yīng)用說(shuō)明本章小結(jié),什么是包,在面向?qū)ο筌浖_(kāi)發(fā)的視角中,類顯然是構(gòu)建整個(gè)系統(tǒng)的基本構(gòu)造塊。但是對(duì)于龐大的應(yīng)用系統(tǒng)而言,其包含的類將是成百上千,再加上其間“阡陌交縱”的關(guān)聯(lián)關(guān)系、多重性等,必然是大大超出了人們可以處理的復(fù)雜度。這也就是引入了“包”這種分組事物構(gòu)造塊。包的作用是:1)對(duì)語(yǔ)義上相關(guān)的元素進(jìn)行分組;2)

3、定義模型中的“語(yǔ)義邊界”;3)提供配置管理單元;4)在設(shè)計(jì)時(shí),提供并行工作的單元;5)提供封裝的命名空間,其中所有名稱必須惟一,包的表示法,名稱:每個(gè)包都必須有一個(gè)與其它包相區(qū)別的名稱 擁有的元素:在包中可以擁有各種其它元素,包括類、接口、構(gòu)件、節(jié)點(diǎn)、協(xié)作、用例,甚至是其它包或圖,5.2 包的表示,UML中,用文件夾符號(hào)來(lái)表示一個(gè)包。包由一個(gè)矩形表示,它包含2欄。下面是最常見(jiàn)的幾種包的表示法,如圖5-2所示,圖5-2 包的表示

4、法,5.2 包的表示,5.2.1 包的名稱每個(gè)包必須有一個(gè)與其他包相區(qū)別的名稱。標(biāo)識(shí)包名稱的格式有兩種:簡(jiǎn)單名和全名。其中,簡(jiǎn)單名僅包含包一個(gè)簡(jiǎn)單的名稱;全名是用該包的外圍包的名字作為前綴,加上包本身的名字。例如,Rose常用表示方法中,其包名UI就是一個(gè)簡(jiǎn)單名。而包System.Web.UI才是一個(gè)完整帶路徑的名稱,表示UI這個(gè)包是位于System.Web命名空間中的。如圖5-3所示。,圖5-3 包,包的表示,包的元素在

5、一個(gè)包中可以擁有各種其他元素,包括類、接口、構(gòu)件、節(jié)點(diǎn)、協(xié)作、用例,甚至是其他包或圖。這是一種組成關(guān)系,意味著元素是在這個(gè)包中聲明的,因此一個(gè)元素只能屬于一個(gè)包。每一個(gè)包就意味著一個(gè)獨(dú)立的命名空間,因此,兩個(gè)不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。在包中表?yè)碛械脑貢r(shí),有兩種方法:一種是在第二欄中列出所屬元素名,一種是在第二欄中畫出所屬元素的圖形表示(參見(jiàn)圖5-2)。,包之間的依賴關(guān)系,包圖的

6、基本概念,包對(duì)自身所包含的內(nèi)部元素的可見(jiàn)性也有定義,使用關(guān)鍵字private、protected或public來(lái)表示。private定義的私有元素對(duì)包外部元素完全不可見(jiàn);protected定義的被保護(hù)的元素只對(duì)那些與包含這些元素的包有泛化關(guān)系的包可見(jiàn);public定義的公共元素對(duì)所有引入的包以及它們的后代都可見(jiàn)。,可見(jiàn)性,通常,一個(gè)包不能訪問(wèn)另一個(gè)包的內(nèi)容。包是不透明的,除非它們被訪問(wèn)或引入依賴關(guān)系才能打開(kāi)。訪問(wèn)依賴關(guān)系直接應(yīng)用到包

7、或其它容器中。在包中,訪問(wèn)依賴元素表示提供者包的內(nèi)容可被客戶包中的子包所引用。提供者中的元素在它的包中要有足夠的可見(jiàn)性,使得客戶可以看到它。,可見(jiàn)性,通常一個(gè)包只能看到其他包中被指定為具有公共可見(jiàn)性的元素。具有受保護(hù)可見(jiàn)性的元素只對(duì)包含它的包的后代包具有可見(jiàn)性。對(duì)于引用一個(gè)元素而言,訪問(wèn)許可和正確的可見(jiàn)性都是必須的,所以如果一個(gè)包中的元素要看到不相關(guān)的另一個(gè)包中的元素,則第一個(gè)包必須訪問(wèn)或引用第二個(gè)包,且目標(biāo)元素在第二個(gè)包中必須

8、有公共可見(jiàn)性。要引用包中的內(nèi)容,可使用PackageName::PackageElement的形式,稱為全限定名(Fully Qualified Name),包圖的基本概念,3 . 包的構(gòu)造型和子系統(tǒng)包也有不同的構(gòu)造型,表現(xiàn)為不同的特殊類型的包,如模型、子系統(tǒng)和系統(tǒng)等。在Rational Rose 2003中,創(chuàng)建包時(shí),不僅可以使用內(nèi)部支持的一些構(gòu)造型,也可以自己創(chuàng)建一些構(gòu)造型。用戶自定義的構(gòu)造型也可標(biāo)記為關(guān)鍵字,但是不能與UM

9、L預(yù)定義的關(guān)鍵字相沖突。Rational Rose 2003支持四種包的構(gòu)造型。,,第一種 ,業(yè)務(wù)分析模型包:,,第二種 ,業(yè)務(wù)設(shè)計(jì)包:,包圖的基本概念,第三種 ,業(yè)務(wù)用例模型包:,,第四種 CORBAModule包:,包圖的基本概念,3. 包的構(gòu)造型和子系統(tǒng)系統(tǒng)是組織起來(lái)以完成一定目的的連接單元的集合,由一個(gè)高級(jí)子系統(tǒng)建模,該子系統(tǒng)間接包含共同完成現(xiàn)實(shí)世界目的的模型元素的集合。一個(gè)系統(tǒng)通??梢杂靡粋€(gè)或多個(gè)視點(diǎn)不同的模型描述

10、。系統(tǒng)使用一個(gè)帶有構(gòu)造型“system”的包表示,在Rational Rose 2003中,內(nèi)部支持的二種系統(tǒng)。,,子系統(tǒng)是有單獨(dú)的說(shuō)明和實(shí)現(xiàn)部分的包。它表示具有對(duì)系統(tǒng)其他部分存在干凈接口的連貫?zāi)P蛦卧?。通常按照一定的功能要求或?qū)崿F(xiàn)要求對(duì)系統(tǒng)進(jìn)行操作。子系統(tǒng)使用具有構(gòu)造型關(guān)鍵字subsystem的包表示。,包圖的基本概念,4. 包的嵌套包可以擁有其他包作為包內(nèi)的元素,子包又可以擁有自己的子包,這樣可以構(gòu)成一個(gè)系統(tǒng)的嵌套結(jié)構(gòu),以表

11、達(dá)系統(tǒng)模型元素的靜態(tài)結(jié)構(gòu)關(guān)系。包的嵌套可以清晰的表現(xiàn)系統(tǒng)模型元素之間的關(guān)系,但是在建立模型時(shí)包的嵌套不宜過(guò)深,包的嵌套的層數(shù)一般以2到3層為宜。,,包圖的基本概念,5. 包的聯(lián)系包之間的關(guān)系總的來(lái)講可以概括為依賴關(guān)系和泛化。二個(gè)包之間存在著依賴關(guān)系通常是指這二個(gè)包所包含的模型元素之間存在著一個(gè)和多個(gè)依賴。對(duì)于由對(duì)象類組成的包,如果二個(gè)包的任何對(duì)象類之間存在著如何一種依賴,則這二個(gè)包之間就存在著依賴。包的依賴聯(lián)系同樣是使用一根虛箭線

12、表示,虛箭線從依賴源指向獨(dú)立目的包。,包的聯(lián)系,Agenda,什么是包如何閱讀包圖如何繪制包圖包圖應(yīng)用說(shuō)明本章小結(jié),閱讀包圖,包的依賴關(guān)系,《use》關(guān)系:是一種默認(rèn)的依賴關(guān)系 ,說(shuō)明客戶包(發(fā)出者)中的元素以某種方式使用提供者包(箭頭指向的包)的公共元素,也就是說(shuō)客戶包依賴于提供者包 《import》關(guān)系:最普遍的包依賴類型,說(shuō)明提供者包的命名空間將被添加到客戶包的命名空間中,客戶包中的元素也能夠訪問(wèn)提供者包的所有公共元素

13、《access》關(guān)系:只想使用提供者包中的元素,而不想將其命名空間合并則應(yīng)使用該關(guān)系《trace》關(guān)系:想表示一個(gè)包到另一個(gè)包的歷史發(fā)展,則需要使用《trace》關(guān)系來(lái)表示,包圖閱讀的結(jié)果,首先根據(jù)《use》關(guān)系,可以發(fā)現(xiàn)Client包使用Server包,Server包使用System.Data.SqlClient包,結(jié)合其元素,不難得知Client負(fù)責(zé)Order(訂單)的輸入,并通過(guò)Server來(lái)管理用戶的登錄(LoggingSe

14、rvice)和數(shù)據(jù)庫(kù)存儲(chǔ)(DataBase),而Server包還將通過(guò).NET的SQL Server訪問(wèn)工具包來(lái)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的實(shí)際交互。接著再看兩個(gè)《import》,從包的命名和其所屬的元素不難發(fā)現(xiàn)Rule負(fù)責(zé)處理一些規(guī)則,并引用一個(gè)具體的窗體(Window),而Client包則通過(guò)引用Rule來(lái)實(shí)現(xiàn)整個(gè)窗體和表單的顯示、輸入等。并且還將暫存Order(訂單)信息。最后來(lái)看包的泛化關(guān)系,GUI有兩個(gè)具體實(shí)現(xiàn),一個(gè)是針對(duì)C/S的Win

15、dowsGUI,一個(gè)是實(shí)現(xiàn)B/S的WebGUI。,包的構(gòu)造型,《system》和《subsystem》構(gòu)造型:《system》構(gòu)造型的包表示正在建模的整個(gè)系統(tǒng),而《subsystem》構(gòu)造型的包則表示正在建模的系統(tǒng)中某個(gè)獨(dú)立的部分 《facade》構(gòu)造型:只是某個(gè)其它包的視圖,它主要用來(lái)為其它一些復(fù)雜的包提供簡(jiǎn)略視圖 《stub》構(gòu)造型:是一個(gè)代理包,它服務(wù)于某個(gè)其他包的公共內(nèi)容,這通常應(yīng)用于分布式系統(tǒng)的建模中 《framewor

16、k》構(gòu)造型:用來(lái)表示一個(gè)框架的,框架是一個(gè)領(lǐng)域內(nèi)的應(yīng)用系統(tǒng)提供可擴(kuò)充模板的體系結(jié)構(gòu)模式,Agenda,什么是包如何閱讀包圖如何繪制包圖包圖應(yīng)用說(shuō)明本章小結(jié),使用Rose創(chuàng)建包圖,1. 創(chuàng)建刪除包圖(1)通過(guò)工具欄或菜單欄添加包的步驟如下: 在類圖的圖形編輯工具欄中,選擇用于創(chuàng)建包的按鈕,或者在菜單欄中,選擇“Tools”(工具)中“Create”(新建)菜單下的“Package”選項(xiàng)。此時(shí)的光標(biāo)變?yōu)椤?”符號(hào)。(2)單

17、擊類圖的任意一個(gè)空白處,系統(tǒng)在該位置創(chuàng)建一個(gè)包圖,系統(tǒng)產(chǎn)生的默認(rèn)名稱為“NewPackage”。(3)將“NewPackage”重新命名成新的名稱即可。,,使用Rose創(chuàng)建包圖,2. 添加包中的信息(1) 選中“PackageA”包的圖標(biāo),單擊右鍵,在菜單選項(xiàng)中選擇“Select Compartment Items ...”選項(xiàng)。(2)在彈出對(duì)話框的左側(cè),顯示了在該包目錄下的所有的類,選中類,通過(guò)中間的按鈕將“ClassA”和“C

18、lassB”添加到右側(cè)的框中。(3)添加完畢以后,點(diǎn)擊“OK”按鈕即可。,使用Rose創(chuàng)建包圖,3. 創(chuàng)建包的依賴關(guān)系包和包之間與類和類之間一樣,也可以有依賴關(guān)系,并且包的依賴關(guān)系也和類的依賴關(guān)系的表示形式一樣,使用依賴關(guān)系的圖標(biāo)進(jìn)行表示。,包圖繪制原則,最小化包之間的依賴,最小化每個(gè)包中的public、protected元素的個(gè)數(shù),最大化每個(gè)包中private元素個(gè)數(shù) 在建模時(shí)應(yīng)該避免包之間的循環(huán)依賴,也就是不能夠包含相互依賴的

19、情況,對(duì)于這種情況應(yīng)進(jìn)行分析:,尋找包,分析系統(tǒng)工作流程:1)通過(guò)Internet連接到股票信息服務(wù)器,獲取實(shí)時(shí)的股票信息,并存入數(shù)據(jù)庫(kù)中。2)根據(jù)用戶的輸入和選擇,從數(shù)據(jù)庫(kù)中獲取相應(yīng)的信息,展現(xiàn)在屏幕中。3)在數(shù)據(jù)的展現(xiàn)過(guò)程中,將需要繪制大量的圖表 根據(jù)功能模塊組織包:,確定包與包之間的依賴關(guān)系,Agenda,什么是包如何閱讀包圖如何繪制包圖包圖應(yīng)用說(shuō)明本章小結(jié),對(duì)成組元素建模,每個(gè)包都應(yīng)該是在概念、語(yǔ)義上相互接近的元

20、素組成;對(duì)每個(gè)包找出應(yīng)標(biāo)記為公共的元素,但應(yīng)盡可能地少;一般使用默認(rèn)的《use》構(gòu)造型,在映射到編程時(shí)考慮明確《import》構(gòu)造型;考慮采用泛化來(lái)對(duì)特殊包進(jìn)行建模。在表示這種模型時(shí),注意只標(biāo)明對(duì)每個(gè)包都起核心作用的元素;另外也可以標(biāo)識(shí)每個(gè)包的文檔標(biāo)記值,以使其更加清晰,對(duì)體系結(jié)構(gòu)建模,對(duì)體系結(jié)構(gòu)進(jìn)行建模,是包圖更有意義的一個(gè)用途。體系結(jié)構(gòu)是一個(gè)軟件系統(tǒng)的核心邏輯結(jié)構(gòu) 常用的體系結(jié)構(gòu)模式包括分層、MVC、管道、黑板、微內(nèi)

21、核等,而在應(yīng)用軟件中,分層和MVC,在項(xiàng)目中使用包圖,1. 確立包圖的分類分析學(xué)生信息管理系統(tǒng),我們采用MVC架構(gòu)進(jìn)行包的劃分??梢栽谶壿嬕晥D下確定三個(gè)包,分別為模型包、視圖包和控制包。模型包是對(duì)系統(tǒng)應(yīng)用功能的抽象,在包中的各個(gè)類封裝了系統(tǒng)的狀態(tài)。視圖包是對(duì)系統(tǒng)數(shù)據(jù)表達(dá)的抽象,在包中的各個(gè)類對(duì)用戶的數(shù)據(jù)進(jìn)行表達(dá),并維護(hù)與模型中的各個(gè)類數(shù)據(jù)的一致性??刂瓢菍?duì)用戶與系統(tǒng)交互事件的抽象,它把用戶的操作編程系統(tǒng)的事件,根據(jù)用戶的操

22、作和系統(tǒng)的上下文調(diào)用不同的數(shù)據(jù)。,在項(xiàng)目中使用包圖,2. 創(chuàng)建包和關(guān)系,Agenda,什么是包如何閱讀包圖如何繪制包圖包圖應(yīng)用說(shuō)明本章小結(jié),本章小結(jié),首先指出了類圖在大型系統(tǒng)的建模中的不足:缺少有效的組織,然后引入了“包”的概念 解釋了包的幾種常見(jiàn)的表示法之后,通過(guò)了一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明包的可見(jiàn)性、依賴關(guān)系、泛化等概念 簡(jiǎn)要地說(shuō)明了五種包的構(gòu)造型 說(shuō)明如何尋找包、確定包之間的依賴關(guān)系,從而繪制了出一個(gè)表明軟件基本結(jié)構(gòu)的包圖

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論