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

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

時序圖作為常用的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

 

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

相關焦點

  • 時序圖中的實線和虛線分別表示什麼意思
    什麼是時序圖   時序圖(Sequence Diagram),又名序列圖、循序圖、順序圖,是一種UML交互圖。   2、對象(Object)   對象代表時序圖中的對象在交互中所扮演的角色,位於時序圖頂部和對象代表。對象實例類角色。   對象一般包含以下三種命名方式:   第一種方式包含對象名和類名。   第二種方式只顯示類名不顯示對象名,即為一個匿名對象。
  • 示波器和I2C時序波形圖的關係分析
    I2C簡介 I2C總線只需要兩條線,一條SDA數據線,一條SCL時鐘線;根據這兩條線的高低電平、上升沿、下降沿就可以實現主機與I2C設備的通訊 I2C與示波器 對於I2C總線的數據,我們要用到示波器,這樣我們才能抓取到信號,而且必須同時採集SDA和SCL的數據;該如何抓取呢?
  • Excel最強圖表插件EasyShu: 時序型圖表
    時序型圖表,主要是指時序型數據+數值型數據兩個維度的圖表,我們一般使用柱形圖、折線圖、豎棒棒圖等表示,X軸表示時序型數據,Y軸表示類別型數據。將時序型圖表完美地嵌入表格中,能更加清晰明了地表示數據信息,尤其在諮詢行業。
  • 顯卡竟能調時序 玩家國度GTX285上機圖
    華碩這款MATRIX GTX285產品最大的特色就是它提供了全球首個顯存時序調整的功能!這一功能確確實實為玩家帶來了極大的便利。實際上,在我們之前想要調節顯存時序也並非不能,只不過需要藉助NiBiTor軟體讀取顯卡BIOS,並且還要換算BIOS讀取數值,更改後重新刷如BIOS。一旦操作失誤,那麼以個人能力幾乎不太可能修復。    不過此次華碩在MATRIX GTX285產品上提供的OC Tracker 2軟體,卻為我們提供了非常方便的調節方式。
  • 影馳A320M 龍將喜迎更新 支持高頻還可調時序
    升級BIOS後,影馳 A320M 龍將支持雙通道內存最高頻率3600MHz並能以默認時序運行,當然,如果你想要進一步提高內存性能,也可以手動設置壓縮內存時序。說到高頻內存,影馳星曜系列內存無疑是性能、與顏值齊聚的產品,搭配影馳 A320M 龍將,可輕易實現高頻率低時序,從而讓Ryzen CPU的性能充分發揮。星曜 DDR4-3600 8G*2內存,默認頻率3600MHz,支持XMP2.0,在影馳 A320M 龍將主板BIOS中選擇預選頻率和時序後,其可以以默認的頻率和時序運行,提供高速的傳輸速度。
  • 【技術乾貨】超大規模運算和LTE-A驅動高性能時序方案需求
    使得超大規模運算具有商業吸引力的基礎技術之一就是高速乙太網絡,以及數據中心交換機快速過渡至25G、50G和100G乙太網絡,以加速資料傳輸和網路效率。表1顯示對於乙太網絡實體層(PHY)、交換機和交換架構的典型時序要求。讓高速乙太網絡實現安全可靠的方法是使用超低抖動時脈源,為這些乙太網絡規格提供出色的抖動餘量。
  • ISE時序約束筆記2——Global Timing Constraints
    ——它們共享一個時鐘信號,約束這個網絡的時序可以同時覆蓋約束這些相關寄存器間的延時路徑。  周期約束  周期約束覆蓋由參考網絡鍾控的的同步單元之間的路徑延時。   周期約束特性  周期約束使用最準確的時序信息,使其能夠自動的計算:  1.
  • 無線模塊nrf24l01中文資料_引腳圖及引腳定義_電路原理及實例
    打開APP 無線模塊nrf24l01中文資料_引腳圖及引腳定義_電路原理及實例 發表於 2017-12-15 11:02:25
  • 深入剖析建模工具UML中有哪些UML圖
    深入剖析建模工具UML中有哪些UML圖 UML有哪些圖你是否熟悉,本文就向大家簡單介紹一下,UML圖形可分為五類,共有九種圖形,希望通過本文的學習你對UML圖有一定的認識。
  • 他穿越到漫威世界,擁有太陽力量,掌控時序交替,軟科幻
    他穿越到漫威世界,擁有太陽力量,掌控時序交替,軟科幻大家好,很高興又能大家見面了,感謝各位小夥伴點開這篇文章,小編倍感榮幸!小編為大家網羅了很多精品好書,各位小夥伴有福氣了。神話中的太陽是掌控時序交替,掌控時序交替的偉大存在,是一切黑暗邪祟的克制者,是光明和火焰的掌控者。而現實裡的太陽,是恆星的一員。宇宙裡最偉大的天體。更是磁力引力交匯的終極存在。當這些力量集中到一個人身上,會發生什麼。第一本:《太陽神的榮耀》——作者:紅海大提督精彩文摘:他擁有了太陽力量的生命,穿越到了漫威世界的故事。
  • 軟考備考之UML九種建模圖
    UML九種建模圖:用例圖、類圖、對象圖、順序圖、協作圖、狀態圖、活動圖、組件圖、配置圖。又可以靜動分為靜態視圖和動態視圖。靜態圖分為:用例圖,類圖,對象圖,包圖,構件圖,部署圖。動態圖分為:狀態圖,活動圖,協作圖,序列圖。
  • KIKI WONG婚紗店·販售跨越時序的高級美感
    KIKI WONG希望每一件婚紗都是獨立的珍品,根植於藝術而不被時間與潮流左右,以此理念為延伸,J&A在KIKI WONG for wedding的店面設計中則希望達到一種跨越時序的虛實相生、簡潔高級的美感。
  • 男女鹹戴楸葉,以應時序
    都城內外,侵晨滿街叫賣揪葉,婦人女子及兒童輩爭買之,剪如花樣、插於鬢邊,以應時序」的記載。揪是大戟科落葉喬木,高可三丈餘,幹莖直聳,葉大,呈圓形或卵形,葉嫩時為紅色,葉老後只有葉柄是紅色的。 明代田汝成的《熙朝樂事》中記載:「立秋日,男女鹹戴楸葉,以應時序;或以石楠紅葉,剪刻花瓣,撲插鬢邊。」立秋前後數日,往往層雲復疊,細雨如織,秋風將來,炎景即逝,似乎已經呈現出新涼的意味。吳地的諺語說這是「預先十日作秋夭」。
  • 動漫人物手的畫法技巧,非常實用的手部畫法步驟圖
    已經有不少粉絲留言問我動漫人物如何畫手,可能很多畫友們感覺畫動漫人物最難畫的就是眼睛和手了,關於眼睛的畫法教程愛畫君以前也分享過不少,今天為大家帶來的是關於動漫人物手部的畫法,有步驟圖大家可以跟著畫哦!
  • 學習筆記 UML9種圖簡介
    學習筆記 UML9種圖簡介 UML建模語言有很多值得學習的地方,本文就向大家介紹一下UML9種圖的簡介,希望通過本文的介紹你對UML中的圖形有初步的認識。
  • 實用手繪素描速寫技巧分享,超詳細步驟實例圖
    帶著這些問題,今天以一個實例步驟圖來解說,希望能夠達到觸類旁通的效果。直接把硬菜端出來(實例圖),這就是今天的主角。實例圖整個構圖飽滿,前後層次變化微妙,主體突出,通過明暗關係及樹屋樹幹上的投影,很好地表現出光線效果,整體畫面和諧自然。
  • 藝術生快速學習素描下巴的畫法
    年,就這麼過去了,心,卻茫然不安,一年又一年,從指間悄然溜走,藝術生也許馬上又要踏上徵程,小編最近也發現很少有老師在講素描肖像時講到下巴的畫法,那麼小編下面就簡單的介紹下素描下巴的畫法,希望能給藝術生們一些幫助。
  • 行政建制視角下的渤海上京城營建時序研究
    不難看出,在渤海上京城營建時序問題上,筆者依然堅持分期營建說。據《渤海上京城》:「經解剖驗證,郭城北部折曲突出的部分是一次築成,說明郭城城牆應該與宮城間具有早晚關係……郭城西北角一帶有折曲,即是為服從已有的宮城而不得已改動的。」
  • SPI接口簡介
    圖2至圖5顯示了四種SPI模式下的通信示例。在這些示例中,數據顯示在MOSI和MISO線上。傳輸的開始和結束用綠色虛線表示,採樣邊沿用橙色虛線表示,移位邊沿用藍色虛線表示。請注意,這些圖形僅供參考。要成功進行SPI通信,用戶須參閱產品數據手冊並確保滿足器件的時序規格。