什麼是序列圖?全面指南
UML序列圖是互動圖,詳細說明操作是如何執行的。它們在協作背景下捕捉物件之間的互動。序列圖以時間為重點;它們使用圖表的垂直軸來表示時間,以視覺方式展示互動的順序,詳細說明發送了哪些訊息以及何時發送。
VP AI:自動化序列圖
雖然傳統建模需要手動拖放操作,Visual Paradigm AI顯著加速此過程。透過利用自然語言處理,VP AI 允許使用者描述一個情境——例如「使用者提交登入請求,系統將憑證與資料庫進行驗證,並返回成功令牌」——並自動生成完整的 UML 序列圖。此功能彌補了需求收集與視覺建模之間的差距,確保非技術利益相關者能夠參與架構設計,同時保持符合 UML 標準。
關鍵概念
在深入複雜情境之前,理解構成序列圖的基本元素至關重要:
- 物件維度(水平):水平軸顯示參與互動的元素。通常情況下,物件根據其參與訊息序列的時間,從左到右列出。
- 時間維度(垂直):垂直軸代表時間沿頁面向下推進。請注意,序列圖中的時間是關於順序,而非持續時間。除非特別以約束標示,否則垂直空間與互動的持續時間無關。
- 生命線:代表互動中的單一參與者。
- 激活:生命線上的一個細長矩形,代表元件執行操作的期間。頂部與啟動對齊,底部與完成對齊。
序列圖的目的
序列圖是多功能工具,用於:
- 模擬系統中活躍物件之間的高階互動。
- 模擬在實現用例的協作中,物件實例之間的互動。
- 模擬在實現操作的協作中,物件之間的互動。
- 捕捉在實現用例或操作的協作中發生的互動(實例圖或通用圖)。
序列圖符號
理解符號對於創建準確圖表至關重要。以下是 Visual Paradigm 中使用的標準視覺表示:
角色與訊息
- 角色:由與主題互動的實體所扮演的角色(例如,人類使用者、外部硬體)。角色位於主題之外。
- 呼叫訊息: 定義 Lifelines 之間的特定通訊。它代表對目標 Lifeline 上的操作的呼叫。
- 回傳訊息: 代表將資訊傳回至對應先前訊息的呼叫者。
- 自我訊息: 代表在同一直線上的訊息呼叫。
- 遞迴訊息: 自我訊息的一種變體,其中目標指向從訊息呼叫位置的激活上方的激活。
- 建立訊息: 代表目標 Lifeline 的實例化。
- 銷毀訊息: 代表請求銷毀目標 Lifeline 的生命週期。
- 持續時間訊息: 顯示訊息呼叫時兩個時間點之間的距離。
序列片段
UML 2.0 引入了序列片段以管理複雜的互動,例如迴圈和分支。序列片段以一個方框表示,稱為合併片段,包圍互動的一部分。
- alt: 多個替代片段;只有條件為真的那個會執行。
- opt: 選擇性;只有在提供的條件為真時才執行片段。
- par: 並行;每個片段同時執行。
- loop: 根據保護條件,片段可能執行多次。
- region: 關鍵區域;片段一次只能有一個執行緒執行。
- neg: 負面;片段顯示無效的互動。
- 參考: 參考;指在另一個圖表上定義的互動。
序列圖範例:飯店系統
序列圖通常用於細化使用案例情境。以下是用於預訂飯店房間的序列圖的概念描述:
情境: 啟動序列的物件是 預訂視窗。隨著時間推移,視窗會向 飯店系統 發送訊息以檢查可用性。如果可用,系統會發送 建立訊息 以建立新的 預訂物件.
註解: 類別與物件圖是靜態模型視圖。互動圖是動態的。它們描述物件如何隨時間協作。
序列圖 – 先建模再寫程式
有人可能會問:如果序列圖接近程式碼層級,為什麼不直接寫程式呢?以下是為什麼先建模更優越的原因:
- 抽象化: 優秀的序列圖略高於實際程式碼層級,使邏輯更清晰。
- 語言中立: 不論你使用 Java、C# 或 Python 編碼,邏輯都適用。
- 協作: 非程式設計者與利害關係人可以理解並驗證序列圖。
- 團隊效率: 團隊共同設計序列圖比一群人一起寫程式更容易。
- 測試與使用者介面: 模型可用於測試計畫與使用者介面草圖設計。
開始使用 Visual Paradigm
你已經了解序列圖是什麼,以及如何辨識其組成部分。Visual Paradigm 社群版是一款獲國際獎項肯定的 UML 建模工具,能快速、簡單且直覺地繪製這些圖表。它支援所有 UML 圖表類型,且完全免費供學習使用。