UML類圖

  • 11689
  • 0
  • uml
  • 2019-03-20

類圖是一個靜態圖。它代表了應用程序的靜態視圖。類圖不僅用於可視化,描述和記錄系統的不同方面,還用於構建軟件應用程序的可執行代碼。

類圖描述了一個類的屬性和操作,以及對系統施加的約束。類圖被廣泛用於面向對象系統的建模,因為它們是唯一的UML圖,可以直接用面向對象的語言進行映射。

類圖顯示了類,接口,關聯,協作和約束的集合。它也被稱為結構圖。

類圖的目的

類圖的目的是模擬應用程序的靜態視圖。類圖是唯一可以直接映射到面向對象語言的圖,因此在構建時被廣泛使用。

UML圖如活動圖,序列圖只能給出應用程序的順序流程,但類圖有點不同。它是編碼器社區中最流行的UML圖。

類圖的目的可以概括為:

  • 應用程序靜態視圖的分析和設計。

  • 描述系統的責任。

  • 組件和部署圖的基礎。

  • 正向和逆向工程。

通過顯示系統的類,它們的屬性以及類之間的關係來描述系統的結構。

Classifier

  • 抽象基類
  • 描述了一組具有共同特徵的實例

Feature

  • 聲明分類器實例的行為或結構特徵
  • 結構特徵描述分類器實例的結構(例如屬性)
  • 行為特徵指定分類器實例行為的一個方面(例如操作)

Property Example:

屬性是結構特徵,表示:

  • 分類器的屬性(當屬性由除關聯以外的分類器擁有時)
  • 社團成員結束
  • 結構化分類器的部分。

Operation⌘

  • 分類器的行為特徵,它指定名稱,類型,參數和約束
  • 可以有先決條件和後置條件
  • 可以有一個類型(返回參數的類型)
  • 例:
+ createWindow (location: Coordinates): Window

Class

  • 描述了一組共享相同規格的特徵(屬性和操作)的對象,
  • 是一個特殊的分類器
  • 一個對像是一個類的實例

Generalization

  • 更普遍的分類器和更具體的分類器之間的關係
  • 特定分類器的每個實例也是通用分類器的間接實例
  • 特定的分類器繼承了更一般的分類器的特徵

泛化示例

Association

  • 指定實例之間的關係
  • 描述了一組元組,其值是指類型化的實例
  • 聲明關聯類型的實例之間可能存在鏈接

Multiplicity⌘

  • 指定對象可以與多少個對象相關聯的對象
  • 是最小值和最大值的範圍
  • 語法:numbermin..max
多重 符號
00..0
正好一個 1
零或一個 0..1
零或更多 0 .. **
一個或多個 1 .. *

多重性example

多重性 - 順序和唯一性

  • 多重性定義了收集元素的順序和唯一性的規範。
  • 該選項可以指定值是否應該是唯一的和/或有序的
    • 排序:值的集合是按順序排序的(默認:不排序)
    • 唯一:值集合中的每個值必須是唯一的(默認值:唯一)
  •  

Navigability

  • 指定是否可以直接從另一個對象訪問一個對象

Aggregation

  • 顯示瞭如何(整體)由部分組成
  • 零件可以分開存在 - 可以共享
  • 聚合的精確語義因應用領域和建模者而異:)

聚合/構成示例

N-ary

  • 如果一個關聯有兩個以上的端點(這裡是三元關聯)
  • 符號:菱形被用作連接點

關聯類

  • 關聯類是具有關聯和類屬性的模型元素。
  • 它不僅連接了一組分類器,而且還定義了屬於該協會本身的一組特徵。

依賴項

  • 表示模型元素需要其他模型元素用於其規範實現的關係
  • 依賴元素的完整語義取決於供應商元素的定義,
  • 供應商的修改可能會影響客戶模型元素
  • 沒有供應商客戶的語義是不完整的
  • 依賴關係的類型可以通過使用關鍵字或構造型來指定

