解析UML包圖的目的和準(zhǔn)則
本文和大家重點討論一下UML包圖的概念,包的符號是文件夾的樣子,可以應(yīng)用于任何UML圖中。任何圖中如果只包含包(以及包之間的依賴),都可以看作是UML包圖。
UML包圖
UML包圖中描繪兩個或更多的包以及這些包之間的依賴關(guān)系。包是UML中的一種結(jié)構(gòu),用來將各種建模元素(如用例或者類)分組組織起來。包的符號是文件夾的樣子,可以應(yīng)用于任何UML圖中。任何圖中如果只包含包(以及包之間的依賴),都可以看作是UML包圖。UML包圖實際上是UML2中的一個新概念,在UML1中一直是非正式的部分,過去被稱為UML包圖的東西實際上通常是僅僅包含包的UML類圖或UML用例圖。創(chuàng)建UML包圖的目的在于:
◆給出需求的高層概覽視圖。
◆給出設(shè)計的高層概覽視圖。
◆將一個復(fù)雜圖形從邏輯上模塊化組織。
◆組織源代碼。
◆對框架建模(Evitts2000)。
類的UML包圖準(zhǔn)則
◆使用類的UML包圖從邏輯上對設(shè)計進(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ìn)行組織
如果你希望使用基于組件的方法來進(jìn)行設(shè)計,就像EJB和VisualBasic所倡導(dǎo)的開發(fā)方法那樣,那么***使用UML組件圖來組織你的設(shè)計,而不是使用UMLUML包圖。第11章中給出了一個對應(yīng)圖28的UML組件圖版本,它更適用于對物理設(shè)計的組織。
始終牢記敏捷建模(見第17章)的實踐:使用正確的工件。
圖28 一個組織類的UML包圖
◆把繼承包放在基包的下面
圖28中描繪了包之間的繼承,可以看到,繼承的包放在基包的下方。這一點和其他繼承準(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)行分層組織。
【編輯推薦】