UML 順序圖

順序圖 併發

順序圖是交互圖的一種形式,它顯示對象沿生命線發展,對象之間隨時間的交互表示爲從源生命線指向目標生命線的消息。順序圖能很好地顯示那些對象與其它那些對象通訊,什麼消息觸發了這些通訊,順序圖不能很好顯示覆雜過程的邏輯。 框架

生命線 異步

一條生命線在順序圖中表明一個獨立的參與者。表示爲包含對象名的矩形,若是它的名字是"self",則說明該生命線表明控制帶順序圖的類元。 spa

有時,順序圖會包含一個頂端是執行者的生命線。這狀況說明掌握這個順序圖的是用例。健壯圖中的邊界,控制和實體元素也能夠有生命線。 3d

消息 對象

消息顯示爲箭頭。消息能夠完成傳輸,也可能丟失和找回,它能夠是同步的,也能夠是異步的,便可以是調用,也能夠是信號。在下圖中,第一條消息是同步消息(標爲實箭頭)完成傳輸,並隱含一條返回消息。第二條消息是異步消息 (標爲實線箭頭),第三條是異步返回消息(標爲虛線)。 blog

執行發生 遞歸

向下延伸的細條狀矩形表示執行事件或控制焦點的激活。在上圖中有三個執行事件。第一個是源對象發送兩條消息和收到兩條回覆。第二個是目標對象收到一條同步消息並返回一條回覆。第三個是目標對象收到一條異步消息並返回一條回覆。 事件

內部通訊 同步

內部消息表現爲一個操做的遞歸調用,或一個方法調用屬於同一個對象的其餘方法。顯示爲生命線上執行事件的嵌套控制焦點。

迷路消息和拾取消息

迷路消息是那些發送了卻沒有到達指定接收者,或者到達的接收者再也不當前圖中。拾取消息是收到來自那些未知的發送者,或者來自沒有顯示在當前圖的發送者的消息。它們都代表是去往或來自一個終點元素。

生命線開始與結束

生命線能夠在順序圖時間刻度範圍內建立和銷燬,在下面的例子中,生命線被中止符號(叉號)終止。在前面的例子中,生命線頂端的符號(Child)顯示在比建立它的對象符號(parent)沿頁面要低的位置上。下圖顯示建立和終止對象。

時間和期限約束

消息默認顯示爲水平線。由於生命線顯示爲沿屏幕向下的時間通道,因此當給實時系統建模,或是有時間約束的業務過程建模,考慮執行動做所需時間長度是很重要的。所以能夠給消息設置一個期限約束,這樣的消息顯示爲下斜線。

複合片斷

如前面所說,順序圖不適合表達複雜的過程邏輯。在一種狀況下,有許多機制容許把必定程度的過程邏輯加入到圖中,並把它們放到複合片斷的標題下。複合片斷是一個或多個處理順序被包含在一個框架中,並在指定名稱的環境下執行。 片斷能夠是:

  • 選擇性片斷 (顯示 "alt") 爲 if…then…else 結構建模。
  • 選項片斷 (顯示 "opt") 爲 "switch"(開關) 結構建模。
  • 中斷片斷對被處理事件的可選擇順序建模,而不是該圖的其餘部分。
  • 並行片斷(顯示 "par") 爲併發處理建模。
  • 弱順序片斷 (顯示 "seq") 包含了一組消息,這組消息必須在後繼片斷開始以前被處理。但不會把片斷內消息的前後順序強加到不共享同一條生命線的消息上。
  • 嚴格順序片斷 (顯示 "strict") 包含了一系列須要按照給定順序處理的消息。
  • 非片斷 (顯示 "neg") 包含了一系列不可用的消息。
  • 關鍵片斷 具備關鍵部分。
  • 忽略片斷 聲明一個沒有意義的消息,若是它出如今當前上下文中。
  • 考慮片斷與忽略片斷相反,不包含在考慮片斷內的消息都應該被忽略。
  • 斷言片斷 (顯示 "assert")標明任何沒有顯示爲聲明操做數的順序都是無效的。
  • 循環片斷 包含一系列被重複的消息。

    下圖顯示的是循環片斷:

    這也是一個相似於複合片斷的交互發生。 交互發生被其餘圖參考,顯示爲左上角帶"ref",將被參考圖名顯示在方框的中間。

    門是鏈接片斷內消息和片斷外消息的鏈接點。 在EA中,門顯示爲片斷框架上的小正方形。做用爲順序圖與頁面外的鏈接器。 用來表示進來的消息源,或者出去消息的終點。下面兩個圖顯示它們在實踐中的使用。注意:" top level diagram"中的門用消息箭頭指向參考片斷,在這裏沒有必要把它畫成方塊。

       

    部分分解

    一個對象能夠引出多條生命線,使得對象內部和對象之間的消息顯示在同一圖上。

    狀態常量 / 延續

    狀態常量是生命線的約束,運行時始終爲"真"。顯示爲兩側半圓的矩形,以下圖:

    延續雖與狀態常量有一樣的標註,可是被用於複合片斷,並能夠延伸跨越多條生命線。

相關文章
相關標籤/搜索