序列圖的主要目的:展示對象間交互的順序。詳細介紹可以參考上一篇文章,序列圖是一個二維圖。縱向是時間軸,時間沿着豎線向下延伸,橫向軸代表了在協作中各個獨立對象的類元角色,也稱作生命線,當對象存在時,角色用一條虛線表示,當對象的過程處於激活狀態時,生命線是一個雙道線。
舉例:
1、生命線
生命線名稱可帶下劃線。當使用下劃線時,意味着序列圖中的生命線代表一個類的特定實例。
2、同步消息
發送人在它繼續之前,將等待同步消息響應。
3、異步消息
在發送方繼續之前,無需等待響應的消息。
4、註釋
5、約束
約束的符號很簡單,中括號包括約束內容:[Boolean Test]
6、組合片段
組合片段用來解決交互執行的條件及方式,它允許在序列圖中直接表示邏輯組件,用於通過制定條件或子進程的應用區域,爲任何生命線的任何部分定義特殊條件和子進程。
<1>抉擇(Alt)
抉擇用來指明在兩個或更多的消息序列之間的互斥的選擇,相當於經典的if...else...。
抉擇在任何場合下只發生一個序列。可以在每個片段中設置一個臨界來指示該片段可以運行的條件。else的臨界指示其他任何臨界都不爲true時應運行的片段。如果所有的臨界都爲false並且沒有else,則不執行任何片段。
<2>選項(Opt)
包含一個可能發生或不能發生的序列
<3>循環(Loop)
片段重複一定次數。可以在臨界中指示片段重複的條件。
<4>並行(Par)
一個生命線中持續操作的部分
下面還有幾種常見的組合片段:
1、Opt(選項)
包含一個可能發生或可能不發生的序列。可以在臨界中指定序列發生的條件。相對於OR
2、Alt(抉擇)
包含一個列表,這些片段中包含備選信息序列。在任何場合下只能發生一個序列。可以在每個片段中設置一個臨界來指示該運行的條件。else的臨界指示其他任何臨界都不爲True時運行的片段。如果所有的臨界都爲False並且沒有else,則不執行任何片段。相當於swith...if..
3、Loop(循環)
片段重複一定次數。可以在臨界中指示片段重複的條件。
loop組合片段具有”Min“和”Max“屬性,它們指示片段可以重複的最小和最大次數。默認值是無限制。相當於freach....for
4、Break(中斷)
如果執行片段,則放棄序列的其餘部分。可以使用臨界來指示發生中斷的條件。
5、Par(並行)
並行處理。片段中的事件可以交錯。
6、Critical(關鍵)
用在par或Seq片段中。指示此片段中的消息不得與其他消息交錯。
7、Seq(弱順序)
有兩個或更多操作數片段。涉及同一生命線的消息必須以片段的順序發生。如果消息涉及的生命線不同,來自不同片段的消息可能會並行交錯。
8、Strict(強順序)
有兩個或更多操作數片段。這些片段必須按給定順序發生。
解釋序列的片段
默認情況下,序列圖表明可能發生的一系列消息。在運行的系統中,可能會出現您未選擇顯示在關係圖上的其他消息。
需要考慮更改此釋義
1、consider(考慮)
指定此片段描述的消息列表。其他消息可發生在運行的系統中,但對此描述來說意義不大。
可在”Message“屬性中鍵入該列表
2、Ignore(忽略)
此片段描述的消息列表。這些消息可發生在運行的系統中,但對此描述來說意義不大。在”Message“屬性中鍵入該列表。
3、Assert(斷言)
操作數片段指定唯一有效的序列。通常在consider或Ignore片段中。
4、Neg(否定)
在此片段中顯示的順序不得發生。通常在Consider或Ignore片段中。