類圖 安全
類圖展現了面向對象系統的構造模塊。描繪了模型或部分模型的靜態視圖,顯示它包含的屬性和行爲,而不是詳細描述操做的功能或完善方法。類圖最經常使用來表達多個類和接口之間的關係。泛化(Generalizations),聚合(aggregations)和關聯(associations)分別是類之間繼承,複合或應用,及鏈接的表現。 spa
下面的圖顯示了類之間的聚合關係。弱聚合(淺色箭頭)表如今類 "Account" 使用 "AddressBook",可是沒必要要包含它的一個實例。強聚合(圖中的黑色箭頭)表示了目標類包含源類,例如,"Contact" 和 "ContactGroup"值被包含在 "AddressBook"中。 設計
類(Classes) 3d
類是定義對象所具備的屬性和行爲的元素。行爲用類能理解的合適消息和適合每條消息的操做來描述。 類中也可能定義約束,標記值,構造型。 對象
類的標柱(Class Notation) blog
類用矩形表示。除類的名稱外,還能夠選擇性地顯示屬性和操做。 分欄分別用來顯示類的名稱,屬性和操做。 繼承
在下面圖中,類的類名顯示在最上面的分欄,它下面的分欄顯示詳細屬性,如:"center" 屬性顯示初始化的值。最後面的分欄顯示操做,如: setWidth,setLength 和 setPosition 以及他們的參數。 屬性和操做名前的標註表示了該屬性或操做的可見性: 若是使用 "+"號,這個屬性或操做是公共的 ; "-" 號則表明這個屬性或操做是私有的。 "#"號是這個屬性或操做被定義爲保護的," ~" 號表明包的可見性。 遞歸
接口(Interfaces) 接口
接口是實施者贊成知足的行爲規範,是一種約定。實現一個接口,類必需支持其要求的行爲,使系統按照一樣的方式,即公共的接口,處理不相關的元素。 ci
接口有類似於類的外形風格,含有指定的操做,以下圖所示。若是沒有明確的詳細操做,也能夠畫成一個圓環。當畫成圓環的時候,到這個環形標柱的實現鏈接沒有目標箭頭。
表(Tables)
表儘管不是基本UML的一部分,仍然是"圖型"能完成的實例用。在右上角畫一個表的小圖標來表示。表屬性用"圖型" «column»表示。 絕大多數表單有一個主鍵,是由一個或幾個字段組成的一個惟一的字碼組合加主鍵操做來訪問表格,主鍵操做"圖型"爲«PK»。 一些表有一個或多個外鍵,使用一個或多個字段加一個外鍵操做,映射到相關表的主鍵上去,外鍵操做"圖型"爲«FK»。
關聯(Associations)
關聯代表兩個模型元素之間有關係,一般用在一個類中被實現爲一個實例變量。鏈接符能夠包含兩端的命名的角色,基數性,方向和約束。關聯是元素之間普通的關係。若是多於兩個元素,也可使用菱形的關聯關係。當從類圖生成代碼時,關聯末端的對象將變成目標類中實例變量。見下圖示例 "playsFor" 將變成"Player"類中的實例變量。
泛化(Generalizations)
泛化被用來講明繼承關係。鏈接從特定類元到通常類元。泛化的含義是源類繼承了目標類的特性。下圖的圖顯示了一個父類泛化一個子類, 類"Circle"的一個實例將會有屬性 " x_position"," y_position" , "radius" 和 方法 "display()"。 注意:類 "Shape" 是抽象的,類名顯示爲斜體。
下圖顯示了與上圖相同信息的視圖。
聚合(Aggregations)
聚合一般被用來描述由更小的組件所構成的元素。聚合關係表示爲白色菱形箭頭指向目標類或父類。
聚合的更強形式 -組合聚合(強聚合) - 顯示爲黑色菱形箭頭,用來組合每次最大化的包含組件。若是一個組合聚合的父類被刪除,一般與他相關的全部部分都會被刪除,可是,若是一個部件從組合中去掉,將不用刪除整個組合。組合是可遷,非對稱的關係和遞歸的。
下面的圖示:顯示了弱聚合和強聚合的不一樣。" address book" 由許多 "contacts" 和 "contact groups"組成。 "contact group" 是一個"contacts"的虛分組; "contact"能夠被包含在不止一個 " contact group"。 若是你刪除一個" address book",全部的 "contacts" 和 "contact groups" 也將會被刪除;若是你刪除" contact group", 沒有 "contacts"會被刪除。
關聯類(Association Classes)
關聯類是一個容許關聯鏈接有屬性和操做的構造。下面的示例:顯示了遠不止簡單鏈接兩個類的鏈接,如給"employee"分配項目。" employee"在項目中所起的做用是一個複雜的實體,既有自身的也有不屬於"employee" 或 "project" 類的細節。 例如," employee"能夠同時爲幾個項目工做,有不一樣的職務頭銜和對應的安全權限。
依賴(Dependencies)
依賴被用來描述模型元素間普遍的依賴關係。一般在設計過程早期顯示兩個元素之間存在某種關係,由於是初期而不能肯定具體是什麼關係,在設計過程末期,該繼承關係會被納入已有構造型 (構造型 能夠是實例化 «instantiate»,跟蹤 «trace»,導入 «import», 和其它的關係),或被替換成一個更明確類型的鏈接符。
跟蹤(Traces)
跟蹤關係是一種特殊化的依賴關係。鏈接模型元素或跨模型可是具備相同概念的模型元素集。跟蹤被常常用來追蹤需求和模型的變化。因爲變化是雙向的,這種依賴關係的順序一般被忽略。這種關係的屬性能夠被指定爲單向映射,但跟蹤是雙向的,非正式的和不多可計算的。
實現(Realizations)
是源對象執行或實現目標,實現被用來表達模型的可跟蹤性和完整性-業務模型或需求被一個或多個用例實現,用例則被類實現,類被組件實現,等等。這種實現貫穿於系統設計的映射需求和類等,直至抽象建模水平級。從而確保整個系統的一張宏圖,它也反映系統的全部微小組成,以及約束和定義它的細節。實現關係用帶虛線的實箭頭表示。
嵌套(Nestings)
嵌套鏈接符用來表示源元素嵌套在目標元素中。下圖顯示" inner class"的定義,儘管在EA中,更多地按照着他們在項目層次視圖中的位置來顯示這種關係。