第5章 包圖1_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、,什么是包如何閱讀包圖如何繪制包圖包圖應用說明本章小結,Agenda,什么是包如何閱讀包圖如何繪制包圖包圖應用說明本章小結,什么是包,在面向對象軟件開發(fā)的視角中,類顯然是構建整個系統的基本構造塊。但是對于龐大的應用系統而言,其包含的類將是成百上千,再加上其間“阡陌交縱”的關聯關系、多重性等,必然是大大超出了人們可以處理的復雜度。這也就是引入了“包”這種分組事物構造塊。包的作用是:1)對語義上相關的元素進行分組;2)

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

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

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

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

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

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

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

10、。系統使用一個帶有構造型“system”的包表示,在Rational Rose 2003中,內部支持的二種系統。,,子系統是有單獨的說明和實現部分的包。它表示具有對系統其他部分存在干凈接口的連貫模型單元。通常按照一定的功能要求或實現要求對系統進行操作。子系統使用具有構造型關鍵字subsystem的包表示。,包圖的基本概念,4. 包的嵌套包可以擁有其他包作為包內的元素,子包又可以擁有自己的子包,這樣可以構成一個系統的嵌套結構,以表

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

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

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

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

15、dowsGUI,一個是實現B/S的WebGUI。,包的構造型,《system》和《subsystem》構造型:《system》構造型的包表示正在建模的整個系統,而《subsystem》構造型的包則表示正在建模的系統中某個獨立的部分 《facade》構造型:只是某個其它包的視圖,它主要用來為其它一些復雜的包提供簡略視圖 《stub》構造型:是一個代理包,它服務于某個其他包的公共內容,這通常應用于分布式系統的建模中 《framewor

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論