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