在描述對象之間的交互時,常會用到時序圖和協作圖,它們用來描述對象以及對象之間
的消息。時序圖是以時間為序的表示方法,主要用來描述對象之間的時間順序。
----------------------------------
時序圖(Sequen四Diagram) 描述了對象之間傳送消息的時間順序,它用來表示用例中
的行為順序。當執行 個用例行為時,時序圖中的每條消息對應了 個類操作或狀態機中引
起轉換的觸發事件。
時序圖包含了4個元素,分別是對象(0均ect)、生命線(L悔line)、消息(Message) 和
激活(Activation)。
1 對象
時序圖中對象的符號和對象圖中對象所用的符號一樣,都是使用矩形將對象名稱包含起來,
并且對象名稱下有下劃線。將對象置于時序圖的頂部意味著在交互開始的時候
對象就已經存在了,如果對象的位置不在頂部,那么表示對象是在交互的過程中被創建的。
2 生命線
生命線(Lifeline) 是一條垂直的虛線,表示時序圖中的對象在-段時間內的存在e 每個
對象的底部中心的位置都帶有生命線。 生命線是-個時間線,從時序圖的頂部一直延伸到底
部,所用的時間取決于交互持續的時間因對象與生命線結合在一起稱為對象的生命線,對象
的生命線包含矩形的對象圖標以及圖標下面的生命線。
提示: 實際上,對象的生命線可以代表一組對象.
3 消息
消息(Message) 定義的是對象之間某種形式的通信,它可以激發某個操作、喚起信號
或導致目標對象的創建或撤銷。消息序列可以用兩種圖來表示:時序圖和協作圖。其中,時
序圖強調消息的時間順序,而協作圖強調交換消息的對象間的關系。
消息是兩個對象之間的單路通信,從發送方到接收方的控制信息流。消息可以用于在對
象間傳遞參數。消息可以是信號,即明確的、命名的、對象間的異步通信;也可以是調用,
即具有返回控制機制的操作的同步調用。
在UML中,消息使用箭頭來表示,箭頭的類型表示了消息的類型,時序圖中常用的消息符號如下:

注意:消息在生命線上所處的位置并不是消息求生的準確時間.只是一個相對的位里.如果一個消息位
于另一個消息的上方,只說明它先于另一個消息被發送。
.4激活
時序圖可以描述對象的激活(Activation) 和去激活(Deactivation)。激活表示該對象被
占用以完成某個任務,去激活指的是對象處于空閑狀態,在等待消息。在UML中,為了表
示對象是激活的,可以將對象的生命線拓寬成為矩形。其中的矩形稱為激活
條或控制期,對象就是在激活條的頂部被激活的。對象在完成自己的工作后被去激活,這通
常發生在一個消息箭頭離開對象生命線的時候。
----------------------------------
如果要撤銷一個對象,只要在其生命線終止點放置一個"X"符號即可,該點通常是對
刪除或取消消息的回應。
----------------------------------
時序圖建模
一般情況下,會有很多時序圖,其中的一些是主要的,另一些用來描述可選擇的路徑或
例外條件,可以使用包來組織這些時序圖的集合,并給每個圖起一個合適的名字,以便與其
他圖相區別。
按時間順序對控制流建模,要遵循如下策略。
(1) 設置交互的語境,這些語境可以是系統、子系統、操作、類、用例或協作的腳本。
(2) 通過識別對象在交互中扮演的角色,設置交互的場景。以從左到右的順序將對象放
到時序圖的上方,其中較重要的放在左邊,與它們相鄰的對象放在右邊。
(3)為每個對象設置生命線。通常情況下,對象存在于整個交互過程中。對于那些在交
互期間創建和撤銷的對象,在適當的時刻設置它們的生命線,并用適當的構造型消息顯式地
說明它們的創建和撤銷。
(4) 從引發某個消息的信息開始,在生命線之間畫出從頂到底依次展開的消息,顯示每
個消息的特性(如參數)。若有需要,解釋交互的語義。
(5) 如果需要可視化消息的嵌套或實際計算發生時的時間點,可以用激活修飾每個對象
的生命期。
(6) 如果需要說明時間或空間的約束,可以用時間標記修飾每個消息,并附上合適的時
間和空間約束。
(7) 如果需要形式化地說明某控制流,可以為每個消息附上前置和后置條件。
一個單獨的時序圖只能顯示一個控制流,通常說來,一個完整的控制流肯定是復雜的,
所以,將 個大的流分為幾個部分放在不同的圖中是比較合適的。