Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CN

關於序列圖你需要知道的一切:全面指南

介紹

UML序列圖是互動圖,詳細說明操作是如何執行的。它們在協作背景下捕捉物件之間的互動。序列圖以時間為重點,透過使用圖表的垂直軸代表時間,來視覺化顯示互動的順序、傳送的訊息及其時間。

什麼是序列圖?

序列圖,又稱為順序圖,是一種UML互動圖。它透過描述物件之間訊息傳送的時間順序,來顯示多個物件之間的動態協作。

在UML中,序列圖中的物件以一個包含物件名稱(底線標示)的矩形來表示。物件的命名方式有三種:

  • 物件名稱

  • 物件名稱及其類別

  • 僅類別名稱(匿名物件)

編輯此序列圖

序列圖中的物件

  1. 顯示物件之間互動的順序:將互動行為建模為訊息傳遞,並透過描述訊息在物件之間如何傳送與接收,動態地顯示物件之間的互動。

  2. 時間強調:與其他UML圖相比,序列圖更強調互動行為的時間順序。

  3. 並發性視覺化:它能視覺化地描述並發過程。

序列圖的元件

  1. 參與者:系統參與者,可以是人、機器、其他系統或子系統;用於在時間序列圖中表示。

  2. 物件:命名物件有三種方式:

    • 帶類別的命名物件:包含物件名稱與類別名稱,例如:物件:類別

    • 匿名物件:僅顯示類別名稱,例如::課程

    • 僅命名物件: 僅顯示物件名稱,而不顯示類別名稱,例如:講師

    三種命名方式皆可使用;請選擇最易於閱讀圖表的人理解的那一種。

  3. 物件的順序:

    • 物件的左右順序並無重要性

    • 將經常互動的物件盡可能放置得靠近

    • 將啟動整個互動活動的物件放置在最左側

生命線

從序列圖中的物件圖示向下延伸的虛線,表示該物件存在了多久。

控制焦點(激活)

亦稱為激活期間,此符號代表物件執行對應操作的時間段。可解讀為 C 語言語義中的括號 { } 在 C 語言語義中;以一個小矩形表示。代表元件執行操作的期間。矩形的頂部與起始時間對齊,底部與完成時間對齊。

訊息

訊息通常分為三種類型:

  1. 同步訊息: 發送者將控制權交給訊息接收者,然後停止活動並等待接收者放棄或返回控制權,用以表示同步。

  2. 非同步訊息: 發送者透過訊息將信號傳遞給接收者,然後繼續其活動,無需等待接收者回傳訊息或控制權。非同步訊息的接收者與發送者是並行運作的。

  3. 回傳訊息: 表示從程序呼叫中返回。

建立與破壞訊息

參與者不一定會存活於序列圖互動的整個期間。參與者可根據傳遞的訊息而被建立或破壞。

  • 建構函式訊息: 建立其接收者。在互動開始時已存在的發送者會放置在圖表的上方。透過建構函式呼叫在互動期間建立的目標會自動放置在圖表更下方。

  • 解構函式訊息: 破壞其接收者。有其他方式可表示目標在互動期間被破壞。僅當目標的破壞設定為「解構後」時,才需要使用解構函式。

非瞬間訊息

訊息通常被視為瞬間完成,因此訊息傳送到接收者所需時間可忽略不計。訊息以水平箭頭繪製。若要表示接收者實際收到訊息需要一段時間,則需使用 使用斜箭頭.

組合片段

序列片段以一個稱為組合片段的方框表示,該方框包圍序列圖中互動的一部分。片段運算子(位於左上角)表示片段的類型。

互動片段可讓您將序列圖中的相關訊息分組。提供多種預設的片段類型,可讓您指定替代結果、平行訊息或迴圈。

序列圖中的片段是以矩形框繪製在圖表的一部分上。它們代表影響訊息傳遞流程的條件結構。這些框在UML規範中稱為組合片段,容器稱為互動操作數。框的左上角會標示標籤,此標籤在UML中稱為互動運算子。

範例 – 下單情境

一位希望線上下單的船員。所訂購的物品將根據其會員資格(VIP、一般會員)以快遞或一般郵件寄送給該會員。若會員在下單時選擇通知選項,商店將向該會員發送確認通知。

編輯此序列圖

另一個範例:下單

