序列圖

 

   序列圖 (Sequence Diagram ) 是按時間順序描述了對象 間的交互模式 ;它利用對象的“生命線”和它們之間傳遞的消息 來顯示對象如何參與交互。

      序列圖(Sequence Diagram) 是一個模型,用於描述對象組如何隨着時間在某些行爲方面進行協作。序列圖捕獲單一用例 的行爲,同時顯示在特定用例的時間框架 中的對象以及這些對象之間傳遞的消息。序列圖並不顯示對象之間的關係。

      序列圖是一種強調消息的時序交互圖,它由活動者(Actor)、對象(Object )、消息(Message)、生命線(Lifeline)和控制焦點(Focus of control)組成。在UML 中對象表示爲一個矩形,其中對象名稱標有下劃線;消息在序列圖中由有標記的箭頭表示;生命線由虛線表示。控制焦點由薄薄的矩形表示。

      序列圖將交互關係表示爲一個二維圖,縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的 元角色。類元角色的活動用生命線表示。當對象存在時,生命線用一條縱向虛線表示,當對象的過程處於激活狀態時,生命線是一個雙道線。

      序列圖以圖的形式詳細描述了業務角色業務主角 之間的交互,以及如何在執行業務用例 時訪問業務實體 。序列圖簡要描述了參與的業務角色的工作,從激活的角度描述瞭如何操作業務實體,以及它們如何通過發送消息實現通信。

部分個人登記處業務用例的序列圖。

      也可以使用協作圖 介紹序列圖中表示的信息(請參見指南:業務對象模型 中的協作圖)。 © 1987 - 2001 Rational  Software Corporation。版權所有。

序列圖具有的用途

      ·  當不同的類之間存在多個簡短的方法時,描述控制流的整體序列 
      ·  顯示併發進程和激活 
      ·  顯示在協作圖中難以描述的時間序列 
      ·  顯示涉及類交互而與對象無關的一般形式

如何創建序列圖  
 

本部分包含以下內容:

·                      生成序列圖
·                      完善生成的序列圖

生成序列圖

1.                 如果需要,請啓動 IDE
2.                 在“項目”窗口中,展開 "UMLTutorialProject " >“模型 ”節點。
3.                 右鍵單擊 "CollaborationDiagram " 節點,然後從上下文菜單中選擇“通過選定的元素創建圖”。

將打開“新建嚮導”窗口,並顯示“創建新圖”頁面。

 

 
您可以從上下文菜單列出的兩類可用的交互圖中選擇一種類型 :協作圖和序列圖。這些圖主要強調對象之間的交互關係。

 

4.                 在“圖類型”列表中,選擇“序列圖”。
5.                 在“圖名稱”字段中,鍵入 SequenceDiagram
6.                 保留“名稱空間”字段中的缺省設置,並單擊“確定”。
IDE 將執行以下操作:
o                                在 CollaborationDiagram  節點下創建 SequenceDiagram  節點
o                                在圖編輯器中顯示新圖,該圖是由生命線元素以及來自協作圖的消息構成的
o                                打開“建模組件 面板”,顯示在創建序列圖過程中使用的圖標。


該圖應當與下面的圖類似。
 

完善生成的序列圖

事務中的對象被繪製成點狀豎線,其名稱顯示在頂部。由於在創建序列圖時無法預先定義生命線元素的順序,因此您需要在此時重新排序這些元素。
1.                 選擇標記爲 User 的生命線,將其移至圖的左側。
2.                 重新排序其餘的生命線元素,使其均勻地分佈於圖編輯器中。按以下順序從左到右依次放置生命線:
o                                User
o                                ATM
o                                Consortium
o                                Branch
 
 


現在,該圖應當與下面的圖類似。

 

 

添加自調用消息元素

 

 

 

 

自調用消息圖元素表示調用對象時使用的消息。本圖中表示的內部操作是對 ATM 對象中現有現金的驗證。
1.                  您可能需要延長生命線元素,以方便消息元素的放置。要延長生命線,請按照下列步驟操作:
a. 選擇 User 生命線元素。
b. 單擊底部中心的藍色方框,然後向下拖動方框以延長生命線。
c. 重複步驟 a 和 b,延長其他的生命線,直至該圖與下面的圖類似。
 
 
 
2.                 從“建模組件面板”的“基本”類別,選擇“自調用消息”圖標 。
3.                 單擊延長的 ATM 生命線元素的下半部分。

IDE 將在此生命線上放置一個自調用消息元素。
4.                 單擊鼠標右鍵以取消選擇“自調用消息”圖標。
5.                 在自調用消息元素中,單擊位於下面的消息箭頭。

消息的屬性將顯示在“屬性”窗口中。
6.                 在“屬性”窗口的“名稱”字段中,鍵入 validateCashOnHandOperation ,然後按 Enter 鍵。
7.                 右鍵單擊自調用消息元素中上面的消息箭頭,然後從上下文菜單中選擇“操作”。下圖指示了放置光標的位置。請注意頂部箭頭上方的雙豎線。
 
 


8.                 從操作列表中選擇 "public boolean getIsOperating "。

您會看到對該消息的上部進行了標記,如下圖所示。

 

 


 

 

使用調用消息元素

 

 

 

 

由於 validateCashOnHand  操作是 ATM 類的一部分,因此需要在生命線上放置一個消息流來調用該操作。
1.                 從“建模組件面板”的“基本”類別,選擇“同步消息”圖標 。
2.                 單擊現有藍條下的 User 生命線元素。
3.                 在您第一次單擊位置的右側再次直接單擊 ATM 生命線元素。

