資源描述:
《ch11UML包圖及對象》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第11講包圖及對象圖在windows中文件夾有什么作用?對文件進行分類管理避免了命名沖突一、包的作用一個程序往往包含了很多個類,那么如何管理這些類就成了一個需要解決的問題(分組機制)這些類可能由不同的程序員進行建立,當(dāng)把這些類合并成一個大系統(tǒng)時,往往會產(chǎn)生命名沖突(類名沖突)包的兩個作用:分組機制,命名空間。Java:包(package)C#:命名空間(namespace)C#中引入命名空間:using命名空間名;C#中定義命名空間:namespace命名空間名{……}usingSystem;usingSystem.Collections.Gene
2、ric;usingSystem.Text;namespacescoreA{classA{……}classB{……}classC{……}}引入包定義包11.1包圖的概念11.2包的表示11.3包圖中的關(guān)系11.4閱讀包圖11.5創(chuàng)建包圖11.6包圖建模11.1包圖的概念模型的組織結(jié)構(gòu)系統(tǒng)的三層結(jié)構(gòu)先分層再細分成包的方式用戶界面代表與用戶進行交互的界面業(yè)務(wù)邏輯層用來處理系統(tǒng)的業(yè)務(wù)流程數(shù)據(jù)訪問層是程序中和數(shù)據(jù)庫進行交互的層11.1包圖的概念對復(fù)雜系統(tǒng)進行建模時,經(jīng)常需要處理大量的類、接口、組件、節(jié)點和圖,有必要將這些元素進行分組,就是把語義相近并傾向于一
3、起變化的元素組織起來加入同一包,這樣方便理解和處理整個模型,而且也便于輕松地控制這些元素的可見性,使一些元素在包外可見,一些元素隱藏在包內(nèi)。11.1包圖的概念1.包圖包圖是描述包與包之間關(guān)系的圖。包圖可以包括注釋、約束。包間的關(guān)系有依賴關(guān)系和泛化關(guān)系。包圖11.1包圖的概念2.包圖的作用1)對語義上相關(guān)的元素進行分組。2)提供配置管理單元。3)在設(shè)計時,提供并行工作的單元。4)提供封裝的命名空間。3.包圖中的元素在包中可以擁有各種其他元素,包括類、接口、構(gòu)件、節(jié)點、協(xié)作、用例,甚至是其它子包或圖。一個元素只能屬于一個包。11.2包的表示UML中,用
4、文件夾符號來表示一個包,它包含2欄。PageNamePageNameClassName-1ClassName-2…..PageName類名Rose常用表示法包名放在第一欄在第二欄畫出所包含的類圖形表示第二欄列出包含的類名包名放在第二欄System:WebUIclass嵌套包包的表示法11.2包的表示包的名稱UISystem:Web:UI簡單名含路徑名(全名)每個包必須有一個與其他包相區(qū)別的名稱。標(biāo)識包名稱的格式有兩種:簡單名和全名。簡單名:僅包含一個包的簡單名稱;全名:用該包的外圍包的名字作為前綴,加上包本身的名字。11.2包的表示2.包的元素在一
5、個包中可以擁有各種元素,包括類、接口、構(gòu)件、節(jié)點、協(xié)作、用例,甚至是其他包或圖。這是一種組成關(guān)系,意味著元素是在這個包中聲明的,一個元素只能屬于一個包。每一個包就意味著一個獨立的命名空間,兩個不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。在包中表示擁有的元素時,有兩種方法:一是在第二欄中列出所屬元素名,二是在第二欄中畫出所屬元素的圖形表示。11.2包的表示3.包的可見性像類中的屬性和方法一樣,包中的元素也有可見性,包內(nèi)元素的可見性控制了包外部元素訪問包內(nèi)部元素的權(quán)限。包A中元素的可見性包B中元素的訪問權(quán)限+若B引用
6、了A,則B中的任何元素可以訪問A中可見性是+的元素#若B繼承了A,則B中的任何元素可以訪問A中可見性是#的元素-可見性是-的元素,只能被同一個包中的其它元素訪問可見性與訪問權(quán)限(假設(shè)包B中的元素訪問包A中的元素)Public(+):可在其他任何包中使用Private(-):只能在該包中使用Protected(#):可以在該包和該包的子包中使用11.2包的表示包內(nèi)元素的可見性,標(biāo)識了外部元素訪問包內(nèi)元素的權(quán)限。包元素的可見性11.2包的構(gòu)造型構(gòu)造型用途虛包(fa?ade)描述一個只引用其他包內(nèi)元素的包框架(framework)描述一個主要由模式組成的
7、包樁(stub)描述一個作為另一個包的公共內(nèi)容代理的包子系統(tǒng)(subsystem)描述一個表示正在建模中的整個系統(tǒng)的一個獨立部分的包系統(tǒng)(system)描述一個表示正在建模中的整個系統(tǒng)的包11.3包圖中的關(guān)系包圖中的關(guān)系包括依賴關(guān)系和泛化關(guān)系。1依賴關(guān)系依賴關(guān)系又可以分為4種。在依賴關(guān)系中,我們把箭尾端的包稱為客戶包,把箭頭端的包稱為提供者包。1)《use》關(guān)系《use》關(guān)系是一種默認(rèn)的依賴關(guān)系,說明客戶包(箭尾端的包)中的元素以某種方式使用提供者包(箭頭端的包)的公共元素,也就是說客戶包依賴于提供者包。如果沒有指明依賴類型,則默認(rèn)為《use》關(guān)系
8、。2)《import》關(guān)系:允許一個包中的元素可以單向訪問另一包中的元素《import》關(guān)系是最普遍的包依賴類型,說明提供