在軟體工程領域,系統序列圖是一種展示處理互動的視覺工具,這些互動依時間順序排列。這種圖表不僅突顯了參與的處理過程和物件,還顯示了為實現功能而交換的訊息序列。系統序列圖通常與使用案例的實現緊密相關,尤其是在4+1架構視圖模型中。在某一具體的使用案例情境中,這些圖表顯示了外部角色生成的事件、它們的順序,以及可能的跨系統事件。
系統序列圖應該針對使用案例的主要成功情境以及常見或複雜的替代情境進行編製。
系統序列圖顯示多種處理程序或物件,並以垂直的生命線表示這些物件,這使得它們可以同時存在。橫向箭頭則表示各物件之間按照事件發生的順序所交換的訊息,這樣的圖形化表示法可以清楚地指定簡單的執行時情境。系統序列圖應該明確顯示以下幾個要素:
專業人員在開發專案時,經常使用系統序列圖來說明用戶與系統之間如何執行特定任務。這些任務可能包含重複性、簡單或複雜的活動。其目的在於以視覺化的格式展示使用案例。熟悉統一建模語言(UML)是繪製系統序列圖的必要條件。
這些模型展示了角色(影響系統的人)與系統執行任務之間的邏輯。
閱讀序列圖通常是從頂部開始,解析到角色或系統下方的細節。在每個角色或系統下都有長長的虛線,稱為"生命線",這些生命線與動作之間連接的線顯示著角色或系統之間的互動。訊息通常會在系統序列圖的上下出現,詳細說明該行動的內容。例如,一個角色的登錄請求可能會以 login(用戶名,密碼)表示。每執行一個動作後,相應的回應或下一步動作會位於前一動作下方。透過自上而下的閱讀方式,可以詳細了解提到的模型中,特定動作如何被執行,以及執行的先後順序。
如果生命線代表一個物件,則它展示了一個角色。留下實例名稱空白可以表示匿名且未命名的實例。
訊息通過帶有訊息名稱的橫向箭頭進行展示,實心箭頭表示同步呼叫,而開放箭頭表示非同步訊息。虛線則表示回覆訊息。如果呼叫者發送同步訊息,則必須等到該訊息完成,才能繼續下一步動作;如果發送非同步訊息則可以繼續其處理,無需等待回應。非同步呼叫在多執行緒應用程序、事件驅動應用程序以及基於訊息的中介軟體中都十分常見。
啟動框或方法呼叫框是繪製在生命線上面的不透明矩形,表示根據訊息執行的過程。如果某個物件被銷毀(從記憶體中移除),則需在生命線下方畫上X,並在其下方不再繪製虛線。這應該是通過某條訊息引發的,無論是來自物件自身,或是其他物件的呼叫。
UML對序列圖的能力進行了重要的改進,這些改進基於互動片段的概念,這些片段代表了封閉互動內的較小部分,能夠表示平行執行、條件分支和可選互動。
隨著信息技術的不斷進步和使用案例的演變,系統序列圖的應用愈加廣泛。它們不僅僅是技術人員之間的溝通工具,更是理解系統如何運作的關鍵,幫助開發者、用戶及管理層達成共識。面對日益複雜的系統結構,我們是否應該重新思考如何使用這些圖形工具,以便更好地理解和開發我們的軟體產品?