序列圖中的 Fragment 的類型(Loop、Opt、Par和Alt)
(還有:

)
序列圖主要用於展示對象之間交互的順序。
序列圖將交互關系表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的類元角色。類元角色用生命線表示。當對象存在時,角色用一條虛線表示,當對象的過程處於激活狀態時,生命線是一個雙道線。
消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。
序列圖中涉及的元素:
1. 生命線:
生命線名稱可帶下划線。當使用下划線時,意味着序列圖中的生命線代表一個類的特定實例。

2. 同步消息
發送人在它繼續之前,將等待同步消息響應。

3. 異步消息
在發送方繼續之前,無需等待響應的消息。

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 片段中。 |
原文地址:http://www.cnblogs.com/cy568searchx/p/6227238.html
二、例子
參考sparx的職員的視頻演示,對之前自己的EA使用進一步更正和完善:
http://www.sparxsystems.cn/resources/demos/sequence/sequencediagram.htm
注:
1.順序圖是一種交互圖,強調消息的時間順序,亦稱時序圖
2.水平軸表示系統中所有對象
3.垂直坐標表示時間
4.了解怎么設置順序圖的關鍵部件:Actor lifeLine Message Fragment。
1.創建工程
2.建包
3.添加模塊

4.選擇模塊

5.第一個消息
6.消息返回

7.完善消息

8.創建對象

9.分支處理
fragment 的狀態:Alt-選擇 loop-循環 break-跳出循環 可以靈活應用在時序圖的各個時間段內

10.最終效果

參考:https://blog.csdn.net/quanjin24k/article/details/40424943
