UML - 互動圖



從術語“互動”可以看出,該圖用於描述模型中不同元素之間某種型別的互動。這種互動是系統動態行為的一部分。

UML中用兩種圖來表示這種互動行為,即序列圖協作圖。兩種圖的基本目的都是相似的。

序列圖強調訊息的時間順序,而協作圖強調發送和接收訊息的物件的結構組織。

互動圖的目的

互動圖的目的是視覺化系統的互動行為。視覺化互動是一項困難的任務。因此,解決方案是使用不同型別的模型來捕捉互動的不同方面。

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

互動圖的目的是:

  • 捕捉系統的動態行為。

  • 描述系統中的訊息流。

  • 描述物件的結構組織。

  • 描述物件之間的互動。

如何繪製互動圖?

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

UML中有兩種互動圖。一種是序列圖,另一種是協作圖。序列圖捕捉從一個物件到另一個物件的訊息流的時間順序,而協作圖描述參與訊息流的系統中物件的組織。

繪製互動圖之前,需要明確識別以下內容:

  • 參與互動的物件。

  • 物件之間訊息的流動。

  • 訊息流動的順序。

  • 物件組織。

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

序列圖

序列圖有四個物件(客戶、訂單、特殊訂單和普通訂單)。

下圖顯示了特殊訂單物件的傳送訊息序列,對於普通訂單物件也可以使用相同的序列。理解訊息流的時間順序非常重要。訊息流只不過是物件的呼叫方法。

第一個呼叫是sendOrder(),它是Order物件的方法。下一個呼叫是confirm(),它是SpecialOrder物件的方法,最後一個呼叫是Dispatch(),它是SpecialOrder物件的方法。下圖主要描述了從一個物件到另一個物件的方法呼叫,這也是系統執行時的實際場景。

UML Sequence Diagram

協作圖

第二個互動圖是協作圖。它顯示瞭如下所示的物件組織。在協作圖中,方法呼叫序列透過某種編號技術來指示。數字表示方法一個接一個呼叫的方式。我們使用了相同的訂單管理系統來描述協作圖。

方法呼叫類似於序列圖。但是,區別在於序列圖不描述物件組織,而協作圖顯示物件組織。

要在這兩種圖之間進行選擇,重點在於需求型別。如果時間順序很重要,則使用序列圖。如果需要組織,則使用協作圖。

UML Collaboration Diagram

在何處使用互動圖?

我們已經討論過,互動圖用於描述系統的動態特性。現在,我們將研究這些圖的實際應用場景。要了解實際應用,我們需要了解序列圖和協作圖的基本特性。

兩種圖的主要目的是相似的,因為它們都用於捕捉系統的動態行為。但是,具體的目的是更重要的澄清和理解。

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

當我們想要了解訊息流和結構組織時,可以使用互動圖。訊息流表示從一個物件到另一個物件的控制流序列。結構組織表示系統中元素的視覺化組織。

互動圖可用於:

  • 透過時間序列建模控制流。

  • 透過結構組織建模控制流。

  • 正向工程。

  • 逆向工程。

廣告