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