UML 101

UML (Unified Modelling Language)

* 用來描述 "模型" 的一種共同語言

 

* 設計師 (designer, developer) 如果 跟 程式設計師 (programmer, coder) 有一個簡單又能很清楚 表達 模型 Models (或是說我們的物件 Object 的模型 => class) 的共同語言, 那就是 UML 存在的目的!

 

*在 "物件導向" 的程式世界裡, 一開始設計, 不是寫 code, 而是先設計 "物件", 把物件都定義好, 物件之間的關係設計好, 使用物件的流程也講好 (都可以用 UML 來完成), 再交給 programmers 去寫 code.

 

蠻像, 房子的設計圖先畫好, 再請工程部去蓋房子.

軟體的設計圖, 就是用 UML 來寫(來描述)

UML Class Diagram

(用來描述 class 的圖)

UML 圖的種類非常多種, 這裡先介紹, 最常用之ㄧ的 UML Class Diagram

用來描述 class

UML Class Diagrams

 

"類別圖" 是物件導向式的建模。他們一般都被用於概念建模(conceptual modelling)的系統分類的應用程式,並可將模型建模轉譯成程式碼 - from wikipedia

classes 之間

包含 class 本身的描述, 與 class 與 class 之間的關係

** 點擊上方藍色部分, 用 SpicyBoyd 的文章來說明更清楚

繼承

就是用 class 繼承 class

 

這是最基本的 class 模型, 沒有繼承, 其他圖都沒有意義了

 

 

實作

就是用 class 實作 interface

 

通常實作的圖示, 並不是用來描述關係, 只是告訴程式設計師, 記得要用 Interface 來寫.

 

interface 在 Python 裡就是 abstract class, 請參考 here -> 你也可以跟 go, Java 比較誰的物件導向程式好寫.

Teddy 的

用 +, - 號註明其 "能見度" visibility

(也就是要當 public 還是 private 的變數, 或 functions)

畫 UML 的線上工具

UML class 圖

描述一個 Decorator 的範例

Decorator 修飾者 的 UML 圖

圖片來源: 

Use Case Diagram

範例: Hyperleger/Cactus

Activity Diagarm

Sequence Diagram

另一個 Sequence Diagram

State (machine) Diagram (狀態)

UML 簡介

By Ming-der Wang

UML 簡介

  • 40
Loading comments...

More from Ming-der Wang