什麼是序列圖

兩者都序列圖和協作圖都是互動圖的一種。互動圖關注系統的動態視圖。一個序列圖是一種強調訊息時間順序的互動圖。它描述了情境中涉及的物件與類別,以及為實現情境功能所需交換的物件間訊息序列。通常,您會使用一個序列圖來指定用例的主要流程,並使用該圖的變體來指定用例的異常流程。
Sequence Diagram, UML Diagrams Example: Break Communication Fragment - Visual Paradigm Community Circle

序列圖的組成元件

物件

在UML中,序列圖中的物件以一個包含物件名稱(下劃線)的矩形表示。物件可以以三種方式命名:物件名稱、物件名稱及其類別,或僅類別名稱(匿名物件)。物件命名的三種方式如下方圖所示。

生命線

協作(情境)參與者的實體以水平方式寫在圖表的頂部。生命線以每個物件下方的虛線垂直線表示。這些線表示物件的存在。

Lifelines

物件名稱可以是具體的(例如:myAccount),也可以是通用的(例如:myAccount :Account)。通常,可使用匿名物件(:Account)來代表該類別中的任何物件。每個物件還有一條以物件下方的虛線表示的時間軸。物件之間的訊息以從發送者物件指向接收者物件的箭頭表示。

物件導向系統中的所有事物都是由物件完成的。物件負責管理資料、在系統中移動資料、回應查詢以及保護系統。物件透過彼此溝通或互動來協作。

訊息

訊息以水平方式顯示操作的呼叫。它們從發送者繪製到接收者。順序由垂直位置表示,第一則訊息顯示在圖表頂端,最後一則訊息顯示在底部。因此,序列號是可選的。

線條類型與箭頭形狀表示所使用的訊息類型:

  1. 一個同步訊息(通常為操作呼叫)以實線搭配實心箭頭表示。這是用於發送者與接收者之間正常通訊的常規訊息呼叫。
    Lifelines with synchronous message
  2. 一個回傳訊息使用虛線搭配空心箭頭。
    Lifelines with return message
  3. 一個非同步訊息具有實線搭配空心箭頭。訊號是一種無回應的非同步訊息。
    Lifelines with asynchronous

建立與銷毀訊息

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

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

Lifelines with constructorA

解構訊息會銷毀其接收者。在互動過程中,還有其他方式可以表示目標被銷毀。只有當目標的銷毀設定為「解構後」時,才需要使用解構訊息。

Lifelines with destructor

非瞬間訊息

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

Lifelines with instantaneous message

控制焦點

控制焦點代表元件執行作業的期間。矩形的頂部與起始時間對齊,底部與完成時間對齊。

迭代符號

迭代符號表示訊息會多次傳送給多個接收物件,就像在遍歷集合時發生的情況。你可以在方括號內顯示迭代的基礎,例如 *[for all order lines]。

範例:訂購

此範例展示了一個包含三個參與物件的順序圖:顧客、訂單與庫存。即使你尚未正式了解符號的定義,大概也能理解其中的運作情形。

  1. 步驟 1 和 2:顧客建立訂單。
  2. 步驟 3:顧客將商品加入訂單。
  3. 步驟 4、5:逐一檢查每項商品在庫存中的可用性。
  4. 步驟 6、7、8:若商品可取得,則加入訂單。
  5. 步驟 9 回傳
  6. 步驟 10、11:儲存並銷毀訂單

Sequence Diagram example

順序片段

在 UML 順序圖中,合併片段可讓你顯示迴圈、分支及其他選擇。合併片段由一個或多個互動操作數組成,每個操作數包含一個或多個訊息、互動使用或合併片段。

順序片段以稱為合併片段的方框表示,用以包覆順序圖中的一段互動。片段運算子(位於左上角)表示片段類型。片段類型包括 ref、assert、loop、break、alt、opt 和 neg、ref、sd。

順序圖符號總覽

運算子 意義
alt 多個片段的替代:僅條件為真的片段會執行。
opt 選擇性: 碎片僅在提供的條件為真時執行。等同於僅有一個蹤跡的 alt。
平行 平行: 每個碎片會並行執行。
迴圈 迴圈: 碎片可能執行多次,而守衛條件則表示迭代的依據。
關鍵區段 關鍵區段: 碎片在同一時間只能有一個執行緒在執行。
負面 負面: 碎片顯示一個無效的互動。
參考 參考: 指向另一張圖表中定義的互動。框線會繪製以涵蓋互動中涉及的生命線。您可以定義參數和傳回值。
序列圖 序列圖: 用於包圍整個序列圖。

範例 – 下單情境

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

Sequence Diagram example

Visual Paradigm 支援序列圖及其他 UML 圖表類型。您可以在使用序列圖建模系統的動態行為時,找到所有所需的工具。

快速影片 – 繪製序列圖的 5 個步驟

總結

序列圖是基於時間順序的物件協作模型。它顯示物件在特定使用案例情境中如何與其他物件互動。透過先進的視覺化建模功能,您只需點幾下即可建立複雜的序列圖。此外,Visual Paradigm 可根據您在使用案例描述中定義的事件流程,自動產生序列圖。

 

參考資料

Leave a Reply