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