http://blog.csdn.net/doniexun/article/details/38317537
2. 時序圖組成
時序圖組成 : 時序圖包括四個元素 對象(Object), 生命線(Lifeline), 激活(Activation), 消息(Message);
(1) 對象(Object)
對象 : 時序圖中的對象在交互中扮演的角色就是對象;
對象的符號 : 時序圖中的對象與對象圖中的表示方法一樣, 使用矩形將對象名稱包含起來, 並且對象名稱下有下划線;
對象創建時機 : 對象可以在交互開始的時候創建, 也可以在交互過程中進行創建;
-- 處於頂部 : 如果對象的位置在時序圖頂部, 說明在交互開始的時候對象就已經存在了;
-- 不在頂部 : 如果對象的位置不在頂部, 那么對象在交互過程中創建的;
(2) 生命線(Lifeline)
生命線 : 生命線是一條垂直的虛線, 這條虛線表示對象的存在, 在時序圖中, 每個對象的底部都有生命線;
生命線作用 : 生命線是一個時間線, 從時序圖頂部一直到底部都存在, 其長度取決於交互的時間;
對象的生命線 : 對象與生命線結合在一起就是對象的生命線, 這個概念包含對象圖標 以及 對象下面的生命線圖標 如上圖;
(3) 激活(Activation)
激活(Activation) : 代表時序圖中對象執行一項操作的時期, 激活期可以理解為語義中 {} 中的內容, 表示該對象被占用以完成某個任務;
去激活(Deactivation) : 指對象處於空閑狀態, 在等待消息激活這個對象;
激活的表示 : 當對象處於激活時期, 生命線可以拓寬為矩形, 這個矩形條成為激活條;
激活去激活的時機 :
-- 激活 : 對象激活是在激活條的頂部激活;
-- 去激活 : 激活條的底部去激活, 通常發生在一個消息離開對象生命線;
(4) 消息
消息概念 : 定義 交互 和 協作 中 交換信息 的類, 對 對象之間的 通信內容 建模;
消息動作 :
-- 動作種類 : 消息允許在實體間傳遞信息 (傳遞參數), 允許實體請求其它服務, 對象之間通過 發送 和 接收 消息 進行通信;
-- 產生結果 : 消息可以觸發操作, 喚起信號, 或使目標對象創建 或 銷毀;
消息的異步和同步通信 :
-- 異步通信 : 消息是信號的時候, 發送信號之后, 等待對方觸發相應方法, 這是明確的 命名的 對象間的異步通信;
-- 同步通信 : 直接調用對象的方法, 執行方法返回結果, 這種具有返回控制機制的操作是同步通信;
時序圖和協作圖中消息的區別 : 時序圖中的消息強調順序, 協作圖中的消息強調交換消息的對象間的關系;
消息類型 :
-- : 兩個對象間繪制消息;
-- : 兩個對象之間的過程調用;
-- : 兩個對象之間的異步消息;
-- : 過程調用中返回的消息;
-- : 繪制反身消息;
3. 時序圖示例
示例簡介 :
-- 使用場景 : 汽車租賃公司;
-- 使用的對象 : Customer (客戶), Worker (工作人員), Order (請求), Record (記錄), Car (汽車);
-- 工作流程 : ① 客戶 向 工人 提出租車要求, ② 工人 檢查 請求, ③ 客戶 付款, ④ 工人 填寫 記錄, ⑤ 工人 取車;
時序圖 :
4. 對象的創建和撤銷
對象位置 :
-- 頂部 : 時序圖中對象的默認位置是在時序圖頂部, 這表明對象在交互開始之間就已經存在;
-- 中間 : 如果對象在時序圖中間部分, 說明對象時在交互過程中創建的;
交互過程中創建對象的方法 :
-- 消息指向對象 : 消息是構造方法, 箭頭指向對象所代表的的矩形;
-- 消息指向激活條 : 消息是構造方法, 箭頭指向對象下面的激活條;
撤銷對象 : 如果想要在時序圖中撤銷一個對象, 因為如果同時有幾個對象, 如果不進行特殊操作其生命周期將會一樣長;
-- 效果圖 : 下圖中將 Customer 和 Order 對象撤消了, 因為它們基本沒有參與后期的交互;