時序圖怎麼畫???

一、 什麼是時序圖?


時序圖(Sequence Diagram),亦稱爲序列圖、循序圖或順序圖,是一種 UML 交互圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作。

時序圖是一個二維圖,橫軸表示對象,縱軸表示時間,消息在各對象之間橫向傳遞,依照時間順序縱向排列。

二、 時序圖的作用是什麼?

1、展示對象之間交互的順序。將交互行爲建模爲消息傳遞,通過描述消息是如何在對象間發送和接收的來動態展示對象之間的交互;

2、相對於其他 UML 圖,時序圖更強調交互的時間順序;

3、可以直觀的描述併發進程。

三、 組成元素有哪些?

1. 角色(Actor)

系統角色,可以是人、機器、其他系統、子系統;在時序圖中用表示。

2. 對象(Object)

(1)對象的三種命名方式

(2)命名方式的選擇

三種命名方式均可,哪種最容易讓閱讀該時序圖的人理解,就選擇哪種。

(3)對象的排列順序

對象的左右順序並不重要,但是爲了作圖清晰整潔,通常應遵循以下兩個原則:把交互頻繁的對象儘可能的靠攏;2. 把初始化整個交互活動的對象放置在最左端。

3. 生命線(Lifeline)

在時序圖中表示爲從對象圖標向下延伸的一條虛線,表示對象存在的時間。

4. 控制焦點(Focus of Control)

又稱爲激活期,表示時間段的符號,在這個時間段內對象將執行相應的操作。它可以被理解成 C 語言語義中一對花括號 { } 中的內容;用小矩形表示。

5. 消息(Message)

消息一般分爲同步消息(Synchronous Message),異步消息(Asynchronous Message)和返回消息(Return Message)。

6. 自關聯消息

表示方法的自身調用或者一個對象內的一個方法調用另外一個方法。

7. 組合片段

組合片段用來解決交互執行的條件和方式,它允許在序列圖中直接表示邏輯組件,用於通過指定條件或子進程的應用區域,爲任何生命線的任何部分定義特殊條件和子進程。組合片段共有 13 種,名稱及含義如下:

常用組合片段舉例:

用來指明在兩個或更多的消息序列之間的互斥的選擇,相當於經典的 if..else..

(1)抉擇(Alt)

抉擇在任何場合下只發生一個序列。可以在每個片段中設置一個臨界來指示該片段可以運行的條件。else 的臨界指示其他任何臨界都不爲 True 時應運行的片段。如果所有臨界都爲 False 並且沒有 else,則不執行任何片段。

(2)選項(Opt)

包含一個可能發生或不發生的序列;

(3)循環(Loop)

片段重複一定次數,可以在臨界中指示片段重複的條件。

(4)並行(Par)

四、 時序圖的繪製工具

時序圖的繪製工具有 VISO、Rational Rose、StarUML、Web Sequence Diagrams、Timing Designer、Trufun Plato 等,可任選其一。

五、 時序圖的畫法及實例

時序圖的繪製步驟可簡單總結如下:

  1. 劃清邊界,識別交互的語境;

  2. 將所要繪製的交互場景中的角色以及對象梳理出來;

  3. 從觸發整個交互的某個消息開始,在生命線之間從上到下依次畫出所有消息,並註明每個消息的特性(如參數等)。

接下來,我們按照上面所講的時序圖的繪製步驟,以學生在教務系統中查詢其課程的成績爲例,來講解時序圖的繪製方法。

1、劃清邊界,識別交互的語境

所謂劃清邊界,就是要界定好自己所要畫的時序圖的範圍,“學生在教務系統中查詢其課程的成績” 就是所要繪製的時序圖的交互內容,不用往上延伸到用戶登錄,也不要往下延伸到下載成績單。

識別交互的語境,即是讀懂所要畫的時序圖的前提和背景。比如本例中,既然學生可以查詢成績,那麼該學生肯定已經註冊並認證過其身份,並可選擇其所考試的課程查詢相應成績。

2、梳理角色和對象

在本例中,角色有學生,對象有教務系統、課程、成績。

對象的梳理是一個相對主觀的過程,比如本例中,課程以及成績分別作爲了對象存在,也可以合併爲數據庫這一個對象。

請注意:角色以及對象,都爲名詞,動詞不可作爲角色和對象,如 “成績查詢” 不可作爲對象。

3、添加消息

學生的登錄驗證作爲本時序圖的前置行爲,可直接引用到本時序圖中,也可忽略不畫;學生進入成績查詢頁面後,頁面會加載本學生的成績查詢課程列表,並顯示出課程對應的成績;

參考資料:

  1. 時序圖 - 百度百科

  2. UML 序列圖總結 http://www.trufun.net/UML/UMLwendang/2016/0115/138.html

  3. UML 系列 - 時序圖 http://www.lupaworld.com/article-233409-1.html

  4. UML 建模之時序

  5. http://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/XqAm18KDnOjp_9_N-JaXLg