如何繪製 UML 循序圖(Sequence Diagram)

大 API 時代的 OnePiece

Wayne
Dec 18, 2022

什麼時候要畫循序圖?

循序圖用於說明參與者跟物件、物件跟物件間的互動過程,強調互動過程的先後順序,通常用於描述系統即時的互動情況(ex: API 串接)。

循序圖基本圖示簡介

循序圖基本的圖示如下圖,控制焦點表示程式執行的時間,只要有程式執行的動作都需要留一段直長方形,同步訊息的意思是一定會有相對應的回傳訊息,收到回傳訊息後才會做下一個動作,非同步訊息的意思是不會等待回傳訊息,送出後直接做下一個動作。

UML 循序圖基礎圖示

直接動手畫一個循序圖看看吧!

以電商網站串接街口支付為例,繪製順序如下:
1.畫出所有參與物件(最左邊的物件是開始點)
2.物件下方畫出每個物件的生命線
3.畫出每個參與物件的執行片段跟互動方式
4.將整個圖加上外框並在左上角添加五角形,標示循序圖名稱

UML_循序圖範例

如何在循序圖表示判斷邏輯?

就像程式常常會寫判斷,循序圖也有判斷的表示方式叫做合併片段,但製圖是為了讓人可以一目瞭然知道系統的互動情況,所以我建議能夠少用就少用,畢竟看到判斷邏輯就需要思考,能不思考的圖才足夠直覺,下面的圖整理了所有合併片段(實務比較常用的是 alt、opt):

UML 循序圖合併片段統整

alt 合併片段說明

以行人過馬路為例,行人看到紅綠燈做的動作只會有 3 種,看到紅燈會停下來,看到綠燈會用走的過馬路,看到黃燈會用跑的過馬路。首先,最外面用方框將所有判斷結構包起來,左上角新增五角形,填入 alt ,說明這個方框是 alt 的判斷規則,每個判斷條件用 [] 包起來(紅燈、綠燈、黃燈),如果條件為真(紅燈),就觸發動作(停下來),動作執行完用虛線區隔下一個判斷。

alt 合併片段說明

循序圖加入合併片段

以電商網站要加入購物車為例,大多數的電商網站在消費者要進入購物車時,會判斷用戶是否已經登入會員,如果登入會直接進到購物車,未登入則會引導登入。

UML_循序圖加入合併片段

在 API 盛行的年代,畫循序圖幾乎已經變成必備技能,畫完可以清楚了解誰打誰,什麼時候打,但循序圖對於非技術的 PM 來說並不是一件容易的事,一來是不熟悉底層的交換方式,二來有很多串接的細節仍要跟工程師再次確認(交換什麼資料、多久打一次 etc),以免流程圖跟程式脫鉤。最快理解的方式是自己實作過打一次 API ,就會了解 API 的結構跟他的目的,萬事起頭難,只要畫過一次,接下來越畫就會越上手囉~

如果對於內容有疑問或者希望看到什麼樣的內容都可以在下方留言討論,若有錯誤請不吝指教,如果覺得內容不錯,歡迎按按拍手給點鼓勵~

--

--

Wayne
Wayne

Written by Wayne

4+ 年零售業軟體產品經理 / 正在摸索產品經理的職涯 /喜歡學習分享,寫下個人成長遇到的課題,希望能夠幫助到也在迷惘的人~