UML——時序圖
一、時序圖的含義
時序圖(Sequence Diagram)描述了物件之間傳遞訊息的時間順序,它用來表示用例中的行為順序,是強調訊息的時間順序的互動圖。
時序圖描述類系統中類和類之間的互動,它將這些互動建模成訊息交換,當執行一個用例行為時,時序圖總的每一條訊息對應了一個類操作或狀態機中引起轉換的觸發事件。
圖形上參與互動的各物件在時序圖的頂端排列,每一個物件的底端都繪製了一條垂直虛線,當一個物件向另一個物件傳送訊息時,此訊息開始於傳送物件底部的虛線,終止於接收物件底部的虛線,這些訊息用箭頭表示,水平放置,沿垂直方向排列,在垂直方向上,越靠近頂端的訊息越早被髮送。當物件收到訊息後,把訊息當做執行某種動作的命令。所以時序圖向用戶提供了事件流隨時間推移的、清晰的和視覺化的軌跡。
二、時序圖包含的元素
(1)物件
物件代表時序圖中的物件在互動中所扮演的角色。物件從左到右佈置在順序圖的頂部。
(2)訊息
一個物件到另一個物件的訊息用跨越物件生命線的訊息線表示。物件還可以傳送訊息給它自己,也就是說,
訊息線從自己的生命線出發又回到自己的生命線。
訊息的型別:
1)呼叫(Call):訊息的傳送者將請求傳遞給訊息的接收者,請求接收者物件執行某種操作。通常,這需要發
送者等待接收者返回訊息,所以這種訊息又叫做同步(synchronous)的訊息。
2)非同步(asynchronous)訊息:這種訊息中,傳送者把控制權轉交給接收者,但並不等操作完成。
(3)生命線
生命線代表時序圖中的物件在一段時期內的存在。每個物件底部中心都有一條垂直的虛線,這就是物件的
生命線,物件間的訊息存在於兩條虛線之間。
順序圖的基本圖符集:
三、時序圖的用途
(1)時序圖有生命線
生命線表示一個物件在一段時期內的存在,正是因為這個特性,使時序圖適合物件之間訊息的時間順序。
一般,物件的生命線從圖的頂部畫到底部,這表示物件存在於互動的整個過程,但物件也可以在整個互動中創
建和撤銷,
(2)時序圖有啟用期
啟用期代表一個物件直接或間接的執行一個動作的時間,啟用矩形的高度代表啟用持續時間。時序圖的這
個特性視覺化的描述了物件執行一項操作的時間,顯然這個特性使系統間物件的互動更容易理解
四、時序圖的建模技術
時序圖建模時,遵循如下策略:
(1)設定互動的語境,這些語境可以是系統、子系統、操作、類、用例和協作的一個指令碼。
(2)通過識別物件在互動中扮演的角色,根據物件的重要性,將其從左向右的方向放在時序圖中。
(3)設定每個物件的生命線。一般情況下,隊形存在於互動的整個過程,但它可以在互動過程中建立和撤銷。
(4)從引發某個互動的資訊開始,在生命線之間按從上向下的順序畫出隨後的訊息。
(5)設定物件的啟用期,這可以視覺化實際計算髮生時的時間點、視覺化訊息的巢狀。
(6)如果需要設定時間後空間的約束,可以為每個訊息附上合適的時間和控制元件約束。
(7)給某控制流的每個訊息附上前置或後置條件,這可以更詳細地說明這個控制流。
五、時序圖建模舉例
(1)飲料銷售機之“買飲料”理想場景建模
(2)零錢數量不對情況下的建模
(3)機房收費系統之學生上機