Sequence Diagram 序列圖

  • 12233
  • 0
  • uml
  • 2019-03-20

從相互作用這一術語來看,很明顯,該圖用於描述模型中不同元素之間的某種類型的相互作用。這種相互作用是系統動態行為的一部分。這種交互行為在UML中由兩個稱為序列圖協作圖的圖來表示。兩個圖表的基本目的都是相似的。時序圖強調消息的時間順序,協作圖強調發送和接收消息的對象的結構組織。

 

交互圖的目的

交互圖的目的是可視化系統的交互行為。可視化交互是一項艱鉅的任務。因此,解決方案是使用不同類型的模型來捕捉交互的不同方面。

序列和協作圖用於從不同的角度捕捉動態特性。

交互圖的目的是 -

  • 捕捉系統的動態行為。

  • 描述系統中的消息流。

  • 描述對象的結構組織。

  • 描述對象之間的交互。

如何繪製交互圖?

正如我們已經討論過的,交互圖的目的是捕捉系統的動態方面。因此,為了捕捉動態的方面,我們需要了解什麼是動態方面,以及它是如何可視化的。動態方面可以定義為特定時刻運行系統的快照

我們在UML中有兩種交互圖。一個是序列圖,另一個是協作圖。順序圖捕獲從一個對像到另一個對象的消息流的時間順序,協作圖描述參與消息流的系統中對象的組織。

在繪製交互圖之前,要明確以下事項

  • 對象參與交互。

  • 消息在對象之間流動。

  • 消息流動的順序。

  • 對象組織。

以下是對訂單管理系統建模的兩個交互圖。第一個圖是序列圖,第二個圖是協作圖

Interaction

  • 一個交互是行為的單位,專注於參與者之間的信息交換可見(有時間限制)。
  • UML 2.0中的4個交互圖:
    • 序列圖 - 交換消息的順序
    • 溝通圖 - 參與者之間的關係
    • 時序圖 - 參與者相對於時間的狀態變化
    • 交互概覽圖 - 活動狀表示法中的交互順序

  • 參與者用矩形和虛線(生命線)表示,
  • 消息由生命線之間的箭頭表示
  • 時間從上到下運行
  • 整個圖表代表一次交互

Lifeline - 可連接的Element 

可連接元素

  • 一組實例 (a set of instances)
  • 可以被視為指定類型的對象
  • 生命線(參與者)代表可連接的元素

執行規範(執行發生)

  • 生命線內行為單位執行的規範。
  • 發送和接收消息確定執行規範的開始和結束。

Message

SequenceDiagramMessage.png

消息類型

  • 同步消息(填充箭頭):
    • 調用者等待,直到被叫行為終止
    • 回复消息用虛線表示,打開或填充箭頭
  • 異步消息(打開箭頭):
    • 呼叫者不會等待,但在呼叫後繼續,不回复
  • 找到消息(從實心圓圈開始的空箭頭):
    • 接收器已知,發件人未知
  • 丟失信息(打開箭頭指向一個實心圓圈)
    • 發件人已知,收件人未知
  • 創建消息(虛線與打開的箭頭指向生命線的標題):
    • 圖中的這一點創建了新的生命線
  • 刪除消息(打開箭頭):
    • 物體破壞,停止(物體的破壞由生命線上的十字表示)

事件發生次數

  • 發送事件由感嘆號(!p)表示,
  • 接收事件由問號(?p表示,
  • 交互的有效序列:<!p,?p,!q,?q>
  • 這不是唯一有效的序列!

事件發生有效的trace

例子

序列圖有四個對象(Customer,Order,SpecialOrder和NormalOrder)。

下圖顯示為消息序列SpecialOrder對象和相同的可在的情況下,可以使用NormalOrder對象。了解消息流的時間順序很重要。消息流只是一個對象的方法調用。

第一個調用是sendOrder(),它是Order對象的一個方法下一個調用是confirm(),它是SpecialOrder對象的一個方法,最後一個調用是Dispatch(),它是SpecialOrder對象的一個方法下圖主要描述了從一個對像到另一個對象的方法調用,這也是系統運行時的實際場景。

UML序列圖

在哪裡使用交互圖?

我們已經討論過交互圖用來描述系統的動態特性。現在,我們將研究使用這些圖表的實際情況。為了理解實際應用,我們需要了解序列和協作圖的基本性質。

這兩個圖表的主要目的都與捕捉系統的動態行為相似。但是,具體目的更加重要,需要澄清和理解。

序列圖用於捕獲從一個對象流向另一個對象的消息順序。協作圖用於描述參與交互的對象的結構組織。單個圖表不足以描述整個系統的動態方面,因此使用一組圖表來整體捕捉它。

當我們想了解消息流和結構組織時,使用交互圖。消息流意味著從一個對像到另一個對象的控制流程的順序。結構組織是指系統中元素的可視化組織。

可以使用交互圖 -

  • 按時間順序對控制流進行建模。

  • 模擬結構性組織的控制流程。

  • 對於正向工程。

  • 用於逆向工程。

尋找UML在線編輯器?點擊一下即可編輯

其他UML資源

 

 

Visual Paradigm International