1. 程式人生 > >UML學習(三):序列圖(順序圖/物件順序圖)

UML學習(三):序列圖(順序圖/物件順序圖)

UML的模型中可分為兩種,動態模型和靜態模型。用例圖、類圖和物件圖都是UML中的靜態結構模型。而在UML系統動態模型的其中一種就是互動檢視,它描述了執行系統功能的各個角色之間相互傳遞訊息的順序關係。序列圖就是互動檢視的一種形式。

1、序列圖的定義

  序列圖是對物件之間傳送訊息的時間順序的視覺化表示。序列圖的主要用途是把用例表達的需求,轉化為進一步、更加正式層次的精細表達。用例常常被細化為一個或者更多的序列圖。同時序列圖更有效地描述如何分配各個類的職責以及各類具有相應職責的原因。

2、序列圖的結構

  序列圖(Sequence Diagram)是由物件(Object)、生命線(Lifeline)、啟用(Activation)、訊息(Messages)、分支與從屬流等元素構成的。

2.1、物件

  物件就是指類的例項。我認為在序列圖中物件有三種狀態:啟用、執行(存在)和銷燬。

        

2.2、生命線

  生命線(Lifeline)是一條垂直的虛線,用來表示序列圖中的物件在一段時間內的存在。見上圖。

2.3、啟用

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

        

2.4、訊息

  訊息(Messages)是物件間的一種通訊機制。由傳送物件向另一個或其他幾個接收物件傳送訊號,或由一個物件(傳送者或呼叫者)呼叫另一個物件(接收者)的操作。

        

  在UML中訊息分為5類:遞迴呼叫、普通操作、返回訊息、非同步呼叫的訊息、過程呼叫的訊息。

2.5、分支與從屬流

  在UML中存在兩種方式可以來修改序列圖中訊息的控制流,分別是:分支和從屬流。

  分支是指從同一點發出的多個訊息並指向不同的物件,根據條件是否互斥,可以有條件和並行兩種結構。

  從屬流指的是從同一點發出多個訊息指向同一個物件的不同生命線。

3、綜合示例