利用時序圖顯示對象之間交互,通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作,用來表示用例中的行為順序。
一、時序圖特點
1、描述用例的具體細節。
2、對復雜的調用、函數和操作的邏輯關系進行建模。
3、表明對象、組件之間是如何交互的。
4、理解舊代碼,規划新場景。
二、基本元素
角色(Actor)、對象(Object)、生命線(Lifeline)、控制焦點(Activation)、消息(Message)、自關聯消息、組合片段。前6種較為常用,也更為重要。
1、角色
系統角色,可以是人、及其甚至其他的系統或者子系統。
2、對象
整個交互過程中的實體,可以是一個具體的類也可以是另外一個系統。對象可以用下面的圖表示:
對象包括三種命名方式:
- 對象名和類名;
- 只顯示類名不顯示對象名,匿名類;
- 只顯示對象名不顯示類名;
3、生命線
時序圖中每個對象和底部中心都有一條垂直的虛線,這就是對象的生命線(對象的時間線)。以一條垂直的虛線表示。
4、控制焦點
控制焦點代表時序圖中在對象時間線上某段時期執行的操作,表示該操作的有效時長。以一個很窄的矩形表示。
5、消息
表示對象間相互發送的信息。消息分為三種類型:
- 同步消息(Synchronous Message):消息的發送者把控制傳遞給消息的接收者,然后停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。以一條實線+實心箭頭表示。
- 異步消息(Asynchronous Message):消息發送者通過消息把信號傳遞給消息的接收者,然后繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是並發工作的。以一條實線+大於號表示。
- 返回消息(Return Message):返回消息表示從過程調用返回。以小於號+虛線表示。
6、自關聯消息
表示方法的自身調用或者對象內一個方法調用另一個方法。以一個半閉合的長方形+下方實心剪頭表示。
7、組合片段
組合片段用來解決交互執行的條件和方式,它允許在序列圖中直接表示邏輯組件,用於通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。
- ref:引用其他地方定義的組合片段;
- alt:在一組行為中根據特定的條件選擇某個交互;
- opt:表示一個可選的行為;
- break:提供了和編程語言中的break類擬的機制;
- par:支持交互片段的並發執行;
- seq:強迫交互按照特定的順序執行;
- strict:明確定義了一組交互片段的執行順序;
- neg:用來標志不應該發生的交互;
- region:標志在組合片段中先於其他交互片斷發生的交互;
- ignore:明確定義了交互片段不應該響應的消息;
- consider:明確標志了應該被處理的消息
- assert:標志了在交互片段中作為事件唯一的合法繼續者的操作數;
- loop:說明交互片段會被重復執行
三、基本例子
對接WPS在線編輯服務時,采用的時序圖,依照時間順序執行,最終獲取后台服務器中文件,在前端js中在線編輯word文檔。
至此,對於UML時序圖的相關內容做了大概的總結,對於設計時序圖還是查看其他系統、對接其他系統時,提供的時序圖,知道如何識別,如何設計。
2020-03-20,望技術有成后能回來看見自己的腳步