0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UML時(shí)序圖詳解

碼農(nóng)愛學(xué)習(xí) ? 來源:碼農(nóng)愛學(xué)習(xí) ? 作者:碼農(nóng)愛學(xué)習(xí) ? 2023-05-16 09:09 ? 次閱讀

上篇文章,介紹了UML狀態(tài)圖,并通過visio繪制一個(gè)全自動(dòng)洗衣機(jī)的UML狀態(tài)圖實(shí)例進(jìn)行講解。

本篇,來繼續(xù)介紹UML中的另一種圖——時(shí)序圖。

1 時(shí)序圖簡介

時(shí)序圖(Sequence Diagram),也叫****順序圖 ,或 序列圖 ,是一種UML動(dòng)態(tài)圖。

UML具有許多不同類型的圖表,包括:

  • 靜態(tài)圖:用例圖、類圖、包圖
  • 動(dòng)態(tài)圖:活動(dòng)圖、狀態(tài)圖、時(shí)序圖、協(xié)作圖

時(shí)序圖通過描述對象之間發(fā)送消息的****時(shí)間順序顯示多個(gè)對象之間的 交互模式 。**

**

時(shí)序圖將交互關(guān)系表示為一個(gè)二維圖

  • 縱向是時(shí)間軸,時(shí)間沿豎線向下延伸;橫向軸代表了在協(xié)作中各獨(dú)立對象的類元角色。
  • 類元角色用****生命線表示。當(dāng)對象存在時(shí),角色用一條虛線表示;當(dāng)對象的過程處于激活狀態(tài)時(shí),生命線是一個(gè) 垂直矩形 。
  • 消息用從一個(gè)對象的生命線到另一個(gè)對象生命線的箭頭表示。
  • 箭頭以時(shí)間順序在圖中從上到下排列。

2 時(shí)序圖元素介紹

2.1 參與者

參與者,或稱為系統(tǒng)角色,以一個(gè)小人圖標(biāo)表示。

2.2 對象

對象,以一個(gè)矩形表示,在一個(gè)系統(tǒng)中可以有多個(gè)對象。

2.3 生命線

生命線就是一條垂直的虛線。

2.4 激活

激活,也叫****會(huì)話 ,或 控制焦點(diǎn) ,代表時(shí)序圖中對象執(zhí)行一項(xiàng)操作的時(shí)期, 表示該對象被占用以完成某個(gè)任務(wù),以一個(gè)垂直的窄的矩形表示。

2.5 消息

2.5.1 (同步)消息

以一條實(shí)線和實(shí)心箭頭表示。

消息的發(fā)送者把控制傳遞給消息的接收者,然后停止活動(dòng),等待消息的接收者放棄或者返回控制。用來表示同步的意義。

2.5.2 返回消息

以小于號(hào)和虛線表示。

返回消息表示從過程調(diào)用返回。

2.5.3 異步消息

以一條實(shí)線和大于號(hào)表示。

消息發(fā)送者通過消息把信號(hào)傳遞給消息的接收者,然后繼續(xù)自己的活動(dòng),不等待接受者返回消息或者控制。異步消息的接收者和發(fā)送者是并發(fā)工作的。

2.5.4 自關(guān)聯(lián)消息

以一個(gè)半閉合的長方形+下方實(shí)心剪頭表示。

表示方法的自身調(diào)用或者一個(gè)對象內(nèi)的一個(gè)方法調(diào)用另外一個(gè)方法。

2.6 片段

2.6.1 選擇片段

選擇片段,或稱****條件分支 ,可根據(jù)不同的條件,執(zhí)行不同的交互,類似于if-else語句

2.6.2 循環(huán)片段

表明該片段會(huì)被重復(fù)執(zhí)行,類似于while或for語句

2.6.3 并向片段

2.6.4 片段總結(jié)

片段的功能,除了上面介紹的選擇、循環(huán)和并向、還有許多其它類型,這里詳細(xì)列舉一下,作為參考:

片段類型 名稱 說明
Alt 選擇 在一組行為中根據(jù)特定的條件選擇某個(gè)交互
Loop 循環(huán) 交互片段會(huì)被重復(fù)執(zhí)行
Par 并行 支持交互片段的并發(fā)執(zhí)行
Opt 選項(xiàng) 表示一個(gè)可選的行為
Break 中斷 提供了和編程語言中的break類擬的機(jī)制
Seq 弱順序 有兩個(gè)或更多操作數(shù)片段,如果消息涉及的生命線不同,會(huì)并行交錯(cuò)
Strict 強(qiáng)順序 有兩個(gè)或更多操作數(shù)片段,這些片段必須按給定順序發(fā)生

