時序圖構成元素主要包含6種:角色、對象、生命線、控制焦點、消息、組合片段。
時序圖,又叫序列圖、順序圖、循序圖,它是一種描述對象行為的UML交互圖,主要用來更直觀的表現各個對象交互的時間順序,體現的重點是各個對象發送消息、接收消息、處理消息、返回消息的時間流程順序。
時序圖是一個二維圖,橫軸表示對象,縱軸表示時間,消息在各對象之間橫向傳遞,依照時間順序縱向排列。
時序圖還可以顯示對象之間的控制結構。例如:用於銀行方案的時序圖中的生命線可以表示客戶、銀行出納或銀行經理,客戶、銀行出納和銀行經理之間的通信由他們之間互相傳遞的消息表示。
支援多人線上同屏創作,可設置分享連結,即時傳遞資訊
只需輸入一句話,自動生成所需圖形,並自動美化圖形風格
內建多種主題風格,也可自由設計喜愛的樣式
支援插入圖示、圖片、標籤、備註LaTex公式、程式碼塊、連結、附件等多種形式元件
支援匯出PNG、VISIO、PDF、SVG等格式,支援匯入VISIO、Mermaid格式
檔案即時儲存,多端裝置雲同步,歷史版本可追溯,資料安全有保障
時序圖構成元素主要包含6種:角色、對象、生命線、控制焦點、消息、組合片段。
對象位於時序圖的頂部,以一個矩形表示。對象的命名方式一般有三種:
1)顯示對象名和類名,例如:“蘋果手機:手機”
2)只顯示對象名,不顯示類名,例如:“蘋果手機:”
3)只顯示類名,不顯示對象名,例如: “:手機”
消息一般分為同步消息、異步消息、返回消息、自關聯消息。
同步消息:對象發送消息後,需要接收消息的對象響應完畢並返回消息時才會進行其餘的工作,以“實線箭頭”表示;
異步消息:對象發送消息後,不需要等待接收對象的返回消息可以繼續執行其餘的工作,以“實線+大於號”表示;
返回消息:從過程調用返回,以“虛線箭頭”表示
自關聯消息:表示方法的自身調用,或者一個對象內的一個方法調用另外一個方法,以一個“半閉合的長方形+下方實線箭頭”表示
組合片段是由矩形表示的邏輯分組,它包含會影響消息流的條件結構,用於通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。
組合片段共有13種,可以使用組合片段來以一種緊湊而簡潔的方式描述多種控制和邏輯結構。
時序圖可以在開發流程的不同階段使用,來描述系統中對象之間的交互。
分析:在分析階段,時序圖可以幫助標識系統需要的類以及對象在交互中執行的操作。
設計:在設計階段,時序圖說明系統如何工作來完成交互。
構造:在構造系統體系結構期間,可以使用時序圖來說明設計模式的行為以及系統使用的機制。
時序圖和協作圖都是UML交互圖,可以相互轉化,具備相似的責任主體,都是通過消息驅動,具有順序性。
但也有明顯區別,時序圖表達的是對象之間產生合作發生消息的時間順序,協作圖表達的是對象之間的合作關係。
對象的命名方式一般有三種:
1)顯示對象名和類名
2)只顯示對象名,不顯示類名
3)只顯示類名,不顯示對象名
這三種命名方式都符合標準,哪種最容易讓閱讀人理解,就選擇哪種。
不是。時序圖強調的是時間垂直排列,從上到下是事件發生的順序。所以後一條消息的“線條”+“箭頭”,一定要在前一條消息的下方,不能高於前一條消息。
有時,我們需要表示發送消息和返回消息之間的間隔要小於指定時間,這時也可以在序列圖中使用某種特殊方法來表示,如{t2-t1<1s}。
不能。時序圖用於描述對象間消息交互,行為流程或操作路徑應該用流程圖、活動圖、狀態圖來表達。
儘量不要把所有交互全部放在一個圖裡,否則會導致圖形混亂難以閱讀,複雜交互可拆分成多個子圖表示,每個時序圖應聚焦一個用例或一個功能場景。
不能。同步消息表示必須等待返回結果(如函數調用),異步消息表示發送後繼續執行(如發送消息隊列)。混用會導致並發邏輯錯誤。
返回消息能幫助分析交互結果是否被處理,尤其在方法調用和服務響應中應標明返回,所以在繪製時序圖時要製作返回消息,並且明確返回值。
ProcessOn是一款在線作圖工具,支持在線繪製時序圖,並提供海量時序圖模板供克隆使用,可以完美替代Visio,歡迎體驗。