上篇文章,介紹了UML狀態圖,并通過visio繪制一個全自動洗衣機的UML狀態圖實例進行講解。
本篇,來繼續介紹UML中的另一種圖——時序圖。
1 時序圖簡介
時序圖(Sequence Diagram),也叫****順序圖 ,或 序列圖 ,是一種UML動態圖。
UML具有許多不同類型的圖表,包括:
- 靜態圖:用例圖、類圖、包圖
- 動態圖:活動圖、狀態圖、時序圖、協作圖
時序圖通過描述對象之間發送消息的****時間順序顯示多個對象之間的 交互模式 。**
**
時序圖將交互關系表示為一個二維圖
- 縱向是時間軸,時間沿豎線向下延伸;橫向軸代表了在協作中各獨立對象的類元角色。
- 類元角色用****生命線表示。當對象存在時,角色用一條虛線表示;當對象的過程處于激活狀態時,生命線是一個 垂直矩形 。
- 消息用從一個對象的生命線到另一個對象生命線的箭頭表示。
- 箭頭以時間順序在圖中從上到下排列。
2 時序圖元素介紹
2.1 參與者
參與者,或稱為系統角色,以一個小人圖標表示。
2.2 對象
對象,以一個矩形表示,在一個系統中可以有多個對象。
2.3 生命線
生命線就是一條垂直的虛線。
2.4 激活
激活,也叫****會話 ,或 控制焦點 ,代表時序圖中對象執行一項操作的時期, 表示該對象被占用以完成某個任務,以一個垂直的窄的矩形表示。
2.5 消息
2.5.1 (同步)消息
以一條實線和實心箭頭表示。
消息的發送者把控制傳遞給消息的接收者,然后停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。
2.5.2 返回消息
以小于號和虛線表示。
返回消息表示從過程調用返回。
2.5.3 異步消息
以一條實線和大于號表示。
消息發送者通過消息把信號傳遞給消息的接收者,然后繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是并發工作的。
2.5.4 自關聯消息
以一個半閉合的長方形+下方實心剪頭表示。
表示方法的自身調用或者一個對象內的一個方法調用另外一個方法。
2.6 片段
2.6.1 選擇片段
選擇片段,或稱****條件分支 ,可根據不同的條件,執行不同的交互,類似于if-else語句
2.6.2 循環片段
表明該片段會被重復執行,類似于while或for語句
2.6.3 并向片段
2.6.4 片段總結
片段的功能,除了上面介紹的選擇、循環和并向、還有許多其它類型,這里詳細列舉一下,作為參考:
片段類型 | 名稱 | 說明 |
---|---|---|
Alt | 選擇 | 在一組行為中根據特定的條件選擇某個交互 |
Loop | 循環 | 交互片段會被重復執行 |
Par | 并行 | 支持交互片段的并發執行 |
Opt | 選項 | 表示一個可選的行為 |
Break | 中斷 | 提供了和編程語言中的break類擬的機制 |
Seq | 弱順序 | 有兩個或更多操作數片段,如果消息涉及的生命線不同,會并行交錯 |
Strict | 強順序 | 有兩個或更多操作數片段,這些片段必須按給定順序發生 |
默認情況下,序列圖表明可能發生的一系列消息。在運行的系統中,可能會出現您未選擇顯示在關系圖上的其他消息。
以下片段類型可用于更改此釋義:
片段類型 | 名稱 | 說明 |
---|---|---|
Consider | 考慮 | 明確標志了應該被處理的消息 |
Assert | 斷言 | 標志了在交互片段中作為事件唯一的合法繼續者的操作數 |
Neg | 否定 | 用來標志不應該發生的交互 |
Ignore | 忽略 | 明確定義了交互片段不應該響應的消息 |
3 visio繪制UML時序圖
3.1 visio創建時序圖
新建一個visio文件,打開后會自動提示選擇創建某種類型的圖,這里選擇"軟件和數據庫 ->UML序列"
點擊確定之后,會進入UML時序圖的編輯界面,左側可以看到用于UML時序圖編輯的基本元素,將這些元素拖拽到右側的編解面板中,可以看到這些元素的基本結構形式:
注意visio中的生命線繪圖元素,實際上包含了參加者元素或對象元素,所以命名為了參與者生命線和對象生命線
3.2 時序圖實例
下面通過一個實例來介紹一下UML時序圖的畫法。
這是一個嵌入式開發中,常見的對物聯網設備進行配網的操作流程,配網的方式有很多,這個是時序圖是其中的一種配網方式——設備熱點配網。
解讀一下此時序圖:
- 參與者(主角)是用戶,因為是用戶觸發了整個流程的執行
- 對象有3個:手機上的APP程序、待連網的物聯網設備、WiFi路由器
- 配網的時序邏輯為:
- 用戶按下設備的配網按鈕,設備開啟一個熱點,并廣播自己的熱點信息(熱點名稱和密碼)
- 用戶在APP上輸入WiFi路由器的名稱和密碼(用于后續發給設備)
- 用戶操作APP,連接上設備的熱點,然后把WiFi路由器的名稱和密碼發給設備
- 設備收到WiFi路由器的名稱和密碼后,嘗試連接路由器,配網成功
本時序圖中,暫未體現出片段的用法,以后有能用到片段用法的例子再舉例分析。
3.4 visio中框圖不能調節寬度解決
在用Visio繪制UML時序圖,使用“交互操作數”時,可能遇到寬度被鎖定不能調節的問題,解決方法如下:
步驟一:文件----選項----高級----常規-----勾選“以開發人員模式運行”
步驟二:菜單欄出現“開發工具”選項,點擊受保護框圖,取消寬度的保護
4 總結
本篇介紹了UML時序圖的基礎知識,并通過visio繪制一個物聯網設備WIFI配網的UML時序圖實例,來介紹UML時序圖的畫法與所表達的含義。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5086文章
19141瀏覽量
305976 -
物聯網
+關注
關注
2909文章
44713瀏覽量
374298 -
UML
+關注
關注
0文章
122瀏覽量
30872 -
時序圖
+關注
關注
2文章
58瀏覽量
22465
發布評論請先 登錄
相關推薦
評論