轉載:https://www.cnblogs.com/silent2012/archive/2011/09/14/2172219.html
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、綜合示例