序列圖主要用于展示對象之間互動的順序。
序列圖将互動關系表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的類元角色。類元角色用生命線表示。當對象存在時,角色用一條虛線表示,當對象的過程處于激活狀态時,生命線是一個雙道線。時序圖中包括如下元素:角色,對象,生命線,激活期和消息。
消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。
序列圖中涉及的元素:
1、角色(Actor)
系統角色,可以是人或者其他系統,子系統。
2,對象(Object)
對象代表時序圖中的對象在互動中所扮演的角色,位于時序圖頂部。
對象一般包含以下三種命名方式:
第一種方式包含包含對象名和類名
第二種方式隻顯示類名不顯示對象名,即為一個匿名對象。
第三種方式隻顯示對象名不顯示類名。
3. 生命線:
生命線名稱可帶下劃線。當使用下劃線時,意味着序列圖中的生命線代表一個類的特定執行個體。
4. 同步消息
發送人在它繼續之前,将等待同步消息響應。
5. 異步消息
在發送方繼續之前,無需等待響應的消息。
6. 注釋
7. 限制
限制的符号很簡單;格式是: [Boolean Test]
8. 組合片段
組合片段用來解決互動執行的條件及方式。它允許在序列圖中直接表示邏輯元件,用于通過指定條件或子程序的應用區域,為任何生命線的任何部分定義特殊條件和子程序。
常用的組合片段有:
抉擇(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 片段中。 |
Visio繪制時序圖
為什麼要繪制時序圖?
我們編碼的時候,知道有的用例的業務邏輯按照比較确定的時間先後順序進行展開。這時候,我們就需要知道我們設計的系統中的不同類之間傳遞消息(可以認為是不同對象函數間的調用)要按照怎麼樣的順序、傳遞什麼消息、傳回什麼消息。這時候用時序圖是最好不過的了。
時序圖的定義:
時序圖是描述消息時間順序的互動圖。在圖形上,時序圖是一張表,其中顯示的對象沿橫軸排列,從左到右分布在圖的頂部;而消息則沿縱軸按時間順序排序。建立時序圖時,以能夠使圖盡量簡潔為依據布局。
用visio建立時序圖
1、選擇模版
2、常見符号
時序圖建立步驟
1、确定互動過程的上下文;
2、識别參與過程的互動對象;
3、為每個對象設定生命線;
4、從初始消息開始,依次畫出随後消息;
5、考慮消息的嵌套,标示消息發生時的時間點,則采用FOC(focus of control);
6、說明時間限制的地點。
下面以團購系統的取消訂單為例。