UML时序图(Squence diagram)的设计介绍[通俗易懂](30分钟学会UML类图)
本文以starUML工具為例。
一、概念
UML時序圖,也叫順序圖,是一種詳細表示對象之間以及對象與參與者實例之間交互的圖,它由一組協作的對象(或參與者實例)以及它們之間可發送的消息組成,它強調消息之間的順序。
它詳細而直觀地表現了一組相互協作的對象在執行一個(或少量幾個)用例時的行為依賴關系,以及操作和消息的時序關系。
類圖是反映類、對象、接口等事物之間的依賴、繼承、實現關系等,主要是靜態關系,對對象之間的消息(交互情況)表達不夠詳細;;而順序圖既詳細又直觀的表達了消息傳遞,一張時序圖能表示跟該行為相關的少數幾個對象之間的交互。
二、時序圖的結構
序列圖(Sequence Diagram)是由對象(Object)、生命線(Lifeline)、激活(Activation)、消息(Messages)、分支與從屬流、組合片段(Combined Fragment)等元素構成的。
1、對象(Object)
對象就是指類的實例。我認為在序列圖中對象有三種狀態:激活、運行(存在)和銷毀。
2、生命線
生命線(Lifeline)是一條垂直的虛線,用來表示序列圖中的對象在一段時間內的存在。
3、激活
序列圖可以描述對象的激活(Activation),激活是對象操作的執行,它表示一個對象直接或通過從屬操作完成操作的過程。在UML圖中通過一個窄長的矩形來表示,矩形的高度表示對象存在的過程。
4、消息
消息(Messages)是對象間的一種通信機制。由發送對象向另一個或其他幾個接收對象發送信號,或由一個對象(發送者或調用者)調用另一個對象(接收者)的操作。
StarUML中,位置如下圖:
同步消息=調用消息(Synchronous Message)
消息的發送者把控制傳遞給消息的接收者,然后停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。
異步消息(Asynchronous Message)
消息發送者通過消息把信號傳遞給消息的接收者,然后繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是并發工作的。
自關聯消息
表示方法的自身調用以及一個對象內的一個方法調用另外一個方法。如下圖所示
5、執行者
表示這個對象是由誰來操作的.如下圖,都是由員工來操作的。
6、約束
約束的符號很簡單;格式是: [Boolean Test]
我的StarUML版本上,對于約束或條件,只有迭代器,返回值等幾個選項,如下圖:
7、組合片段
組合片段用來解決交互執行的條件及方式。它允許在序列圖中直接表示邏輯組件,用于通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。
在StarUML的左側工具欄中,符號如下:
選擇某一種組合片段的位置,在右側的屬性欄中:
常用的組合片段有:
a.抉擇(Alt)
抉擇用來指明在兩個或更多的消息序列之間的互斥的選擇,相當于經典的if..else..。
抉擇在任何場合下只發生一個序列。可以在每個片段中設置一個臨界來指示該片段可以運行的條件。else的臨界指示其他任何臨界都不為True時應運行的片段。如果所有臨界都為False并且沒有else,則不執行任何片段。
b.循環(Loop)
片段重復一定次數。可以在臨界中指示片段重復的條件。
c.并行(Par)
下表列出了常用的組合片段:
|
片段類型 |
名稱 |
說明 |
|
Opt |
選項 |
包含一個可能發生或可能不發生的序列。可以在臨界中指定序列發生的條件。 |
|
Alt |
抉擇 |
包含一個片段列表,這些片段包含備選消息序列。在任何場合下只發生一個序列。 可以在每個片段中設置一個臨界來指示該片段可以運行的條件。else的臨界指示其他任何臨界都不為True時應運行的片段。如果所有臨界都為False并且沒有else,則不執行任何片段。 |
|
Loop |
循環 |
片段重復一定次數。可以在臨界中指示片段重復的條件。 Loop組合片段具有“Min”和“Max”屬性,它們指示片段可以重復的最小和最大次數。默認值是無限制。 |
|
Break |
中斷 |
如果執行此片段,則放棄序列的其余部分。可以使用臨界來指示發生中斷的條件。 |
|
Par |
并行 |
并行處理。片段中的事件可以交錯。 |
|
Critical |
關鍵 |
用在Par或Seq片段中。指示此片段中的消息不得與其他消息交錯。 |
|
Seq |
弱順序 |
有兩個或更多操作數片段。涉及同一生命線的消息必須以片段的順序發生。如果消息涉及的生命線不同,來自不同片段的消息可能會并行交錯。 |
|
Strict |
強順序 |
有兩個或更多操作數片段。這些片段必須按給定順序發生。 |
有關如何解釋序列的片段
默認情況下,序列圖表明可能發生的一系列消息。在運行的系統中,可能會出現您未選擇顯示在關系圖上的其他消息。
以下片段類型可用于更改此釋義:
|
片段類型 |
名稱 |
說明 |
|
Consider |
考慮 |
指定此片段描述的消息列表。其他消息可發生在運行的系統中,但對此描述來說意義不大。 在“Messages”屬性中鍵入該列表。 |
|
Ignore |
忽略 |
此片段未描述的消息列表。這些消息可發生在運行的系統中,但對此描述來說意義不大。 在“Messages”屬性中鍵入該列表。 |
|
Assert |
斷言 |
操作數片段指定唯一有效的序列。通常用在Consider或Ignore片段中。 |
|
Neg |
否定 |
此片段中顯示的序列不得發生。通常用在Consider或Ignore片段中。 |
下面是一個完整的例子:(中間的用法,可能不太正確,請當做示意圖湊合著看)
總結
以上是生活随笔為你收集整理的UML时序图(Squence diagram)的设计介绍[通俗易懂](30分钟学会UML类图)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胡律师是什么梗
- 下一篇: Axure的中继器如何实现两个列表之间的