1. 程式人生 > >步步為營UML建模系列五、時序圖(Squence diagram)

步步為營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)

  返回訊息表示從過程呼叫返回

  表示方法的自身呼叫以及一個物件內的一個方法呼叫另外一個方法。如下圖所示,在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