UML類圖教程

於構建和可視化的面向對象的系統的圖形表示法。統一建模語言(UML)中的類圖是一種靜態結構圖,通過顯示系統來描述系統的結構:

  • 類,
  • 他們的屬性,
  • 操作(或方法),
  • 和對象之間的關係。

 

什麼是Class?

Class是對象的藍圖。對象和類是齊頭並進的。如果不談另一個,我們就不能談論一個。面向對象設計的整個要點不是關於對象,而是關於類,因為我們使用類來創建對象。所以一個類描述了一個對像是什麼,但它不是對象本身。

實際上,類描述了對象的類型,而對像是類的可用實例。每個對像都是從同一組藍圖構建的,因此包含相同的組件(屬性和方法)。標準含義是對像是類和對象的實例- 對象具有狀態和行為。

例子

狗有狀態- 顏色,名稱,品種以及行為- 搖擺,吠叫,吃。對像是類的實例。

什麼是課程?

UML類表示法

類表示封裝狀態(屬性)和行為(操作)的概念。每個屬性都有一個類型。每個操作都有一個簽名類名是唯一的必填信息

UML類表示法

Class名稱:

  • 類的名稱出現在第一個分區中。

類屬性:

  • 屬性顯示在第二個分區中。
  • 冒號後顯示屬性類型。
  • 屬性映射到代碼中的成員變量(數據成員)。

Class操作(方法):

  • 操作顯示在第三個分區中。它們是Class提供的服務。
  • 方法的返回類型顯示在方法簽名末尾的冒號之後。
  • 方法參數的返回類型顯示在參數名稱後面的冒號之後。操作映射到代碼中的類方法

課程操作

類可見性

類中的屬性和操作名稱之前的+, - 和#符號表示屬性和操作的可見性。

類可見性

  • +表示公共屬性或操作
  • - 表示私有屬性或操作
  • #表示受保護的屬性或操作

參數方向性

操作(方法)中的每個參數可以表示為in,outinout,其指定其相對於調用者的方向。此方向性顯示在參數名稱之前。

參數方向性

類圖的視角

透視的選擇取決於您在開發過程中的距離。例如,在域模型的製定過程中,您很少會超越概念角度分析模型通常包含概念和規範視角的混合。設計模型開發通常首先著重於規範視角,並演變為實現視角

可以從各種角度解釋圖表:

  • 概念:代表域中的概念
  • 規範:重點是軟件中抽像數據類型(ADT)的接口
  • 實現:描述類如何實現其接口

視角影響要提供的細節量以及值得呈現的關係類型。如上所述,類名是唯一的必填信息。

類圖的視角

Class之間的關係

UML不只是漂亮的圖片。如果使用得當,UML會精確地傳達如何從圖中實現代碼。如果精確解釋,實現的代碼將正確反映設計者的意圖。您能描述一下這些關係相對於下圖所示的目標編程語言的含義嗎?

如果您還不能識別它們,那麼本節的任何問題都無助於您理解UML類關係。一個類可能涉及與其他類的一個或多個關係。關係可以是以下類型之一:

班級之間的關係

繼承(或泛化):

泛化是更通用的分類器和更具體的分類器之間的分類關係。特定分類器的每個實例也是一般分類器的間接實例。因此,特定分類器繼承了更通用的分類器的特徵。

  • 表示“is-a”關係。
  • 抽像類名稱以斜體顯示。
  • SubClass1和SubClass2是SuperClass的特化。

下圖顯示了繼承層次結構的示例。SubClass1和SubClass2派生自SuperClass。該關係顯示為實線,空心箭頭指向子元素到父元素。

繼承(或泛化)

繼承示例- 形狀

下圖顯示了具有兩種樣式的繼承示例。雖然連接器的繪製方式不同,但它們在語義上是等效的。

繼承示例- 形狀

協會

關聯是UML類圖中類之間的關係。它們由類之間的實線表示。通常使用反映現實世界問題域的動詞或動詞短語來命名關聯。

簡單的聯想

  • 兩個對等類之間的結構鏈接。
  • Class1和Class2之間存在關聯

下圖顯示了簡單關聯的示例。有一個關聯連接<< control >>類Class1和<< boundary >>類Class2。關係顯示為連接兩個類的實線。

簡單的聯想

基數

基數用以下表示:

  • 一對一
  • 一對多
  • 很多很多

基數

聚合

一種特殊類型的關聯。

  • 它代表了“一部分”關係。
  • Class2是Class1的一部分。
  • Class2的許多實例(用*表示)可以與Class1相關聯。
  • Class1和Class2的對象具有不同的生命週期。

下圖顯示了聚合的示例。該關係在關聯端顯示為帶有未填充菱形的實線,該關聯連接到表示聚合的類。

聚合

組成

  • 一種特殊類型的聚合,其中部件在整個銷毀時被銷毀。
  • Class2的對象與Class1一起生存和死亡。
  • Class2不能自立。

下圖顯示了一個組合示例。該關係在關聯端顯示為帶有填充菱形的實線,該關聯連接到表示整體或複合的類。

組成

依賴

一個類的對象可能在方法的代碼中使用另一個類的對象。如果對象未存儲在任何字段中,則將其建模為依賴關係。

  • 一種特殊類型的關聯。
  • 如果對一個類的定義的更改可能導致另一個類的更改(但不是相反),則存在於兩個類之間。
  • Class1取決於Class2

下圖顯示了依賴關係的示例。該關係顯示為帶有空心箭頭的虛線。

依賴

下圖顯示了依賴的另一個例子。Person類可能有一個帶有Book參數的hasRead方法,如果該人已經讀過該書,則返回true(可能通過檢查某個數據庫)。

依賴

實現

實現是藍圖類與包含其各自實現級別詳細信息的對象之間的關係。據說這個對象實現了藍圖類。換句話說,您可以將其理解為接口和實現類之間的關係。

例如,Owner接口可能指定獲取屬性和處置屬性的方法。Person和Corporation類需要以非常不同的方式實現這些方法。

實現

類圖示例:訂單系統

類圖示例:訂單系統

類圖示例:GUI

類圖還可以附加到類或關係的註釋。

類圖示例:GUI

您已經了解了類圖是什麼以及如何繪製類圖。是時候繪製一個自己的類圖。獲取Visual Paradigm Community Edition,一個免費的UML軟件,並使用免費的Class Diagram工具創建自己的類圖。它易於使用且直觀。

免費下載

免費類圖示例

免費類圖示例和模板可在在線類圖軟件中編輯:Visual Paradigm Online。使用模板作為起點來創建自己的類圖。

類圖- 類和包約束

類圖- 包中的類(航空公司)

售票

自我聯想

協會類和自我聯想

銷售訂單系統

汽車

References

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章