圖上將出現一個消息和一個返回消息。

 

 
如果不希望返回消息出現在圖上,請右鍵單擊圖編輯器的空白區域。從上下文菜單中取消選擇“顯示所有返回消息”。

 

4.                   
5.                 右鍵單擊剛剛創建的消息,從上下文菜單中選擇“操作”>“添加操作”。
 
 
 
 鍵入 validateCashOnHand ,然後按 Enter 鍵。

IDE 將在圖上標記該消息,然後將消息作爲操作添加到類圖 的 ATM 類中。在“項目”窗口中,展開 ATM 類節點,確認操作列表與下面的圖類似。


 

使用自動擴展消息選項

 

 

 

 

爲了便於設計過程的順利進行,IDE 有一個自動擴展消息的選項。如果將自動擴展設置爲選中狀態,則在圖上放置新消息時,其佔用的空間便會擴展爲消息的寬度。
1.                 要設置自動擴展選項,請在 User 和 ATM 元素名稱之間的跟蹤中單擊鼠標右鍵。

打開上下文菜單。
2.                 選擇“將寬度設置爲消息寬度”。

兩個元素名稱之間的跟蹤中將會出現一個指示器欄,如下圖所示。
 
 


3.                 重複上述步驟,設置 ATM 和 Consortium 元素之間以及 Consortium 和 Branch 元素之間的消息寬度選項。
返回頁首

 

使用創建消息符號

 

 

 

 

 

“創建消息”符號可以創建生命線元素或實例。
1.                 從“建模組件面板”的“基本”類別,選擇“創建消息”圖標 。
2.                 單擊 Branch 生命線的下半部分。

 

 
請一定要單擊在線上,否則將不能正確繪製鏈接。

 

3.                 繪製鏈接,直至 Branch 生命線的右側,然後再次單擊。

這樣便會在圖上放置一個消息和一條生命線,如圖所示。
 
 

5.                 單擊鼠標右鍵以取消選擇該圖標。
6.                 選擇新的生命線。

“屬性”窗口將顯示此生命線元素的屬性。
7.                 在“屬性”窗口中標記爲“表示類元”的行上,單擊向下箭頭。

將會出現一個下拉列表。
8.                 從下拉列表中選擇 "CashierStation",然後按 Enter 鍵。
9.                  單擊圖編輯器,查看這個帶有標籤的生命線元素。

 

 
您可以適當放寬此新生命線元素,直至看到其完整的名稱 CashierStation 爲止。

 

10.              該圖應當與下面的圖類似。
 
 
 

 

添加異步鏈接

 

 

 

 

 

異步消息元素表示不阻止調用對象的消息。此類消息能夠創建新對象、創建新線程 並與現有線程進行通訊。
1.                 從“建模組件面板”的“基本”類別,選擇“異步消息”圖標 。
2.                 單擊 Branch 生命線元素,然後單擊 CashierStation 生命線元素,在 Branch 和 CashierStation 生命線之間繪製一條鏈接。
3.                 單擊鼠標右鍵以取消選擇該圖標。
4.                 右鍵單擊新鏈接,然後從上下文菜單中選擇“操作”> "public int getStationID "。

該操作將向此消息添加操作,如下圖所示。

  

 

使用組合片段元素

 

組合片段允許在序列圖上直接表示邏輯組件,如備選項、選項、異常、並行合併、循環、求反、臨界區域和斷言等。組合片段提供了一種方法,通過指定條件或子進程的應用區域,該方法可以爲任何生命線的任何部分定義特殊條件和子進程。
1.                 從“建模面板”的“控制”類別,選擇“組合片段”圖標 。
2.                 要繪製組合片段元素以封裝消息 public void validateCashOnHand ,請單擊表示該消息的藍色虛線矩形的外部,然後拉伸矩形,以圍住該消息。

切記在單擊時不要選中任何生命線元素。您的組合片段應當如下圖所示。
 
 


3.                 單擊鼠標右鍵以取消選擇該圖標。
 
 
4.                 右鍵單擊組合片段元素中的 "assert " 標籤,然後選擇“交互運算符”> "loop"。

 

 
loop 交互運算符指定組合片段表示一個循環。每次重複循環時,就會計算觸發表達式的結果。觸發表達式可以包括特定次數的循環迭代。

 

5.                 右鍵單擊標記爲 "loop " 的組合片段,然後從上下文菜單中選擇“交互操作數”>“編輯交互約束”。

IDE 會在目標組合片段元素中顯示一個表達式框。
6.                 雙擊單詞 expression,使表達式處於可編輯狀態,如下圖所示。
 
 


7.                 鍵入 x < 10 ,然後按 Enter 鍵。
8.                 單擊圖編輯器。

這個表達式將被接受並顯示在框中。該圖應當與下面的圖類似。
 
 

 

保存圖

 

當您完成了序列圖後,便可保存該圖。
1.                 在圖編輯器中,右鍵單擊 "SequenceDiagram " 標籤。
2.                 從上下文菜單中選擇“保存文檔”。

這將關閉菜單並保存序列圖。

 

 
退出 IDE 時,系統會提示您是否要保存該圖。

 

返回頁首

 

小結
 

 

在本教程中,您瞭解瞭如何使用現有的類圖和協作圖來創建序列圖。具體學習瞭如何執行下列任務:
·                     從現有的協作圖生成序列圖
·                     使用“建模組件面板”中的圖標將消息添加到圖
·                     將鏈接添加到圖
·                     添加組合片段元素
·                     保存圖
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章