模型管理視圖對模型自身組織建模。一系列由模型元素(如類、狀態(tài)機(jī)和用例)構(gòu)成的包組成了模型。一個包(package)可能包含其他的包,因此,整個模型實際上可看成一個根包,它間接包含了模型中的所有內(nèi)容。包是操作模型內(nèi)容、存取控制和配置控制的基本單元。每一個模型元素包含于包中或包含于其他模型元素中。
模型是從某一觀點以一定的精確程度對系統(tǒng)所進(jìn)行的完整描述。從不同的視角出發(fā),對同一系統(tǒng)可能會建立多個模型,例如有系統(tǒng)分析模型和系統(tǒng)設(shè)計模型之分。模型是一種特殊的包。
子系統(tǒng)是另一種特殊的包。它代表了系統(tǒng)的一個部分,它有清晰的接口,這個接口可作為一個單獨的構(gòu)件來實現(xiàn)。
模型管理信息通常在類圖中表達(dá)。
UML包含三種主要的擴(kuò)展組件:約束、構(gòu)造型和標(biāo)記值。約束是用某種形式化語言或自然語言表達(dá)的語義關(guān)系的文字說明。構(gòu)造型是由建模者設(shè)計的新的模型元素,但是這個模型元素的設(shè)計要建立在UML已定義的模型元素基礎(chǔ)上。標(biāo)記值是附加到任何模型元素上的命名的信息塊。
這些組件提供了擴(kuò)展UML模型元素語義的方法,同時不改變UML定義的元模型自身的語義。使用這些擴(kuò)展組件可以組建適用于某一具體應(yīng)用領(lǐng)域的UML用戶定制版本。
圖 3–11舉例說明了約束、構(gòu)造型,和標(biāo)記值的使用。對劇目類的約束保證了劇目具有唯一的名稱。圖3–11說明了兩個關(guān)聯(lián)的異或約束,一個對象某一時刻只能具有兩個關(guān)聯(lián)中的一個。用文字表達(dá)約束效果較好,但UML的概念不直接支持文字描述。
TicketdDB構(gòu)件構(gòu)造型表明這個是一個數(shù)據(jù)庫構(gòu)件,允許省略該構(gòu)件的接口說明,因為這個接口是所有數(shù)據(jù)庫都支持的通用接口。建模者可以增加新的構(gòu)造型來表示專門的模型元素。一個構(gòu)造型可以帶有多個約束、標(biāo)記值或者代碼生成特性。如圖所示,建模者可以為命名的構(gòu)造型定義一個圖標(biāo),作為可視化的輔助工具。盡管如此,可以使用文字形式說明。
多個視圖共存于一個模型中,它們的元素之間有很多關(guān)系,其中一些關(guān)系列在表3-2中。表中沒有將各種關(guān)系列全,但它列出了從不同視角觀察得到的元素間的部分主要關(guān)系。
表3-2 不同視圖元素間的部分關(guān)系
元素 | 元素 | 關(guān)系 |
類 | 擁有 | 狀態(tài)機(jī) |
操作 | 交互 | 實現(xiàn) |
用例 | 合作 | 實現(xiàn) |
用例 | 交互實例 | 樣本場景 |
構(gòu)件實例 | 節(jié)點實例 | 位置 |
動作 | 操作 | 調(diào)用 |
動作 | 信號 | 發(fā)送 |
活動 | 操作 | 調(diào)用 |
消息 | 動作 | 激發(fā) |
包 | 類 | 擁有 |
角色 | 類 | 分類 |