快速學習時序圖:時序圖簡介、畫法及實例

2020-12-19 人人都是產品經理

時序圖作為常用的UML交互圖,可以直觀的傳達系統內外之間的交互過程,經常用在詳細設計文檔中。下面本文綜合參考了多篇時序圖的教程,根據作者的思路將時序圖做了更深入的講解。

一、 什麼是時序圖?

時序圖(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建模之時序http://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html

 

本文由 @那隻貓的魚 原創發布於人人都是產品經理。未經許可,禁止轉載。

相關焦點

  • 收藏系列-UML建模之時序圖(Sequence Diagram)
    一、時序圖簡介(Brief introduction)       二、時序圖元素(Sequence Diagram Elements
  • 實例介紹UML時序圖用法
    本文和大家重點討論一下UML時序圖的應用,運用UML的軟體開發技術,我們可以把模塊與實際應用功能緊密聯繫起來。以便通過設計出的功能模塊與代碼之間的映射關係描述出最終的軟體代碼框架,同時確保代碼改進時模塊也可以隨之更新。
  • plc時序圖怎麼畫_plc時序圖編程方法
    時序圖是描述設備工作過程的時間次序圖,也是用於直觀分析設備工作過程的一種圖形。如電子技術中的觸發器、定時器、計數器等均用時序圖來描述其工作原理。在plc順序控制設計法編制梯形圖程序時往往是先畫出時序圖,再根據時序圖設計流程圖,再按流程圖編制梯形圖程序。   一、plc時序圖編程方法:   時序圖編程設計法適用PLC各輸出信號的狀態變化有一定的時間順序的場合,要求系統工作時所有的動作都在定時器的控制下按時間順序工作。
  • 解析UML時序圖的四大元素
    解析UML時序圖的四大元素 本文向大家介紹一下UML時序圖,UML時序圖描述對象是如何交互的,並且將重點放在消息序列上。也就是說,描述消息是如何在對象間發送和接收的。
  • 時序圖中的實線和虛線分別表示什麼意思
    什麼是時序圖   時序圖(Sequence Diagram),又名序列圖、循序圖、順序圖,是一種UML交互圖。   2、對象(Object)   對象代表時序圖中的對象在交互中所扮演的角色,位於時序圖頂部和對象代表。對象實例類角色。   對象一般包含以下三種命名方式:   第一種方式包含對象名和類名。   第二種方式只顯示類名不顯示對象名,即為一個匿名對象。
  • 時序圖和類圖的關係
    什麼是時序圖   時序圖(Sequence Diagram),又名序列圖、循序圖、順序圖,是一種UML交互圖。   時序圖和類圖的關係   類圖和時序圖是在軟體系統設計中直接和程序代碼相關聯的圖,準確地說,程序代碼是由類圖直接產生,而時序圖可以定義類圖的方法。
  • 看懂UML類圖和時序圖
    一起學習、成長、溫情的熱愛生活圖丨pexels這裡不會將UML的各種元素都提到,我只想講講類圖中各個類之間的關係;能看懂類圖中各個類之間的線條、箭頭代表什麼意思後,也就足夠應對日常的工作和交流;同時,我們應該能將類圖所表達的含義和最終的代碼對應起來
  • 時序圖、活動圖、狀態圖、協作圖的區別
    時序圖時序圖用於描述對象之間的傳遞消息的時間順序, 即用例中的行為順序.當執行一個用例時, 時序圖中的每條消息對應了一個類操作或者引起轉換的觸發事件.在 UML 中, 時序圖表示為一個二維的關係圖, 其中, 縱軸是時間軸, 時間延豎線向下延伸. 橫軸代表在協作中各個獨立的對象. 當對象存在時, 生命線用一條虛線表示, 消息用從一個對象的生命線到另一個對象的生命線的箭頭表示. 箭頭以時間的順序在圖中上下排列.
  • 如何看懂時序圖(經典)
    以下是LCD1602的時序圖:  大家要慢慢學會看時序圖,要知道操作一個器件的精華便蘊藏在其中,看懂看準了時序,你操控這個晶片就是非常容易的事了。1602的時序是我見過的一個最簡單的時序:    2、上圖框出並註明了看懂此圖的一些常識:  (1).時序圖最左邊一般是某一根引腳的標識,表示此行圖線體現該引腳的變化,上圖分別標明了RS、R/W、E、DB0~DB7四類引腳的時序變化。  (2).有線交叉狀的部分,表示電平在變化,如上所標註。
  • 第五章 時序圖網絡建模
    5.1.1 時序圖定義在數時序圖之前,我們先來看看靜態圖結構。如圖所示,圖(a)表示有4個頂點的靜態圖;圖(b)表示存在與1-10時間閾值內的時序圖,圖(c)表示圖(b)中頂點和邊對應的時間序列。 5.1.2 時序圖分類時序圖網絡可以分成兩種情況,一種是,頂點間的相互作用是在一個確切時間上發生的、持續時間可以忽略不計的時序圖,即r(e)=0。
  • SPI時序圖詳解
    SPI接口有四種不同的數據傳輸時序,取決於CPOL和CPHA這兩位的組合。圖1中表現了這四種時序,時序與CPOL、CPHA的關係也可以從圖中看出。 由於我使用的器件工作在模式0這種時序(CPOL=0,CPHA=0),所以將圖1簡化為圖2,只關注模式0的時序。
  • 每日學習:靜態時序分析入門面面觀
    關注並標星大同學吧作者稱謂:Jack xu個人介紹:不斷學習的數字後端工程師微信公眾號:志芯本文詳細講解了時序分析的絕大部分概念,並分析了時序分析的方法和流程。1.1模擬信號與數位訊號,高電平與低電平模擬信號:在時間和幅值上是連續變化的電信號。
  • 3分鐘弄懂時序圖、活動圖、狀態圖、協作圖的區別
    時序圖用於描述對象之間的傳遞消息的時間順序, 即用例中的行為順序.當執行一個用例時, 時序圖中的每條消息對應了一個類操作或者引起轉換的觸發事件. 在 UML 中, 時序圖表示為一個二維的關係圖, 其中, 縱軸是時間軸, 時間延豎線向下延伸. 橫軸代表在協作中各個獨立的對象. 當對象存在時, 生命線用一條虛線表示, 消息用從一個對象的生命線到另一個對象的生命線的箭頭表示. 箭頭以時間的順序在圖中上下排列.
  • 騰訊優圖實驗室高級研究員棟豪:時序動作分析技術的研究與應用 |...
    「騰訊優圖專場」,是智東西公開課邀請騰訊優圖實驗室面向開發者和科研人員,專注講解騰訊優圖實驗室前沿研究成果的系列線上公開課,第一階段共計三講。第一講由優圖實驗室資深高級研究員瑋劍主講,主題為《3D人臉重建技術的研究與應用實例》。第二講由優圖實驗室研究員太平主講,主題為《人臉安全技術的研究與應用》。
  • UML交互圖 之 時序圖/序列圖/循序圖 在需求文檔中的應用
    時序圖(Sequence Diagram),又名序列圖、循序圖,是一種UML交互圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作。——更詳細的說明,百度一下即可。服務端同學在設計系統邏輯的時候,常常使用這張圖進行技術方案討論。
  • 簡單的時序電源插座電路圖
    打開APP 簡單的時序電源插座電路圖 家電資料維修網 發表於 2020-03-30 17:20:11 本文介紹專為電腦設計的時序控制電源插座,稍加改動也可以用到其他的需要時序控制的電路中去。電路圖如下所示。   一、電路原理
  • FPGA時序分析—vivado篇
    可能排版有些亂,有些圖都是直接從文章中截取,但是不影響閱讀。時序分析的基本步驟:一個合理的時序約束可以分為以下步驟:時序約束整體的思路與之前我說的方法基本一致。如下圖所示,為外部器件和FPGA接口時序。
  • 時序資料庫入門系列: 時序數據的查詢
    上篇文章時序資料庫入門系列:什麼是時序資料庫介紹了時序資料庫的定義和發展趨勢,這次接著分享下時序資料庫的查詢相關的概念。
  • ADC0809引腳圖、時序圖、工作流程圖詳解
    打開APP ADC0809引腳圖、時序圖、工作流程圖詳解 發表於 2017-11-22 10:00:39   ADC0809引腳圖   adc0809引腳介紹:   IN0~IN7:8路模擬量輸入端。   D0~D7:8位數字量輸出端。
  • AAAI 2020 | 時序轉化為圖用於可解釋可推理的異常檢測
    圖 |  獲得圖靈獎的深度學習三巨頭齊聚AAAI 2020上圖展示了一個關於用電時序的例子,用於展現Time2Graph方法的構圖動機:圖a展示的是竊電用戶在一年中的用電情況。該研究將時序按月進行分段,並給每個月學習分配了最有代表性的Shapelet。