Interface

  • 是一種分類的一個代表聲明了一組連貫的公共特性和義務
  • 一個接口指定一個合同 ; 實現接口的分類器的任何實例都必須滿足該合同
  • 它只是聲明 - 所以它不是可實例化的

提供Interface

  • 由分類器實現的接口是其提供的接口
  • 代表該分類器實例必須滿足的義務

必需的接口

  • 指定分類服務需要,以執行其功能

接口示例

命名為Element⌘

  • 表示可能具有名稱和可見性的元素
可見性種類 符號
上市 +
私人的 -
保護

Package

  • 用於對元素進行分組,並為分組元素提供名稱空間
  • 合格的名稱:
package name::element name

包導入,Access

 

包導入定義為定向關係,用於標識其成員要通過名稱空間導入的包。

兩種類型:

  • «進口»用於公共包裹進口
    • 傳遞:如果A導入B和B導入C,則A間接導入C.
  • «訪問»用於私人包裹導入
    • 不及物動詞

包導入示例

  • 類型中的元素被導入到ShoppingCart,然後進一步導入到WebShop
  • 輔助元素只能從ShoppingCart訪問,並且不能從WebShop引用

實例

  • 是建模系統中的具體實例
  • 實例=對象

Comment

  • 一個可以附加到元素的文本註釋
  • 可能包含對建模者有用的信息
  • 可以附加到多個元素上

Constraint

 

  • 條件或與元素有關的限制
  • 它一定是真的
  • 可以是正式的(OCL)或人類語言
  • 句法:
{ [name :] boolean expression }

如何繪製類圖?

類圖是用於構建軟件應用程序的最流行的UML圖。學習類圖的繪圖程序是非常重要的。

類圖在繪製時有很多屬性需要考慮,但這裡將從頂層視圖考慮圖。

類圖基本上是系統靜態視圖的圖形表示,代表了應用程序的不同方面。類圖的集合代表整個系統。

在繪製類圖時應記住以下幾點 -

  • 類圖的名稱應該對描述系統的方面有意義。

  • 應預先確定每個元素及其關係。

  • 每個班級的責任(屬性和方法)應該清楚地確定

  • 對於每個類,應該指定最小數量的屬性,因為不必要的屬性會使圖變得複雜。

  • 根據需要使用註釋來描述圖表的某些方面。在繪圖結束時,開發人員/編碼人員應該可以理解。

  • 最後,在製作最終版本之前,應該在普通紙上繪製圖表並重複盡可能多次以使其正確。

下圖是應用程序的訂單系統示例。它描述了整個應用程序的一個特定方面。

  • 首先,訂單和客戶被確定為系統的兩個要素。他們有一對多的關係,因為客戶可以有多個訂單。

  • Order類是一個抽像類,它有兩個具體的類(繼承關係)SpecialOrder和NormalOrder。

  • 這兩個繼承的類具有作為Order類的所有屬性。另外,它們還具有其他功能,如dispatch()和receive()。

考慮到上面提到的所有要點,已經繪製了以下類圖。

UML類圖

何處使用類圖?

類圖是一個靜態圖,它用來模擬系統的靜態視圖。靜態視圖描述了系統的詞彙表。

類圖也被視為組件和部署圖的基礎。類圖不僅用於可視化系統的靜態視圖,而且還用於構建任何系統的正向和反向工程的可執行代碼。

通常,UML圖不是直接映射到任何面向對象的編程語言,但類圖是一個例外。

類圖清楚地顯示了與諸如Java,C ++等面向對象語言的映射。從實踐經驗來看,類圖通常用於構建目的。

簡而言之,可以說,類圖用於 -

  • 描述系統的靜態視圖。

  • 顯示靜態視圖元素之間的協作。

  • 描述系統執行的功能。

  • 使用面向對象的語言構建軟件應用程序。

尋找UML在線編輯器?點擊一下即可編輯

A Star-Based LAN

A Token-Ring Based LAN

Company Structure

Understanding Relationships

File Output (Use of Generalization)

Telephone (Use of Association)

 

 

 

Visual Paradigm International