默認(rèn)情況下,序列圖表明可能發(fā)生的一系列消息。在運(yùn)行的系統(tǒng)中,可能會(huì)出現(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時(shí)序圖

3.1 visio創(chuàng)建時(shí)序圖

新建一個(gè)visio文件,打開后會(huì)自動(dòng)提示選擇創(chuàng)建某種類型的圖,這里選擇"軟件和數(shù)據(jù)庫 ->UML序列"

點(diǎn)擊確定之后,會(huì)進(jìn)入U(xiǎn)ML時(shí)序圖的編輯界面,左側(cè)可以看到用于UML時(shí)序圖編輯的基本元素,將這些元素拖拽到右側(cè)的編解面板中,可以看到這些元素的基本結(jié)構(gòu)形式:

注意visio中的生命線繪圖元素,實(shí)際上包含了參加者元素或?qū)ο笤?,所以命名為了參與者生命線和對象生命線

3.2 時(shí)序圖實(shí)例

下面通過一個(gè)實(shí)例來介紹一下UML時(shí)序圖的畫法。

這是一個(gè)嵌入式開發(fā)中,常見的對物聯(lián)網(wǎng)設(shè)備進(jìn)行配網(wǎng)的操作流程,配網(wǎng)的方式有很多,這個(gè)是時(shí)序圖是其中的一種配網(wǎng)方式——設(shè)備熱點(diǎn)配網(wǎng)。

解讀一下此時(shí)序圖:

  • 參與者(主角)是用戶,因?yàn)槭怯脩粲|發(fā)了整個(gè)流程的執(zhí)行
  • 對象有3個(gè):手機(jī)上的APP程序、待連網(wǎng)的物聯(lián)網(wǎng)設(shè)備、WiFi路由器
  • 配網(wǎng)的時(shí)序邏輯為:
    • 用戶按下設(shè)備的配網(wǎng)按鈕,設(shè)備開啟一個(gè)熱點(diǎn),并廣播自己的熱點(diǎn)信息(熱點(diǎn)名稱和密碼)
    • 用戶在APP上輸入WiFi路由器的名稱和密碼(用于后續(xù)發(fā)給設(shè)備)
    • 用戶操作APP,連接上設(shè)備的熱點(diǎn),然后把WiFi路由器的名稱和密碼發(fā)給設(shè)備
    • 設(shè)備收到WiFi路由器的名稱和密碼后,嘗試連接路由器,配網(wǎng)成功

本時(shí)序圖中,暫未體現(xiàn)出片段的用法,以后有能用到片段用法的例子再舉例分析。

3.4 visio中框圖不能調(diào)節(jié)寬度解決

在用Visio繪制UML時(shí)序圖,使用“交互操作數(shù)”時(shí),可能遇到寬度被鎖定不能調(diào)節(jié)的問題,解決方法如下:

步驟一:文件----選項(xiàng)----高級----常規(guī)-----勾選“以開發(fā)人員模式運(yùn)行”

步驟二:菜單欄出現(xiàn)“開發(fā)工具”選項(xiàng),點(diǎn)擊受保護(hù)框圖,取消寬度的保護(hù)

4 總結(jié)

本篇介紹了UML時(shí)序圖的基礎(chǔ)知識(shí),并通過visio繪制一個(gè)物聯(lián)網(wǎng)設(shè)備WIFI配網(wǎng)的UML時(shí)序圖實(shí)例,來介紹UML時(shí)序圖的畫法與所表達(dá)的含義。
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5087

    文章

    19150

    瀏覽量

    306356
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2911

    文章

    44802

    瀏覽量

    375010
  • UML
    UML
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    30876
  • 時(shí)序圖
    +關(guān)注

    關(guān)注

    2

    文章

    58

    瀏覽量

    22469
