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

2020-11-30 人人都是..

時序圖作為常用的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類圖和時序圖
    一起學習、成長、溫情的熱愛生活圖丨pexels這裡不會將UML的各種元素都提到,我只想講講類圖中各個類之間的關係;能看懂類圖中各個類之間的線條、箭頭代表什麼意思後,也就足夠應對日常的工作和交流;同時,我們應該能將類圖所表達的含義和最終的代碼對應起來
  • 如何看懂時序圖(經典)
    以下是LCD1602的時序圖:  大家要慢慢學會看時序圖,要知道操作一個器件的精華便蘊藏在其中,看懂看準了時序,你操控這個晶片就是非常容易的事了。  2、上圖框出並註明了看懂此圖的一些常識:  (1).時序圖最左邊一般是某一根引腳的標識,表示此行圖線體現該引腳的變化,上圖分別標明了RS、R/W、E、DB0~DB7四類引腳的時序變化。  (2).有線交叉狀的部分,表示電平在變化,如上所標註。
  • 3分鐘弄懂時序圖、活動圖、狀態圖、協作圖的區別
    時序圖用於描述對象之間的傳遞消息的時間順序, 即用例中的行為順序.當執行一個用例時, 時序圖中的每條消息對應了一個類操作或者引起轉換的觸發事件. 在 UML 中, 時序圖表示為一個二維的關係圖, 其中, 縱軸是時間軸, 時間延豎線向下延伸. 橫軸代表在協作中各個獨立的對象.
  • 簡單的時序電源插座電路圖
    打開APP 簡單的時序電源插座電路圖 家電資料維修網 發表於 2020-03-30 17:20:11 本文介紹專為電腦設計的時序控制電源插座,稍加改動也可以用到其他的需要時序控制的電路中去。電路圖如下所示。
  • 示波器和I2C時序波形圖的關係分析
    I2C簡介 I2C總線只需要兩條線,一條SDA數據線,一條SCL時鐘線;根據這兩條線的高低電平、上升沿、下降沿就可以實現主機與I2C設備的通訊 I2C與示波器 對於I2C總線的數據,我們要用到示波器,這樣我們才能抓取到信號,而且必須同時採集SDA和SCL的數據;該如何抓取呢?
  • 正點原子FPGA靜態時序分析與時序約束教程
    靜態時序分析是檢查晶片時序特性的一種方法,可以用來檢查信號在晶片中的傳播是否符合時序約束的要求。相比於動態時序分析,靜態時序分析不需要測試矢量,而是直接對晶片的時序進行約束,然後通過時序分析工具給出時序分析結果,並根據設計者的修復使設計完全滿足時序約束的要求。
  • FPGA設計中的時序問題的詳細分析與解決方案
    圖1. PlanAhead 10.1版顯示出已實施的設計,一條時序失敗路徑高亮顯示。   一旦選擇了一條時序失敗的路徑,PlanAhead軟體就會選定時序失敗路徑上的實例和連接。在網表窗口,還可以移動到包含了所選實例的頂層模塊。滑鼠右擊模塊名稱並為選定的實例選擇顏色,這樣就可以顯示出這一模塊在晶片中的布局,以及組內單元是靠近還是散開的。 可能發現有時需要更好地鎖定特定的基本單元。Block RAM和DSP模塊的自動布局是導致時序失敗的常見原因。很容易發現布局布線工具將Mult18安排的位置很不好。
  • ...電路和時序邏輯電路比較_組合邏輯電路和時序邏輯電路有什麼區別
    然後用公式化簡法或者卡諾圖化簡法得到函數式的化簡或變換,以使邏輯關係簡單明了。有時還可以將邏輯函數式轉換為真值表的形式。   時序邏輯電路:   1、寫出每個觸發器的驅動方程   2、將驅動方程帶入觸發器的特性方程得到狀態方程組   3、根據邏輯圖寫出電路的輸出方程   狀態轉換過程描述:狀態轉換表、狀態轉換圖、狀態機流程圖、時序圖   五、在設計方法上   組合邏輯電路
  • 組合邏輯電路和時序邏輯電路比較_組合邏輯電路和時序邏輯電路有...
    然後用公式化簡法或者卡諾圖化簡法得到函數式的化簡或變換,以使邏輯關係簡單明了。有時還可以將邏輯函數式轉換為真值表的形式。   時序邏輯電路:   1、寫出每個觸發器的驅動方程   2、將驅動方程帶入觸發器的特性方程得到狀態方程組   3、根據邏輯圖寫出電路的輸出方程   狀態轉換過程描述:狀態轉換表、狀態轉換圖、狀態機流程圖、時序圖   五、在設計方法上   組合邏輯電路
  • 同步時序邏輯電路的分析方法
    [例7.2.1] 1.寫方程式2.列狀態轉換真值表3.邏輯功能的說明4 畫狀態轉換圖和時序圖5.檢查電路能否自啟動[例7.2.2] 1.寫方程式2.列狀態轉換真值表3.邏輯功能的說明4 畫狀態轉換圖和時序圖7.2.2 異步時序邏輯電路的分析方法應寫出時鐘方程。
  • 從靜態時序分析到SDRAM時序收斂(上篇)
    我們直接來看這個圖,     要看懂這個圖,當然還需要有一個模型     時序圖上的第一個時鐘,即我們的源時鐘,或者說是我們的晶振時鐘,從晶振到達源寄存器,這段路程肯定是有延遲的,我們把這段延遲叫做Tc2s,也即我們的clk1.
  • 74LS163引腳功能表及管腳定義圖 (帶時序波形圖)
    打開APP 74LS163引腳功能表及管腳定義圖 (帶時序波形圖) 本站 發表於 2009-03-20 08:52:18 74LS163的外引線排列圖和時序波形圖如圖12、3所示,其功能表如表12、2所示。圖中, 是低電平有效的同步清零輸入端, 是低電平有效才同步並行置數控制端,CTp、CTT是計 圖12、2 交通燈的ASM圖數控制端,CO是進位輸出端,D0~D3是並行數據輸入端,Q0~Q 3是數據輸出端。由兩片74LS163級聯組成的定時器電路如圖12、4所示。電路的工作原理請自行分析。
  • 十分鐘看懂時序資料庫(III)- 壓縮
    作為物聯網鄰域數據存儲的首選時序資料庫也越來越多進入人們的視野,而早在2016年7月,百度雲在其天工物聯網平臺上發布了國內首個多租戶的分布式時序資料庫產品TSDB,成為支持其發展製造,交通,能源,智慧城市等產業領域的核心產品,同時也成為百度戰略發展產業物聯網的標誌性事件。壓縮對於時序資料庫是至關重要的。因為時序資料庫面對的物聯網場景每天都會產生上億條數據。
  • 理論與實踐:隨機噪聲對時序抖動的影響
    引言   時序抖動和時序噪聲屬於人們了解甚少的工程概念,而它們又是模擬設計和數字設計中最重要的參數。尤其是在高速通信系統中,惡劣的抖動性能會導致更高的誤碼率,並限制系統速度。時序抖動一般定義為數位訊號在某一重要時刻相對於其理想時間位置的短時間偏離。
  • 日吞吐萬億,騰訊雲時序資料庫CTSDB解密
    實際上,這些按照時間順序記錄系統、設備狀態變化的數據都是時序數據(Time Series),它普遍存在於網際網路、物聯網、IT基礎設施中。得益於軟硬體技術的快速發展,處理如此龐大的時序數據集的成本在持續降低,更多公司開始持續收集、分析數據,用於異常處理、趨勢預測、精準營銷、風險控制等場景,希望利用數據的潛在價值,提高公司盈利能力和競爭力。
  • FSMC驅動TFTLCD原理,時序和寄存器介紹
    一,FSMC簡介FSMC:靈活的靜態存儲控制器能夠與同步或異步存儲器和16位PC存儲器卡連接STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存儲器STM32 407和103是不支持SD RAM的,429,439支持SD RAM操作12345二,FSMC驅動
  • 電源設計:正確地同步降壓 FET 時序
    為了說明效率與驅動信號之間時序的關係,我構建起了一些具有驅動器信號可調節延遲的電源。之後,我比較了效率與延遲時間,對其存在的關係進行了研究。圖 1A-1C 顯示了結果。圖 1A 顯示了當高壓側 FET 在低壓側 FET 完全關閉之前開啟時的情況。
  • 中科院電子所等獲取第一幅國產SAR衛星時序幹涉測量圖
    近日,中國科學院電子學研究所研究員呂孝雷、雷斌聯合中國資源衛星應用中心,處理得到第一幅高分三號衛星雷達時序幹涉(TSInSAR)地表形變測量圖,實現我國衛星雷達時序幹涉測量零的突破,該成果首次將國產雷達衛星地表釐米級形變測量提升至毫米精度,標誌著我國在衛星合成孔徑雷達幹涉測量研究領域達到國際先進水平
  • FPGA驗證之功能仿真和時序仿真的區別與方法
    這裡我們使用一個波形發生器作為例子,來說明如何使用Modelsim對Quartus II生成的IP Core和相應的HDL文件進行功能仿真和時序仿真
  • LCD驅動工作原理 ,基於51單片機LCD底層時序程序該如何編寫?
    (2)主動矩陣LCD技術  採用被動矩陣LCD技術的最大問題是難以快速地控制單獨的液晶單元,並以足夠大的電流保證來獲得好的對比度、足夠的灰階和較快的響應時間  單片機如何根據LCD時序圖來寫底層驅動:  單片機如何根據LCD時序圖來寫底層驅動  一般來說,LCD 模塊的控制都是通過 MCU 對 LCD 模塊的內部寄存器、顯存進行操作來最終完成的;在此我們設計了三個基本的時序控制程序,分別是:  (1)寫寄存器函數(LCD_RegWrite)