← Back to list

學會循序圖 (Sequence Diagram):基礎概念、教學、實例

我在Tesla擔任產品經理時最常用的工具

Jean Huang 黃靚 | 產品經理 · 2025-02-04 02:21 · 83 claps · 8.2 min read
#產品經理 #產品心法 #職涯 #sequence-diagrams #系統設計
Open on Medium ↗

學會循序圖 (Sequence Diagram):基礎概念、教學、實例

我在Tesla擔任產品經理時最常用的工具

中文的Sequence diagram資料大都有些年代了,你也許會懷疑「這東西看起來好過時,還有人在用嗎?」以自身經驗而言,我會說「有的!業界還是很多人在用的!」

當時我負責特斯拉內部的帳務產品,由於常需要與訂單、稅務、會計等其他各種產品對接,這段期間最常用的工具之一就是循序圖 (Sequence Diagram)。公司內部各個部門,工程師與產品經理們經常在白板上畫圖討論系統設計。記得那時的Engineering Lead 指著我的圖說 “This is super helpful!”,就覺得能幫助到大家真是太好了!

什麼是循序圖 (Sequence Diagram)?

你有沒有過一種經驗,公司內部由上到下沒有人知道之前產品/功能是怎麼做出來的?😅 隨著團隊成長或產品/系統擴展,循序圖 (Sequence Diagram) 可以幫助我們做documentation,未來維護系統的時候可以參考,而且未來的自己會感謝現在的你!

Sequence Diagram,中文稱為循序圖、序列圖、時序圖,能夠視覺化一個特定情境中不同物件間的互動與它們交換的訊息。

循序圖 (Sequence Diagram) 可以幫助我們視覺化軟體系統需求,在設計系統時,討論更加容易。多個系統需要整合或是有各種API需要對接時,最能發揮作用。如果你在公司內部IT部門,循序圖可以幫助你跟公司內部使用者溝通。

循序圖的基本元素 by Jean Huang

循序圖的基本元素 by Jean Huang

循序圖的基本元素

上圖是個簡單循序圖,此圖以顧客將上品加入購物車為例。圖中包括循序圖的基本元素:

角色 (Actors): 置於圖頂部,通常用火柴人圖形表示。角色是與系統互動的外部實體,如使用者。

物件 (Objects): 至於圖頂部,用長方形表示。物件可以代表系統內不同的功能(function)或微服務(microservice)等。

生命線 (Lifelines): 用垂直虛線表示,代表物件隨時間的存在。

訊息 (Messages): 用箭頭表示物件之間的訊息流通。訊息可以是調用、訓號、資料交換等。不同類型的訊息以略有不同的方式表示。

  • 實線訊息線:Requests 請求訊息
  • 虛線訊息線:Responses 回應訊息

控制焦點/執行時間 (Activation Bars): 用生命線上的細矩形表示,顯示物件何時處於活動狀態或執行操作。它們通常對應於操作的持續時間。

註解 (Comments): 用帶折角的矩形表示,通過虛線連接到圖的相關部分。它們提供額外的信息或解釋。

基礎概念和符號

現在我們知道如何閱讀循序圖,以下是循序圖中廣泛使用的一些更高級的標註方法。

1. 同步與異步訊息

同步訊息vs.異步訊息, by Jean Huang

同步訊息vs.異步訊息, by Jean Huang

同步訊息是指發送方在發送訊息後,等待接收方處理訊息並回應後再繼續下一個操作的訊息。發送方期望得到立即回應,互動是更緊密耦合的。

異步訊息則是發送方在發送訊息後,不等待接收方處理訊息就繼續進行下一個操作。互動更為鬆散,通常用於事件驅動系統。

在循序圖中,我們以箭頭為實心或空心來表達訊息是同步或異步。

  • 實心箭頭:同步訊息,表示等待響應的調用。
  • 空心箭頭:異步訊息,表示不等待響應的調用。

2. 自訊息

自訊息(自調用)表示對內部功能或函數的調用。這是從同一物件開始並結束的訊息箭頭表示。在實際操作上,我自己畫Sequence diagram時,會以自訊息來帶過某些功能,以避免一張圖過於複雜而失焦。

範例情境:自訊息, by Jean Huang

範例情境:自訊息, by Jean Huang

💡 範例情境:自訊息

  1. 顧客將物品添加到購物車。
  2. 購物車系統更新其內部庫存。

在上述情境中,「更新庫存」是一個因為將商品加入購物車而觸發「自訊息」,這是購物車內部的一個過程。

3. 片段

片段是用「框」表示各種邏輯,如條件互動或迭代等行為。最基本的片段有四種:

  • alt(替代):表示替代路徑,如if-else語句。
  • opt(可選):表示可選行為,如單一條件路徑。
  • loop(循環):表示重複的互動。
  • par(並行):表示並行的互動。

範例情境:替代片段(alt), by Jean Huang

範例情境:替代片段(alt), by Jean Huang

💡 範例情境:替代片段 (alt)

  1. 顧客將商品加到購物車。
  2. 替代:
  • 2.1. 如有庫存,則將其加到購物車中並通知顧客訂單已確認。
  • 2.2. 如沒庫存,則通知顧客缺貨。

在上述情境中,我們可以使用 alt 片段處理商品庫存的條件邏輯,並表示物品可能缺貨的情況。