序列圖是一種二維圖表,水平軸代表物件,垂直軸代表時間,訊息在物件之間水平傳遞,並按時間順序垂直排列。此範例顯示一個包含三個參與物件的序列圖:顧客、訂單和庫存。

  1. 步驟 1 和 2: 顧客建立訂單。

  2. 步驟 3: 顧客將商品加入訂單。

  3. 步驟 4、5: 檢查每項商品在庫存中的可用性。

  4. 步驟 6、7、8: 若商品有庫存,則加入訂單。

  5. 步驟 9: 回傳

  6. 步驟 10、11: 儲存並銷毀訂單

編輯此序列圖

常用組合片段

片段類型包括 ref、assert、loop、break、alt、opt 和 neg、ref、sd。

運算子 含義
alt 替代多個片段: 只有條件為真的那一個會執行。
opt 可選: 當提供的條件為真時,片段才會執行。等同於僅有一條路徑的 alt。
par 平行: 每個片段會並行執行。
loop 迴圈: 片段可能執行多次,守衛條件表示迭代的依據。
critical 臨界區: 片段在同一時間內只能有一個執行緒在執行。
neg 負面: 片段顯示一個無效的互動。
ref 參考: 指向另一張圖表上定義的互動。框線會繪製以涵蓋該互動所涉及的生命線。您可以定義參數和傳回值。
sd 順序圖: 用來包圍整個順序圖。

重要注意事項:

  • 可以結合多個框來捕捉,例如迴圈或分支。

  • 合併片段關鍵字: alt、opt、break、par、seq、strict、neg、critical、ignore、consider、assert 和 loop。

  • 約束通常用來顯示訊息上的時間限制。它可以應用於單一訊息的時間或訊息之間的時間間隔。

合併片段範例

1. 選擇(Alt)

一個替代片段提供多個受保護的替代片段(由互動運算元分隔),也就是用來指定兩個或更多訊息序列之間的互斥選擇,等同於傳統的 if..else…

編輯此順序圖

2. 選項(可選)

包含可能發生或不發生的序列,表示可選片段僅在某個守衛條件為真時才執行:

編輯此順序圖

3. 迴圈(迴圈)

迴圈允許片段重複執行,直到某個守衛條件變為假為止:

編輯此順序圖

4. 跳出

當某個守衛條件為真時,跳出可讓封閉的迴圈被跳過:

編輯此順序圖

跳出通常用於模擬例外處理。此順序圖範例使用跳出組合片段,因為它將「餘額 < 金額」條件視為例外,而非替代流程。要閱讀此範例,我們從順序圖的左上角開始,往下閱讀。當順序執行到回傳值「餘額」時,會檢查餘額是否小於金額。如果餘額不小於金額,則接下來發送的訊息為 addDebitTransaction,順序繼續正常執行。

5. 平行

平行片段允許多個互動同時並行執行:

編輯此順序圖

框架

框架提供了一種封裝順序圖的方式。

編輯此順序圖

參考(參考)

框架可以在另一個順序圖中被參考:

編輯此順序圖

協定

編輯此順序圖

合作

編輯此順序圖

情境

編輯此順序圖

訊號與接收

拍賣師將某物品的建議價格廣播給一群焦慮的投標者。當投標者聽到建議價格後,便決定是否接受該價格。

在自動拍賣中,拍賣師將如何廣播建議價格?物件可能具備指定的操作,當收到特定類型的廣播訊號時,這些操作會自動被呼叫。這些方法稱為接收。訊號是一種特殊的類別。接收的名稱通常與訊號的名稱相符。接收會顯示在一個獨立的區隔中:

編輯此順序圖

在序列圖中,我們可以將訊號表示為非同步訊號,並將接收表示為接收調用:

編輯此序列圖

關鍵

編輯此序列圖

其他片段類型

  • 嚴格

  • 斷言

  • 考慮

  • 忽略

  • 區域

  • 否定

序列圖符號總結

符號說明 視覺表示
參與者

  • 由與主題互動的實體所扮演的一種角色(例如,透過交換訊號和資料)
  • 位於主題之外(即,參與者的實例並非其對應主題實例的一部分)
  • 代表由人類使用者、外部硬體或其他主題所扮演的角色。

注意:

  • 參與者不一定代表某個特定的實體,而僅僅是某實體的特定角色
  • 一個人可能扮演多個不同的參與者角色,反之,一個參與者角色也可能由多個人扮演。
UML Sequence Diagram: Actor example
生命線

  • 生命線代表互動中的單一參與者。
UML Sequence Diagram: Lifeline example
激活

  • 生命線上的細長矩形代表元件執行操作的期間。
  • 矩形的頂部與啟動時間對齊,底部與完成時間對齊
