UML入門

aron1992發表於2019-04-04

UML概述

UML簡介

UML (Unified Modeling Language)為物件導向軟體設計提供統一的、標準的、視覺化的建模語言。適用於描述以用例為驅動,以體系結構為中心的軟體設計的全過程。

UML的定義包括UML語義和UML表示法兩個部分。

  1. UML語義:UML對語義的描述使開發者能在語義上取得一致認識,消除了因人而異的表達方法所造成的影響。
  2. UML表示法:UML表示法定義UML符號的表示法,為開發者或開發工具使用這 些圖形符號和文字語法為系統建模提供了標準。

UML模型圖的構成

  1. 事物(Things):UML模型中最基本的構成元素,是具有代表性的成分的抽象
  2. 關係(Relationships):關係把事物緊密聯絡在一起
  3. 圖(Diagrams ):圖是事物和關係的視覺化表示

UML關係

圖例使用astah軟體繪製

1. 泛化 Generalization:

子類繼承父類的關係

泛化 Generalization
泛化 Generalization

2. 實現 Relization:

子類實現協議或者介面

實現 Relization
實現 Relization

3. 依賴 Dependency:

A類中應用了B類,這種關係具有偶然性和臨時性,同時B類發生的變化會影響到A類

依賴 Dependency
依賴 Dependency

4. 雙向關聯 Association:

一種特殊的依賴關係,比較強的依賴關係,一方依賴另一方
集合對映的情況:
1:單個
0..1:單個或者沒有
1..:至少一個
0..
:0個或者多個
*:任意個

雙向關聯 Association
雙向關聯 Association

5. 單向關聯 Directed Associated:

一種特殊的依賴關係,比較強的兩者互為依賴關係

關聯 Association
關聯 Association

6. 聚合關係 Aggregation:

一種特殊的依賴關係,整體和部分的關係,各自有各自的生命週期,互不干擾,部分強調共享
eg:電腦和電池的關係,電池是共享的,電池也有自己的生命週期

聚合關係 Aggregation
聚合關係 Aggregation

7. 組合關係 Composition:

一種特殊的依賴關係,整體和部分的關係,部分依賴於整體,不能獨立於整體存在
eg.公司和部門

組合關係 Composition
組合關係 Composition

常用的UML

類圖

  • 屬性的定義:
    <屬性訪問許可權> <屬性名> : <屬性型別>
  • 屬性訪問許可權定義:
    public:+
    protected:#
    package:~
    private:-
  • 定義一個私有的String型別的name屬性:
- name : String
複製程式碼
  • 方法的定義:
    <方法訪問許可權> <方法名>([方法引數列表]) : <方法的返回值>
  • 方法訪問許可權定義:
    public:+
    protected:#
    package:~
    private:-
  • 定義一個公有的makeSound方法:
+ makeSound() : void
複製程式碼

泛化 Generalization
泛化 Generalization

用例圖

用例圖是從使用者角度描述系統功能, 是使用者所能觀察到的系統功能的模型圖,用例是系統中的一個功能單元

  • 參與者與用例之間的關係

關聯: 表示參與者與用例之間的互動,通訊途徑。 (關聯有時候也用帶箭頭的實線來表示,這樣的表示能夠顯示地表明發起用例的是參與者。)

  • 用例之間的關係

包含<>:箭頭指向的用例為被包含的用例,稱為包含用例;箭頭出發的用例為基用例。包含用例是必選的,如果缺少包含用例,基用例就不完整;包含用例必須被執行,不需要滿足某種條件;其執行並不會改變基用例的行為。
擴充套件<>:箭頭指向的用例為被擴充套件的用例,稱為擴充套件用例;箭頭出發的用例為基用例。擴充套件用例是可選的,如果缺少擴充套件用例,不會影響到基用例的完整性;擴充套件用例在一定條件下才會執行,並且其執行會改變基用例的行為。

  • 參與者之間的關係

泛化:發出箭頭的事物“is a”箭頭指向的事物。泛化關係是一般和特殊關係,發出箭頭的一方代表特殊的一方,箭頭指向的一方代表一般一方。特殊一方繼承了一般方的特性並增加了新的特性。

用例圖
用例圖

時序圖

  • 順序圖用來表示用例中的行為順序。當執行一個用例行為時,順序圖中的每條訊息對應了一個類操作或狀態機中引起轉換的事件。
  • 順序圖展示物件之間的互動,這些互動是指在場景或用例的事件流中發生的。 順序圖屬於動態建模。
  • 順序圖的重點在訊息序列上,也就是說,描述訊息是如何在物件間傳送和接收的。表示了物件之間傳送訊息的時間順序。
  • 瀏覽順序圖的方法是:從上到下檢視物件間交換的訊息。

以微信支付為例的一個時序圖:

時序圖
時序圖