步步為營UML建模系列五、時序圖(Squence diagram)


概述

順序圖是一種詳細表示對象之間以及對象與參與者實例之間交互的圖,它由一組協作的對象(或參與者實例)以及它們之間可發送的消息組成,它強調消息之間的順序。

順序圖是一種詳細表示對象之間以及對象與系統外部的參與者之間動態聯系的圖形文檔。它詳細而直觀地表現了一組相互協作的對象在執行一個(或少量幾個)用況時的行為依賴關系,以及操作和消息的時序關系。類圖對對象之間的消息(交互情況)表達不夠詳細;詳細說明對消息的表達雖然詳細,但不夠直觀;順序圖既詳細又直觀,但通常只能表示少數幾個對象之間的交互。

 

時序圖基本上包含四種元素:
描述操作流程的用例文本:位於時序圖的左邊,使用空白將文本分開,這樣將容易知道哪句話對應於右邊的哪個元素。
對象:使用包含兩個名稱的方框表示,是直接從健壯性圖中搬過來的。這兩個名稱分別是類名和對象名(實例編號),格式為 class:object;可省略其中的任何一個名稱。也可以使用健壯性圖構造類型的方式來顯示對象,這將有助於跟蹤參與者,邊界對象和實現對象之間傳遞的消息。
消息:對象之間的箭頭。消息箭頭可位於兩條虛線,直線和方法矩形之間或兩個方法矩形之間。

方法(操作):用位於虛線上的矩形表示,該虛線屬於該方法所屬的對象。可以使用矩形的長度來反映擁有控制焦點的時間。控制焦點在理論上很有用,但實際上並非如此,因為大多數可視化建模工具在這方面的功能都不太強。如果在時序圖上顯示控制焦點較難,只需關閉這種功能即可。

 

序列圖的結構

序列圖(Sequence Diagram)是由對象(Object)、生命線(Lifeline)、激活(Activation)、消息(Messages)、分支與從屬流等元素構成的。

1、對象

對象就是指類的實例。我認為在序列圖中對象有三種狀態:激活、運行(存在)和銷毀。

image

2、生命線

生命線(Lifeline)是一條垂直的虛線,用來表示序列圖中的對象在一段時間內的存在。如下圖TravelApplication就是Manage類New的一個新生命線,他在初始化后運行了CalculateDate()方法.

image

3、激活

序列圖可以描述對象的激活(Activation),激活是對象操作的執行,它表示一個對象直接或通過從屬操作完成操作的過程。在UML圖中通過一個窄長的矩形來表示,矩形的高度表示對象存在的過程。

image

 

4、消息

消息(Messages)是對象間的一種通信機制。由發送對象向另一個或其他幾個接收對象發送信號,或由一個對象(發送者或調用者)調用另一個對象(接收者)的操作。

image

  同步消息=調用消息(Synchronous Message

  消息的發送者把控制傳遞給消息的接收者,然后停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。

  異步消息(Asynchronous Message

  消息發送者通過消息把信號傳遞給消息的接收者,然后繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是並發工作的。

  返回消息(Return Message

  返回消息表示從過程調用返回

 

自關聯消息(Self-Message

  表示方法的自身調用以及一個對象內的一個方法調用另外一個方法。如下圖所示,在Context類里調用了自身DoAction方法,DoAction方法又調用了SubmitData方法,SubmitData方法又調用了SendRequest方法.

image

 

5、執行者

表示這個對象是由誰來操作的.如下圖,都是由員工來操作的。

image

 

6、條件判斷:用於描述代碼中if…else…這種結構,標記為“alt”

image

 

7、Switch滿足條件就運行。

image

8、Loop循環,跟.NET中的For 和Foreach一樣.

image

 

9、Gateway 進入窗口,代碼從這里進行。如果Client就是一個gateway

image

 

10、接口,表示跟其它應用程序交互的接口.

image

 

11、丟失消息,Lost Message.

image

 

 

最后再來看下總體的Sequence diagram

image

 

image

 

歡迎各位參與討論,如果覺得對你有幫助,請點擊image    推薦下,萬分謝謝.

作者:spring yang

出處:http://www.cnblogs.com/springyangwc/

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

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



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