4. 物件創建&物件銷毀

  • 創建訊息:表示一物件被發起。
  • 銷毀訊息:表示物件銷毀的特殊訊息,以生命線底部”X”作為表示。

範例情境:物件創建/銷毀, by Jean Huang

範例情境:物件創建/銷毀, by Jean Huang

💡 範例情境:物件創建/銷毀

  1. 顧客發起付款。
  2. 購物車創建「付款」物件。
  3. 支付系統處理付款。
  4. 支付系統確認付款。

在該場景中,當顧客發起付款時創建「付款」物件,物件會在付款確認後銷毀。

如何畫循序圖(Sequence Diagram)?

我們學會怎麼讀循序圖後,產品經理能更輕鬆理解系統間如何溝通、API是如何對接,工作上想必更能言之有物!接下來,若我們能將產品需求透過循序圖 (Sequence Diagram) 視覺化,那工程師夥伴們肯定是會好好感謝你的!(當然前提是圖要畫對啦😅)

循序圖 (Sequence Diagram) 通常使用統一建模語言(UML)繪製,這是一種通用的視覺建模語言,目的在於提供一種標準化的方法來可視化系統設計。

✏️ 個人偏好:我個人喜歡用 text based的工具來畫循序圖。簡單的說,你可以想像自己寫某種(很直覺簡單的)指令來「畫」循序圖 (Sequence Diagram) 。我覺得使用text-based工具的優點是你能在與工程師或stakeholders 開會時,一邊討論系統設計、一邊改圖,開會起來非常有效率。缺點就是這些小工具做出來的圖通常都不太美麗。

Screenshot from sequencediagram.org

Screenshot from sequencediagram.org

上圖是我很習慣使用、非常基礎的工具sequencediagram.org,左邊可以打入指令,右邊即時產生圖,很方便。類似的工具有很多,值得注意的是即使都是text-based,不同工具的指令會略有不同。

Screenshot from Lucidchart

Screenshot from Lucidchart

當然,還有很多作圖工具是不用寫指令,可以在介面上拖拉元件來製圖,Lucidchart就是這類型的工具。基本上工具只要用習慣就好。

✏️ 常見的循序圖 (Sequence Diagram) 工具:

Photo by Niklas Hamann on Unsplash

Photo by Niklas Hamann on Unsplash

什麼才是有效的循序圖?

說到底,循序圖就是個工具。有了基本知識後,更重要的是…

你畫的圖有人要看,否則也只是白忙一場。

我從自身產品經理的經驗學到的是無論畫什麼圖或是準備什麼文件、spec,都必須注意…

1. 範圍明確

首先定義scope,以循序圖而言,系統互動的起終點要很清楚,否則很容易不小心就無限延伸。產品經理可以透過使用者故事 (User story) 來幫助我們訂定循序圖的範圍,如果涵蓋的情境太多,可以拆成多個圖。

2. 保持簡單

不知道其他人如何,但我自己沒什麼耐心。如果看到個又臭又長的文件,我會直接TLDR不想看。為了防止我自己這種人,我都盡量讓圖表簡單易讀。循序圖的話,沒直接相關的系統可以直接省略不畫,避免過多細節。

3. 迭代

圖表就是來幫助我們溝通的,圖畫好(或甚至不用等到畫好)就要和工程師、設計師或其他相關利益人分享,確保大家對於產品或專案是有共識的,需要調整的地方,早期就趕快調整。

後記

開始寫產品管理文章的初衷就是分享自己在美國軟體業界學到的經驗給台灣(以及廣大中文世界)的大家。自己年輕剛進入職場時,英文閱讀能力沒有那麼好,網路上也沒現在多中文資料,很難觸及到更多產品管理的資訊。希望這篇文章能讓各路產品經理們在技術討論時能更得心應手!💪🏼

本文章最初於2024/07/08發布至我的英文分身帳號: https://medium.com/@jean-huang
如果喜歡這篇文章,請幫我拍拍手 👏👏👏
如果覺得這篇文章對你有幫助,請再幫我拍拍手!多拍多好運!

關於作者 — Jean Huang 現於 Google 矽谷辦公室擔任產品經理,並提供**產品經理職涯諮詢 (ADPList and [Topmate](https://topmate.io/jean_huang) Top 1% 產品經理Mentor)**。台灣出生長大,在台灣工作幾年後,2019年來到美國讀研究所,不知不覺就在美國職場打滾到了現在。歡迎來我的 LinkedIn 交流!


메타데이터
post_id
6ef747bd5cf4
slug
學會循序圖-sequence-diagram-基礎概念-教學-實例-6ef747bd5cf4
url
https://medium.com/@pm-jean/%E5%AD%B8%E6%9C%83%E5%BE%AA%E5%BA%8F%E5%9C%96-sequence-diagram-%E5%9F%BA%E7%A4%8E%E6%A6%82%E5%BF%B5-%E6%95%99%E5%AD%B8-%E5%AF%A6%E4%BE%8B-6ef747bd5cf4
canonical_url
https://medium.com/@pm-jean/%E5%AD%B8%E6%9C%83%E5%BE%AA%E5%BA%8F%E5%9C%96-sequence-diagram-%E5%9F%BA%E7%A4%8E%E6%A6%82%E5%BF%B5-%E6%95%99%E5%AD%B8-%E5%AF%A6%E4%BE%8B-6ef747bd5cf4
author_url
https://medium.com/@pm-jean
status
ok
fetched_at
2026-07-20 15:04:06