解析UML包圖的目的和準(zhǔn)則
本文和大家重點(diǎn)討論一下UML包圖的概念,包的符號(hào)是文件夾的樣子,可以應(yīng)用于任何UML圖中。任何圖中如果只包含包(以及包之間的依賴),都可以看作是UML包圖。
UML包圖
UML包圖中描繪兩個(gè)或更多的包以及這些包之間的依賴關(guān)系。包是UML中的一種結(jié)構(gòu),用來(lái)將各種建模元素(如用例或者類)分組組織起來(lái)。包的符號(hào)是文件夾的樣子,可以應(yīng)用于任何UML圖中。任何圖中如果只包含包(以及包之間的依賴),都可以看作是UML包圖。UML包圖實(shí)際上是UML2中的一個(gè)新概念,在UML1中一直是非正式的部分,過(guò)去被稱為UML包圖的東西實(shí)際上通常是僅僅包含包的UML類圖或UML用例圖。創(chuàng)建UML包圖的目的在于:
◆給出需求的高層概覽視圖。
◆給出設(shè)計(jì)的高層概覽視圖。
◆將一個(gè)復(fù)雜圖形從邏輯上模塊化組織。
◆組織源代碼。
◆對(duì)框架建模(Evitts2000)。
類的UML包圖準(zhǔn)則
◆使用類的UML包圖從邏輯上對(duì)設(shè)計(jì)進(jìn)行組織
圖28給出了一個(gè)組織相關(guān)類的集合的UMLUML包圖。本章后面內(nèi)容中還會(huì)給出的各種準(zhǔn)則,現(xiàn)在可以使用以下啟發(fā)性準(zhǔn)則來(lái)將類組織為包。
一個(gè)框架內(nèi)的類屬于一個(gè)包。
一般位于同一繼承層次上的類也屬于同一個(gè)包。
通過(guò)聚合或者組合關(guān)系相關(guān)聯(lián)的類往往屬于同一個(gè)包。
相互之間協(xié)作很多的類通常屬于同一個(gè)包。
◆使用UML組件圖從物理上對(duì)設(shè)計(jì)進(jìn)行組織
如果你希望使用基于組件的方法來(lái)進(jìn)行設(shè)計(jì),就像EJB和VisualBasic所倡導(dǎo)的開(kāi)發(fā)方法那樣,那么***使用UML組件圖來(lái)組織你的設(shè)計(jì),而不是使用UMLUML包圖。第11章中給出了一個(gè)對(duì)應(yīng)圖28的UML組件圖版本,它更適用于對(duì)物理設(shè)計(jì)的組織。
始終牢記敏捷建模(見(jiàn)第17章)的實(shí)踐:使用正確的工件。
圖28 一個(gè)組織類的UML包圖
◆把繼承包放在基包的下面
圖28中描繪了包之間的繼承,可以看到,繼承的包放在基包的下方。這一點(diǎn)和其他繼承準(zhǔn)則是一致的。
◆在垂直方向上分層組織類的UML包圖
包之間的依賴表示這些依賴的包在內(nèi)容上相互依賴,或者一個(gè)包需要了解其他包的結(jié)構(gòu)方面的知識(shí)。如圖28所示,圖中的包反映了系統(tǒng)架構(gòu)的邏輯分層。用戶界面類和領(lǐng)域類交互;領(lǐng)域類又會(huì)用到基礎(chǔ)結(jié)構(gòu)類;部分基礎(chǔ)結(jié)構(gòu)類會(huì)訪問(wèn)數(shù)據(jù)庫(kù)。通常,都采取自上而下的方式對(duì)這種情況進(jìn)行分層組織。
【編輯推薦】
- 九步實(shí)現(xiàn)UML包圖創(chuàng)建
- UML建模風(fēng)格之UML包圖
- UML包圖中的包引入和包合并
- UML包圖概念及常見(jiàn)問(wèn)題解析
- UML建模中繪制UML用例圖行之有效的辦法