詳解類和用例的UML包圖應用
本文和打擊重點討論一下UML包圖的概念,一個"UML包圖"可以是任何一種的UML圖組成,通常是UML用例圖或UML類圖。包是一個UML結構,它使得你能夠把諸如用例或類之類模型元件組織為組。
UML包圖簡介
UML包圖是在UML中用類似于文件夾的符號表示的模型元素的組合。系統(tǒng)中的每個元素都只能為一個包所有,一個包可嵌套在另一個包中。使用UML包圖可以將相關元素歸入一個系統(tǒng)。一個包中可包含附屬包、圖表或單個元素。
一個"UML包圖"可以是任何一種的UML圖組成,通常是UML用例圖或UML類圖。包是一個UML結構,它使得你能夠把諸如用例或類之類模型元件組織為組。包被描述成文件夾,可以應用在任何一種UML圖上。雖然UML包圖并非是正式的UML圖,但實際上他們是很有用處的,創(chuàng)建一個UML包圖是為了∶
◆描述你的需求高階概述。
◆描述你的設計的高階概述。
◆在邏輯上把一個復雜的圖模塊化。
◆組織Java源代碼。
一、類UML包圖
1.創(chuàng)建類UML包圖,以在邏輯上組織你的設計
??圖1描述了一個組織成包的UML類圖。除了以下介紹的包原則之外,應用下列的規(guī)則來把UML類圖組織到UML包圖里:
把一個框架的所有類放置在相同的包中。一般把相同繼承層次的類放在相同的包中。彼此間有聚合或組合關系的類通常放在相同的包中。彼此合作頻繁的類,信息能夠通過UML順序圖和UML合作圖反映出來的類,通常放在相同的包中。
圖1.一個類UML包圖。
2.創(chuàng)建UML組件圖,以在物理上組織你的設計。
??如果你的組件比較接近技術,例如那些通過EnterpriseJavaBeans(EJB)或VisualBasic的組件,你應該優(yōu)先選擇UML組件圖來描述物理設計,而不是UML包圖。圖1的版本源自于組件圖章節(jié)中。就像你看到的,這個圖最適用于物理設計。永遠記住遵循敏捷建模(AM)(Ambler2002)的實踐--應用合適的Artifact,為工作挑選***的模型。
3.把子包放置在母包的下面。
??圖1描述了包間的繼承,你可以看到,繼承的包顯示在母包支下。這和UML類圖中的在超類下面放置子類的指南是一致的。
4.垂直地分層類UML包圖。
??包間的依賴表明,從屬的包的內容依賴于另一個包的內容,或結構上依賴于其它包的內容。在圖1中你可以看到圖中的??類交互,領域類又使用基礎結構類,基礎結構類訪問數(shù)據(jù)庫。傳統(tǒng)的,這種分層的順序是以從上到下的方式描述的。#p#
二、用例UML包圖
??用例通常是面向對象開發(fā)方法學中的最主要的需求artifact,當你的方法是統(tǒng)一過程(Kruchten2000;Ambler2000)實例是尤其如此。而且對于大的項目UML包圖來說,通常是創(chuàng)建用來組織使用需求的。
1.創(chuàng)建用例UML包圖,以組織你的需求
??除了以下介紹的包原則之外,應用下列的規(guī)則來把UML用例圖組織到UML包圖里:
??把關聯(lián)的用例放在一起∶included、extending、和inheriting的用例放在相同的包中,就像base/parent用例一樣。
??組織用例應該以主要主角的需要為基礎。例如,在圖2中,Enrollment包包含與登記班級的學生有關的用例,一個大學提供的重要服務集合。
圖2.一個包含主要的包的UML用例UML包圖。
2.在用例UML包圖上包含角色
??圖2包含UML包圖上的角色,這有助于把包放在上下文中理解,這樣UML包圖就會更容易為讀者所理解。
3.水平地排列用例UML包圖
??用例UML包圖的主要受眾是項目干系人。因此圖的組織應該能夠反映他們的需求。圖2中的包是水平放置的,從左到右畫出的依賴關系反映了西方文化的閱讀習慣。
【編輯推薦】