天天看點

UML序列圖總結Visio繪制時序圖

序列圖主要用于展示對象之間互動的順序。

序列圖将互動關系表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的類元角色。類元角色用生命線表示。當對象存在時,角色用一條虛線表示,當對象的過程處于激活狀态時,生命線是一個雙道線。時序圖中包括如下元素:角色,對象,生命線,激活期和消息。

  消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。 

  序列圖中涉及的元素:

1、角色(Actor)

系統角色,可以是人或者其他系統,子系統。

2,對象(Object)

對象代表時序圖中的對象在互動中所扮演的角色,位于時序圖頂部。

對象一般包含以下三種命名方式:

第一種方式包含包含對象名和類名

第二種方式隻顯示類名不顯示對象名,即為一個匿名對象。

第三種方式隻顯示對象名不顯示類名。

  3. 生命線:

  生命線名稱可帶下劃線。當使用下劃線時,意味着序列圖中的生命線代表一個類的特定執行個體。

UML序列圖總結Visio繪制時序圖

  4. 同步消息

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

UML序列圖總結Visio繪制時序圖

   

  5. 異步消息

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

UML序列圖總結Visio繪制時序圖

  6. 注釋

UML序列圖總結Visio繪制時序圖

  7. 限制

  限制的符号很簡單;格式是: [Boolean Test]

UML序列圖總結Visio繪制時序圖

  8. 組合片段

  組合片段用來解決互動執行的條件及方式。它允許在序列圖中直接表示邏輯元件,用于通過指定條件或子程序的應用區域,為任何生命線的任何部分定義特殊條件和子程序。

  常用的組合片段有:

  抉擇(Alt)

  抉擇用來指明在兩個或更多的消息序列之間的互斥的選擇,相當于經典的if..else..。

  抉擇在任何場合下隻發生一個序列。 可以在每個片段中設定一個臨界來訓示該片段可以運作的條件。else 的臨界訓示其他任何臨界都不為 True 時應運作的片段。如果所有臨界都為 False 并且沒有 else,則不執行任何片段。

UML序列圖總結Visio繪制時序圖

  選項(Opt)

  包含一個可能發生或不發生的序列

UML序列圖總結Visio繪制時序圖

  循環(Loop)

  片段重複一定次數。 可以在臨界中訓示片段重複的條件。

UML序列圖總結Visio繪制時序圖

  并行(Par)

UML序列圖總結Visio繪制時序圖

  下表列出了常用的組合片段:

片段類型 名稱 說明
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、選擇模版

UML序列圖總結Visio繪制時序圖

2、常見符号

UML序列圖總結Visio繪制時序圖

時序圖建立步驟

  1、确定互動過程的上下文;

  2、識别參與過程的互動對象;

  3、為每個對象設定生命線;

  4、從初始消息開始,依次畫出随後消息;

  5、考慮消息的嵌套,标示消息發生時的時間點,則采用FOC(focus of control);

  6、說明時間限制的地點。

下面以團購系統的取消訂單為例。

UML序列圖總結Visio繪制時序圖