序列圖主要用於展現對象之間交互的順序。異步
序列圖將交互關係表示爲一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸表明了在協做中各獨立對象的類元角色。類元角色用生命線表示。當對象存在時,角色用一條虛線表示,當對象的過程處於激活狀態時,生命線是一個雙道線。ide
消息用從一個對象的生命線到另外一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。 oop
序列圖中涉及的元素:spa
1. 生命線:3d
生命線名稱可帶下劃線。當使用下劃線時,意味着序列圖中的生命線表明一個類的特定實例。對象
2. 同步消息blog
發送人在它繼續以前,將等待同步消息響應。進程
3. 異步消息事件
在發送方繼續以前,無需等待響應的消息。ci
4. 註釋
5. 約束
約束的符號很簡單;格式是: [Boolean Test]
6. 組合片斷
組合片斷用來解決交互執行的條件及方式。它容許在序列圖中直接表示邏輯組件,用於經過指定條件或子進程的應用區域,爲任何生命線的任何部分定義特殊條件和子進程。
經常使用的組合片斷有:
抉擇(Alt)
抉擇用來指明在兩個或更多的消息序列之間的互斥的選擇,至關於經典的if..else..。
抉擇在任何場合下只發生一個序列。 能夠在每一個片斷中設置一個臨界來指示該片斷能夠運行的條件。else 的臨界指示其餘任何臨界都不爲 True 時應運行的片斷。若是全部臨界都爲 False 而且沒有 else,則不執行任何片斷。
選項(Opt)
包含一個可能發生或不發生的序列
循環(Loop)
片斷重複必定次數。 能夠在臨界中指示片斷重複的條件。
並行(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 片斷中。 |