收藏 人收藏

    評論

    相關(guān)推薦

    UML中類詳解

    UML
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月14日 10:12:47

    請問UML用例的創(chuàng)建方法是什么?

    UML用例的創(chuàng)建方法及其用例的描述
    發(fā)表于 11-06 07:10

    有人可以詳解一下imx6q的eim時(shí)序

    有人可以詳解一下下圖中,imx6q的eim時(shí)序
    發(fā)表于 01-07 07:22

    UML狀態(tài)在回歸測試中的應(yīng)用

    基于UML 狀態(tài)的測試是一種系統(tǒng)測試技術(shù),也是基于需求的回歸測試方法的擴(kuò)展。該文通過依賴性分析,生成基于依賴性分析的UML 狀態(tài)和依賴
    發(fā)表于 03-23 08:46 ?14次下載

    基于UML的考試管理系統(tǒng)設(shè)計(jì)

    文中著重解決UML在完成各階段任務(wù)中的應(yīng)用、分析設(shè)計(jì)流程等問題,就類時(shí)序兩者設(shè)計(jì)次序進(jìn)行探討。UML有利于各類人員之間的溝通,提高了系
    發(fā)表于 12-22 17:14 ?35次下載
    基于<b class='flag-5'>UML</b>的考試管理系統(tǒng)設(shè)計(jì)

    plc時(shí)序怎么看_plc時(shí)序指令詳解

    時(shí)序是描述設(shè)備工作過程的時(shí)間次序,也是用于直觀分析設(shè)備工作過程的一種圖形。如電子技術(shù)中的觸發(fā)器、定時(shí)器、計(jì)數(shù)器等均用時(shí)序來描述其工作原
    發(fā)表于 10-23 08:40 ?9w次閱讀
    plc<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>怎么看_plc<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>指令<b class='flag-5'>詳解</b>解

    什么是時(shí)序?教你如何看懂時(shí)序

    時(shí)序(Sequence Diagram),又名序列、循序、順序,是一種UML交互
    發(fā)表于 10-29 10:08 ?7.2w次閱讀
    什么是<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>?教你如何看懂<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>

    時(shí)序和類的關(guān)系

    時(shí)序是在軟件系統(tǒng)設(shè)計(jì)中直接和程序代碼相關(guān)聯(lián)的,準(zhǔn)確地說,程序代碼是由類直接產(chǎn)生,而時(shí)序
    發(fā)表于 10-29 11:21 ?6815次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>和類<b class='flag-5'>圖</b>的關(guān)系

    時(shí)序怎么畫步驟教程_時(shí)序用什么工具畫_時(shí)序的作用是什么

    時(shí)序(Sequence Diagram),亦稱為序列、循序或順序,是一種UML交互
    發(fā)表于 12-11 19:22 ?4.5w次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>怎么畫步驟教程_<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>用什么工具畫_<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>的作用是什么

    基于UML依權(quán)限有序的Web鏈接測試用例生成方法

    針對傳統(tǒng)Web測試用例生成方法因缺少權(quán)限性和時(shí)序性考慮而產(chǎn)生的誤判斷問題,提出結(jié)合基于統(tǒng)一建模語言(UML)活動(dòng)與狀態(tài),根據(jù)不同用戶權(quán)限及交互活動(dòng)流程分析Web頁面鏈接而生成測試用
    發(fā)表于 01-07 12:25 ?0次下載
    基于<b class='flag-5'>UML</b><b class='flag-5'>圖</b>依權(quán)限有序的Web鏈接測試用例生成方法

    UML的分類_UML的基本模型

    UML這三個(gè)字母的全稱是Unified Modeling Language,直接翻譯就是統(tǒng)一建模語言,簡單地說就是一種有特殊用途的語言。
    的頭像 發(fā)表于 09-25 09:43 ?6284次閱讀

    什么是UML?常見的UML工具有哪些?

    UML是統(tǒng)一建模語言,又稱標(biāo)準(zhǔn)建模語言。是對軟件設(shè)計(jì)開發(fā)過程可視化建模的一種語言。多應(yīng)用在一些軟件系統(tǒng)工程上,有時(shí)在應(yīng)用在機(jī)械系統(tǒng)和業(yè)務(wù)流程上有所應(yīng)用。這種模型通常以圖表方式呈現(xiàn)。 UML狀態(tài)圖
    的頭像 發(fā)表于 06-22 14:10 ?4706次閱讀
    什么是<b class='flag-5'>UML</b><b class='flag-5'>圖</b>?常見的<b class='flag-5'>UML</b><b class='flag-5'>圖</b>工具有哪些?

    UML簡介與類詳解

    本篇介紹了UML的基礎(chǔ)知識(shí),包括2種和6種關(guān)系,并通過visio軟件,演示如何畫出一個(gè)UML
    的頭像 發(fā)表于 05-05 09:07 ?4149次閱讀
    <b class='flag-5'>UML</b>簡介與類<b class='flag-5'>圖</b><b class='flag-5'>詳解</b>

    解析UML時(shí)序

    這里不會(huì)將UML的各種元素都提到,我只想講講類圖中各個(gè)類之間的關(guān)系; 能看懂類圖中各個(gè)類之間的線條、箭頭代表什么意思后,也就足夠應(yīng)對 日常的工作和交流; 同時(shí),我們應(yīng)該能將類所表達(dá)的含義和最終的代碼對應(yīng)起來; 有了這些知識(shí),看后面章節(jié)的設(shè)計(jì)模式結(jié)構(gòu)圖就沒有什么問題了;
    的頭像 發(fā)表于 05-05 11:03 ?715次閱讀
    解析<b class='flag-5'>UML</b>類<b class='flag-5'>圖</b>和<b class='flag-5'>時(shí)序</b><b class='flag-5'>圖</b>

    UML狀態(tài)詳解

    本篇介紹了UML狀態(tài)的基礎(chǔ)知識(shí),并通過visio繪制一個(gè)全自動(dòng)洗衣機(jī)的UML狀態(tài)實(shí)例,來介紹UML狀態(tài)
    的頭像 發(fā)表于 05-09 09:00 ?3304次閱讀
    <b class='flag-5'>UML</b>狀態(tài)<b class='flag-5'>圖</b><b class='flag-5'>詳解</b>