UML Sequence Diagram: Activation example
呼叫訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 呼叫訊息是一種代表目標生命線操作調用的訊息類型。
UML Sequence Diagram: Call message example
回傳訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 回傳訊息是一種代表資訊傳回對應前一訊息呼叫者的訊息。
UML Sequence Diagram: Return message example
自我訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 自我訊息是一種代表同生命線訊息呼叫的訊息。
UML Sequence Diagram: Self message example
遞迴訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 遞迴訊息是一種代表同生命線訊息呼叫的訊息。其目標指向從訊息被呼叫的激活上方的激活。
UML Sequence Diagram: Recursive message example
建立訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 建立訊息是一種代表(目標)生命線實例化的訊息。
UML Sequence Diagram: Create message example
銷毀訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 銷毀訊息是一種代表請求銷毀目標生命線生命週期的訊息。
UML Sequence Diagram: Destroy message example
持續時間訊息

  • 訊息定義了互動中生命線之間的特定通訊。
  • 持續時間訊息顯示訊息呼叫期間兩個時間點之間的距離。
UML Sequence Diagram: Duration message example
註解
註解(評論)可讓您將各種註解附加至元素。評論本身不具語義意義,但可能包含對建模者有用的資訊。

AI驅動的序列圖生成

Visual Paradigm 提供強大的 AI 支援,用於 UML 序列圖,專注於將自然語言描述轉換為詳細且具架構正確性的互動模型。其工具讓您跳過手動繪製,直接從文字情境快速轉換為專業圖表,僅需數秒。

核心 AI 序列圖功能

  • 自然語言生成: 您可以輸入簡單提示,例如「使用者登入網站」,AI 會自動識別參與者(生命線)、訊息流程與激活序列。

  • 複雜邏輯自動化: AI 可根據您對條件邏輯的文字描述,智能處理先進的 UML 記法,例如替代片段(alt)、選項片段(opt)與迴圈。

  • AI 精細化工具: 此專用應用程式可將簡單的互動程式碼或高階提示轉換為詳細的 MVC(模型-視圖-控制器)藍圖。它會自動將情境分解為適當的架構層級,例如視圖、控制器與模型元件。

  • 對話式編輯: 透過「Visual Paradigm AI聊天機器人,您可以使用「新增重設狀態」或「將使用者重新命名為客戶」等指令,逐步優化圖表。

  • 智慧設計分析:您可以要求AI評估您的圖表,例如識別應轉為非同步以提升系統效能的同步呼叫。

生態系與整合

  • 多平台存取:使用 AI聊天機器人 或 Visual Paradigm Online,然後將其匯入 Visual Paradigm Desktop 應用程式中進行進階建模與程式碼工程。

  • 自動化文件產生:AI可直接從您的順序圖產生專案摘要、詳細行為模型以及MVC架構文件。

  • 跨模型協同:Visual Paradigm的AI可連結不同類型的圖表,例如將高階使用案例轉換為詳細的活動圖或順序圖,並透過引導式步驟分解完成。


  1. 參考資料
  2. UML順序圖:使用AI建模互動的完整指南:全面指南,說明如何使用AI建模UML順序圖與互動
  3. 如何使用AI聊天機器人將需求轉換為圖表:學習如何使用AI聊天機器人技術,將文字需求轉換為視覺化圖表
  4. 免費AI順序圖優化工具:存取Visual Paradigm的AI驅動工具,用於優化與增強順序圖
  5. AI順序圖優化工具 – Visual Paradigm:專業功能,支援AI輔助的順序圖建立與優化
  6. Visual Paradigm AI聊天機器人:透過自然語言互動式AI聊天機器人,用於建立與編輯UML圖表
  7. AI聊天機器人功能 – Visual Paradigm:AI聊天機器人用於圖表產生與建模功能的概覽
  8. Visual Paradigm AI順序圖教學:影片教學,示範AI驅動的順序圖建立
  9. 全面評測:Visual Paradigm 的 AI 圖表生成功能: 對 Visual Paradigm 的 AI 驅動圖表生成功能的深入評測
  10. Visual Paradigm AI 功能示範: Visual Paradigm 中 AI 功能的示範影片
  11. Visual Paradigm AI 教學: 展示 Visual Paradigm 中 AI 功能的教學
  12. 如何透過 Visual Paradigm 的 AI 驅動生態系統轉變 UML 開發: 分析 AI 如何改變 Visual Paradigm 中的 UML 開發工作流程