時序圖(Sequence Diagram),又名序列圖、循序圖,是壹種UML交互圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作。它可以表示用例的行為順序,當執行壹個用例行為時,其中的每條消息對應壹個類操作或狀態機中引起轉換的觸發事件。
時序圖描述對象是如何交互的,並且將重點放在消息序列上。也就是說,描述消息是如何在對象間發送和接收的。時序圖有兩個坐標軸:縱坐標軸顯示時間,橫坐標軸顯示對象。每壹個對象的表示方法是:矩形框中寫有對象和 / 或類名,且名字下面有下劃線;同時有壹條縱向的虛線表示對象在序列中的執行情況 ( 即發送和接收的消息對象的活動 ) , 這條虛線稱為對象的生命線。對象間的通信用對象的生命線之間的水平的消息線來表示,消息線的箭頭說明消息的類型,如同步,異步或簡單 。 瀏覽時序圖的方法是,從上到下查看對象間交換的消息,分析那些隨著時間的流逝而發生的消息交換。
時序圖中的消息可以是信號、操作調用或類似於 C++ 中的 RPC ( Remote Procedure Call,遠程過程調用)或 Java 中的 RMI ( Remote Method Invocation , 遠程方法調用)。當對象接收到壹個消息時,該對象中的壹項活動就會啟動,我們把這壹過程稱做激活 ( Activation )。 激活會顯示控制焦點,表明對象在某壹個時間點開始執行。壹個被激活的對象或者是執行它自身的代碼,或者是等待另壹個對象的返回(該被激活的對象已經向另壹個對象發送了消息)。在圖形上,激活被繪制為對象生命線上的壹個瘦高矩形。
消息可以用消息名及參數來標識。消息還可帶有條件表達式,表示分支或決定是否發送消息。如果用於表示分支,則每個分支是相互排斥的,即在某壹時刻僅可發送分支中的壹個消息。消息也可以有順序號,但是在時序圖中,消息的順序號很少使用,因為時序圖已經將消息的順序顯式地表示出來了。
壹個對象可以通過發送消息來創建另壹個對象,當壹個對象被刪除或自我刪除時,該對象用 "X"標識。
創建步驟
1、確定交互過程的上下文;
2、識別參與過程的交互對象;
3、為每個對象設置生命線;
4、從初始消息開始,依次畫出隨後消息;
5、考慮消息的嵌套,標示消息發生時的時間點,則采用FOC(focus of control);
6、說明時間約束的地點。