UML之時序圖


順序圖的概念: 順序圖是按時間順序顯示對象交互的圖。它顯示了參與交互的對象和所交換信息的先后順序,用來表示用例中的行為,並將這些行為建模成信息交換。

順序圖是一種交互圖,強調消息的時間順序,亦稱時序圖

 

順序圖主要包括四個元素:對象、生命線、激活和消息。

在UML中,順序圖將交互關系表示為一張二維圖。

其中縱向是代表時間維度,時間向下延伸,按時間依次列出各個對象所發出和接收的消息。水平方向是代表對象的維度,排列着參與交互的各個獨立的對象。

順序圖的三種主要作用:

1)細化用例的表達。本章前面我們已經提到,使用順序圖的一大用途,就是講用例所描述的需求與功能轉化為更加正式、層次更加分明的細化表達。

2)有效地描述類職責的分配方式。我們可以根據順序圖中各對象之間的交互關系和發送的消息來進一步明確對象所屬類的職責。

3)豐富系統的使用語境的邏輯表達。系統的使用語境即為系統可能的使用方式和使用環境。

 

順序圖的組成元素:對象、生命線、激活、消息。

 

對象

  順序圖中的對象與對象圖中的概念一樣,都是類的實例。順序圖中的對象可以是系統的參與者或者任何有效的系統對象。

  對象的創建由頭符號來表示,即在對象創建點的生命線頂部使用顯示對象名和類名的矩形框來標記。

  在位置上,一個被放置於順序圖頂端的對象,意味着在這個交互的開始之前,我們已經擁有這樣一個對象了。如果一個對象出現在其它位置上(不在頂端),則說明這個對象是在交互執行到某些步驟的時候被創建出來的。被創建出來的對象可以在接下來的時間里被其它對象的消息所激活,也可以以同樣的方式被銷毀。

 

生命線

  生命線代表了一次交互中的一個參與對象在一段時間內存在。具體地說,在生命線所代表的時間內,對象一直是可以被訪問的——可以隨時發送消息給它。

  在順序圖中,生命線位於每個對象的底部中心位置,顯示為一條垂直的虛線,與時間軸平行,帶有一個顯示對象的頭符號。

  對於在交互過程中被創建的對象,其生命線從接收到新建對象的消息時開始。對於在交互過程中被銷毀的對象,其生命線在接收到銷毀對象的消息時或在自身最后的返回消息之后結束,同時用一個“X”標記表明生命線的結束。

 

激活

  激活,又稱為控制焦點,表示一個對象執行一個動作所經歷的時間段,既可以是直接執行,也可以是安排下級過程執行。同時,激活也可以表示對應對象在這段時間內不是空閑的,它正在完成某個任務,或正被占用。

  激活在UML中用一個細長的矩形表示,顯示在生命線上,如圖8-5所示。矩形的頂部表示對象所執行動作的開始,底部表示動作的結束。

 

消息

  除了以上這些消息類型以外,Rose還擴充了兩種消息類型,分別是阻止消息與超時消息。

    阻止消息:當消息的發送者傳遞消息給接收者,如果接收者無法立即接收,則發送者放棄該消息。

    超時消息:若發送消息后接收者無法在指定時間內接收,則發送者放棄該消息。

 

順序圖中的結構化控制

在UML 2中,順序圖提供了“片段” 機制,可以通過順序圖來表達更加復雜的動作序列。

可選片段:關鍵字為opt,表示一種單條件分支。

條件片段:關鍵字為alt,表示一種多條件分支。

並行片段:關鍵字為par,表示片段內有多個並行子片段的片段。

循環片段:關鍵字為loop,表示一個循環。

交互片段:關鍵字為ref,表示對一段交互的引用。

 

 

 

順序圖建模技術

按時間順序對控制流建模:

  設置交互的語境。交互語境即交互所在的環境,包括交互屬於那個系統、子系統,包含哪些類和對象,對應於哪個用例或協作的腳本等。

  設置交互的場景,即識別對象在交互中扮演的角色,根據對象的重要性排列對象的順序。

  為對象設置生命線。

  按時間順序排列消息。

  設置激活期。

  附加時間和空間約束。

  設置前置與后置條件。

 

 

補充

順序圖的變體——時間圖

時間圖是UML 2中新增加的圖,相當於另一種顯示順序圖的方法。

時間圖與順序圖的主要不同之處有:

1)時間軸與對象軸交換了位置。在時間圖中,縱向表示不同對象,橫向表示時間的延伸。

2)不同對象的生命線在獨立的矩形框中顯示,矩形框縱向堆砌成整個圖。

3)對象可以有不同的狀態。每個對象的狀態在其生命線的最左側縱向排列,生命線通過上下起伏來表示對象當前所處的狀態。

4)可以顯示一個時間標尺。時間標尺上有時間刻度,用來表示時間間隔。

5)不同對象生命線上的時間是同步的。

 

 

建立順序圖的步驟:

1.確定需要建模的工作流

2.從左到右布置對象

3.添加消息和條件以便創建工作流

 

例子:系統用戶注冊模塊

 

 

 

案例(1)就餐

需求描述如下:

      客人到餐廳就餐,服務員提供菜單,客人點菜后把菜單交給服務員。服務員向客人確定菜單后,將菜單提交給大堂經理。大堂經理把菜單提交給大廚,大廚完成菜品后傳遞給大堂經理,大堂經理安排服務員傳菜。有的客人可能需要酒水,有的客人不需要酒水。客人結束用餐后,服務員提供賬單,客人結賬。

 

確認對象

 

確定出現順序

 

確定消息

 

 

 

案例(2)ATM機取款

需求描述如下:

  用戶通過ATM機,插入銀行卡。系統提示輸入密碼,用戶輸入密碼。系統檢查密碼是否正確,密碼正確用戶選擇取款。系統提示輸入取款金額。用戶輸入金額,系統判斷其合法性。在獲取用戶輸入金額后,系統開始事物處理,減少賬戶金額,輸出相應現金。

 

 

 

案例(3)成績查詢

需求描述如下:

  老師通過學號在系統查詢成績,有存在、不存在兩種情況。存在顯示成績,不存在顯示查無此人。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM