02、Java模式--UML時序圖


時序圖

描述了對象之間傳遞消息的時間順序,用來表示用例中的行為順序,是強調消息時間順序的交互圖。

時序圖提供了隨時間推移的、清晰的、可視化的軌跡。

時序圖的組成

時序圖組成:時序圖包括四個元素對象(Object)、生命線(Lifeline)、激活(Activation)、消息(Message)。

對象(Object)

時序圖中的對象在交互中扮演的角色就是對象。

時序圖中的對象與對象圖中的表示方法一樣,使用矩形將對象名稱包含起來,並且對象名稱下有下划線。

對象可以在交互開始的時候創建,也可以在交互過程中進行創建。

處於頂部 : 如果對象的位置在時序圖頂部, 說明在交互開始的時候對象就已經存在了;
不在頂部 : 如果對象的位置不在頂部, 那么對象在交互過程中創建的;

生命線(Lifeline)

生命線是一條垂直的虛線,這條虛線表示對象的存在,在時序圖中,每個對象的底部都有生命線。

生命線是一個時間線,從時序圖頂部一直到底部都存在,其長度取決於交互的時間。

對象與生命線結合在一起就是對象的生命線,這個概念包含對象圖標以 對象下面的生命線圖標。

激活(Activation)

代表時序圖中對象執行一項操作的時期,激活期可以理解為語義中 {} 中的內容,表示該對象被占用以完成某個任務。

激活:當對象處於激活時期,生命線可以拓寬為矩形,這個矩形條成為激活條

去激活:指對象處於空閑狀態,在等待消息激活這個對象。

激活和去激活的時機:

激活:對象激活是在激活條的頂部來激活。

去激活:激活條的底部去激活,通常發送在一個消息離開對象生命線。

消息(Message)

定義交互和協作中交換信息的類,對對象之間的通信內容建模。

: 兩個對象間繪制消息。
: 兩個對象之間的過程調用。
: 兩個對象之間的異步消息。
: 過程調用中返回的消息。
: 繪制反身消息。

消息動作

動作種類:消息允許在實體間傳遞信息 (傳遞參數),允許實體請求其它服務,對象之間通過發送和接收消息進行通信。

產生結果:消息可以觸發操作,喚起信號,或使目標對象創建或銷毀。

消息的異步和同步通信

異步通信:消息是信號的時候,發送信號之后,等待對方觸發相應方法,這是明確的命名的對象間的異步通信。

同步通信:直接調用對象的方法,執行方法返回結果,這種具有返回控制機制的操作是同步通信。

時序圖示例

使用場景 : 汽車租賃公司。

使用的對象 : Customer (客戶)、Worker (工作人員)、Order (請求)、 Record (記錄)、Car (汽車)。

工作流程 :

① 客戶向工人提出租車要求
② 工人檢查請求
③ 客戶付款
④ 工人填寫記錄
⑤ 工人取車

使用時序圖來表示則如下所示:

對象的創建和撤銷

對象的創建

對象位置:

頂部 : 時序圖中對象的默認位置是在時序圖頂部,這表明對象在交互開始之間就已經存在。

中間 : 如果對象在時序圖中間部分,說明對象時在交互過程中創建的。

交互過程中創建對象的方法:

消息指向對象 : 消息是構造方法,箭頭指向對象所代表的的矩形。

消息指向激活條 : 消息是構造方法,箭頭指向對象下面的激活條。

對象的撤銷

如果想要在時序圖中撤銷一個對象,因為如果同時有幾個對象,如果不進行特殊操作其生命周期將會一樣長;

效果圖 : 下圖中將 Customer 和 Order 對象撤消了,因為它們基本沒有參與后期的交互。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM