不僅是類,任何模型元素都運用包的機制。如果沒有任何啟發性原則來指導類的分組,分組方法就是任意的。在UML中,最有用的和強調最多的啟發性原則就是依賴。包圖主要顯示類的包以及這些包之間的依賴關系。有時還顯示包和包之間的繼承關系和組成關系。
包的內容 在圖5中,"系統內部"包由"保險單"包和"客戶"包組成。這里稱"保險單"包和"客戶"包為"系統內部"包的內容。當不需要顯示包的內容時,包的名字放入主方框內,否則包的名字放入左上角的小方框中,而將內容放入主方框內。包的內容可以是類的列表,也可以是另一個包圖,還可以是一個類圖。
包的依賴和繼承 圖5中"保險單填寫界面"包依賴于"保險單"包;整個"系統內部"包依賴于"數據庫界面"包?梢允褂美^承中通用和特例的概念來說明通用包和專用包之間的關系。例如,專用包必須符合通用包的界面,與類繼承關系類似。通過"數據庫界面"包,"系統內部"包既能夠使用Oracle的界面也可使用Sybase的界面。通用包可標記為{abs tract},表示該包只是定義了一個界面,具體實現則由專用包來完成。
(10) 其他模型元素和表示機制
類圖中用到的模型元素和表示機制較為豐富,由于篇幅的限制,這里不能一一介紹。主要還有以下模型符號和概念:類別模板(Stereotype)、界面(Interface)、參數化類(P arameterized Class)也稱模板類(Template)、限定關聯(Qualified Association)、多維關聯(N-ary Association)、多維鏈(N-ary Link)、派生(Derived)、類型(Type)和注釋(Note)等。
(11) 使用類圖的幾個建議
類圖幾乎是所有OO方法的支柱。采用標準建模語言UML進行建模時,必須對UML類圖引入的各種要素有清晰的理解。以下對使用類圖進行建模提出幾點建議:
*不要試圖使用所有的符號。從簡單的開始,例如,類、關聯、屬性和繼承等概念。在UML中,有些符號僅用于特殊的場合和方法中,只有當需要時才去使用。
*根據項目開發的不同階段,用正確的觀點來畫類圖。如果處于分析階段,應畫概念層類圖;當開始著手軟件設計時,應畫說明層類圖;當考察某個特定的實現技術時,則應畫實現層類圖。
*不要為每個事物都畫一個模型,應該把精力放在關鍵的領域。最好只畫幾張較為關鍵的圖,經常使用并不斷更新修改。使用類圖的最大危險是過早地陷入實現細節。為了避免這一危險,應該將重點放在概念層和說明層。如果已經遇到了一些麻煩,可以從以下幾個方面來反思你的模型。
*模型是否真實地反映了研究領域的實際。
*模型和模型中的元素是否有清楚的目的和職責(在面向對象方法中,系統功能最終是分配到每個類的操作上實現的,這個機制叫職責分配)。
*模型和模型元素的大小是否適中。過于復雜的模型和模型元素是很難生存的,應將其分解成幾個相互合作的部分。
(12) 術語比較
下表列出了最常用的四種UML術語,并與其他方法學中相對應的術語進行比較,以幫助讀者了解UML與其他建模語言的異同。(未完待續)