UML之序列圖的消息

序列圖表現各參與者之間為完成某個行為而發生的交互及其時間順序,序列圖中的交互通過消息實現。消息是從一條生命線到另一條生命線的通信,它們通常是水平或傾斜向下的箭頭,從發送方生命線離開,到達接收方生命線。如果需要,在這些消息中可以傳遞參數值,但要注意確保參數類型與參數值與接收生命線角色所定義的操作相匹配。

  • 同步消息及其返回消息

帶有實心箭頭的實線表示同步消息。發送方生命線向接收方生命線發送同步消息,然后發送方等待返回。同步消息的返回消息使用帶有V形箭頭的虛線表示,它由接收方生命線指向發送方生命線。

通常同步消息通過發送方調用接收方的操作來實現。圖 1展示了同步消息的發送及返回過程。

圖 1?同步消息

發送方向接收方發送同步消息后需要等待返回結果,但這并不意味著發送方必然被阻止發送或接收其他消息,UML序列圖允許非阻塞的同步行為。建模者務必明白,序列圖中的參與者不是實例而是角色,因而發送方可能有多個部分或包含線程,而當前等待可能只是阻塞其中的一個。

如果發送的同步消息已經可以明確其返回消息的信息,或者在當前所表達的行為中不需要特意表達返回消息時,在序列圖中可以省略返回消息的描畫。

如果建模的是一個概念性的序列圖,那么同步消息僅僅意味著發送者確保接收者收到了消息。否則,它表示發送者正在調用接收者的一個操作,并且發送者將等待響應。消息名稱放置在箭頭上方,并遵循接收者定義的操作語法。被調用的操作必須是接收者“操作”的成員,或者是從接收者的超類中繼承而來的。操作的參數可以根據場景給出適當的值。

  • 異步消息

帶有V形箭頭的實現表示異步消息。發送異步消息時,發送方不會等待回復。而接收方必須是一個活動類,異步消息可以是硬件或軟件中斷。大多數基于Web的交互都是從瀏覽器到服務器的異步消息,隨后是另一個方向的異步消息。

異步消息可以是異步方式調用的操作(許多編程語言提供了異步操作定義機制),也可以是發送的信號。由于無法回復,異步消息不可以有返回值或輸出參數。圖 2展示一個喚醒信號(Wakeup),信號只能有輸入參數,可以將這些參數列在信號的獨立分隔欄中。在圖 2中,喚醒信號的參數是message:String。信號也可以在狀態圖和活動圖中展示。

圖 2?信號

圖 3則展示了一個系統類。它是一個活動類(可選地通過雙豎線邊框表示)。在其單獨分隔的“接收(RECEPTIONS)”欄中,展示該類可以接收的信號,形式上它類似操作的格式。在圖 3中展示了喚醒(Wakeup)信號。

圖 3?活動類

在序列圖中使用信號的示例如圖 4所示,生命線Lifeline1向System發送了一條異步消息,該消息為上述所定義的信號Wakeup。異步消息必須是接收者“接收”的成員,或者從接收者的超類中繼承而來。

圖 4?發送信號

如果建模的是一個概念性的序列圖,那么異步消息僅僅意味著發送者不等待響應。

此外,接收者類必須是一個活動類,盡管一些建模者在建模時并不會特意將接收者使用表示“活動”的表示符號(即雙豎線邊框)。

  • 自消息

自消息表示來自參與者自身的消息,可能是發送給其獨立的內部部分或線程。自消息從一條生命線上發出并到達同一生命線。自消息可以是同步或異步的,建模時可以像同步消息或異步消息那樣通過箭頭類型進行區分。對于同步的自消息還可能存在類似同步消息的虛線返回箭頭。

圖 5所示的序列圖在Lifeline1上展示了同步自消息,在Lifeline2上展示了異步自消息。

圖 5?自消息

UML – 光頭顏說IThttps://gtyan.com/archives/category/uml

UML之序列圖的參與者與生命線-CSDN博客

UML之擴展用例_將這兩個用例擴展語議,擴展為“用例實現”-CSDN博客

UML之包含用例_一個包含第三方調用的用例圖-CSDN博客

UML之泛化用例_用例圖泛化-CSDN博客

UML之參與者(Actor)_uml actor-CSDN博客

UML之發現用例-CSDN博客

UML之泛化、特化和繼承_uml中泛化-CSDN博客

UML之組合與聚合_uml聚合和組合-CSDN博客

UML之關聯_uml 關聯 包含 連線-CSDN博客

UML之集合類型-CSDN博客

UML之屬性與參數的多重性_類圖多重性-CSDN博客

UML之模型、包及包的版型(構造型)_包體系結構-CSDN博客

UML之包的導入與訪問_uml的包使用-CSDN博客

UML之類型_在uml中,日期屬于什么類型-CSDN博客

UML之修飾符_圖框架標題類型之謬-CSDN博客

UML之類與類圖-CSDN博客

UML之圖框架標題類型之謬_框架標題是什么-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76957.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76957.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UniAD:自動駕駛的統一架構 - 創新與挑戰并存

引言 自動駕駛技術正經歷一場架構革命。傳統上,自動駕駛系統采用模塊化設計,將感知、預測和規劃分離為獨立組件。而上海人工智能實驗室的OpenDriveLab團隊提出的UniAD(Unified Autonomous Driving)則嘗試將這些任務整合到一個統一…

如何寫好合同管理系統需求分析

引言 在當今企業數字化轉型的浪潮中,合同管理系統作為企業法律合規和商業運營的重要支撐工具,其需求分析的準確性和完整性直接關系到系統建設的成敗。本文基于Volere需求過程方法論,結合江鈴汽車集團合同管理系統需求規格說明書實踐案例&…

libevent服務器附帶qt界面開發(附帶源碼)

本章是入門章節,講解如何實現一個附帶界面的服務器,后續會完善與優化 使用qt編譯libevent源碼演示視頻qt的一些知識 1.主要功能有登錄界面 2.基于libevent實現的服務器的業務功能 使用qt編譯libevent 下載這個,其他版本也可以 主要是github上…

八、自動化函數

1.元素的定位 web自動化測試的操作核心是能夠找到頁面對應的元素,然后才能對元素進行具體的操作。 常見的元素定位方式非常多,如id,classname,tagname,xpath,cssSelector 常用的主要由cssSelector和xpath 1.1 cssSelector選擇器 選擇器的功能&#x…

Web三漏洞學習(其二:sql注入)

靶場:NSSCTF 、云曦歷年考核題 二、sql注入 NSSCTF 【SWPUCTF 2021 新生賽】easy_sql 這題雖然之前做過,但為了學習sql,整理一下就再寫一次 打開以后是杰哥的界面 注意到html網頁標題的名稱是 “參數是wllm” 那就傳參數值試一試 首先判…

單片機非耦合業務邏輯框架

在小型單片機項目開發初期,由于業務邏輯相對簡單,我們往往較少關注程序架構層面的設計。 然而隨著項目經驗的積累,開發者會逐漸意識到模塊間的耦合問題:當功能迭代時,一處修改可能引發連鎖反應。 此時,構…

Zookeeper三臺服務器三節點集群部署(docker-compose方式)

1. 準備工作 - 服務器:3 臺服務器,IP 地址分別為 `10.10.10.11`、`10.10.10.12`、`10.10.10.13`。 - 安裝 Docker:確保每臺服務器已安裝 Docker 和 Docker Compose。 - 網絡通信:確保三臺服務器之間可以通過 IP 地址互相訪問,并開放以下端口: - `2181`:Zookeeper 客戶…

Mac關閉sip方法

Mac關閉sip方法 導航 文章目錄 Mac關閉sip方法導航完整操作流程圖詳細步驟 完整操作流程圖 這東西是我在網上搬運下來的,但是我在為業務實操過程中,根據實操情況還是有新的注意點的 詳細步驟 1.在「關于本機」-「系統報告」-「軟件」;查看SIP是否開啟…

C++| 深入剖析std::list底層實現:鏈表結構與內存管理機制

引言 std::list的底層實現基于雙向鏈表,其設計哲學與std::vector截然不同。本文將深入探討其節點結構、內存分配策略及迭代器實現原理,揭示鏈表的性能優勢和潛在代價。 1. 底層數據結構:雙向鏈表 每個std::list節點包含: 數據域…

漢諾塔問題——用貪心算法解決

目錄 一:起源 二:問題描述 三:規律 三:解決方案 遞歸算法 四:代碼實現 復雜度分析 一:起源 漢諾塔(Tower of Hanoi)問題起源于一個印度的古老傳說。在世界中心貝拿勒斯&#…

【Python】Python 100題 分類入門練習題 - 新手友好

Python 100題 分類入門練習題 - 新手友好篇 - 整合篇 一、數學問題題目1:組合數字題目2:利潤計算題目3:完全平方數題目4:日期天數計算題目11:兔子繁殖問題題目18:數列求和題目19:完數判斷題目21…

【linux】--- 進程概念

進程概念 1.認識馮諾依曼結構2. 操作系統(Operator system)2.1 概念2.2 設計OS的目的2.3 理解操作系統2.4 如何理解管理2.5 理解系統調用和庫函數 3. 進程3.1 基本概念和基本操作3.1.1 描述進程 - PCB3.1.2 task_struct3.1.3 查看進程 3.2 進程狀態3.2.1 運行&&…

算法堆排序記錄

【算法】排序算法之堆排序 - 知乎 應用場景:獲取第n個大或者小的數 操作步驟: 1、將數組構造成堆 2、調整根節點為最大堆 ->倒序對每個根節點執行最大化 ->根節點最大化過程中如果發生交換,需要保證子節點也為最大堆(執行…

STM32 模塊化開發實戰指南:系列介紹

本文是《STM32 模塊化開發實戰指南》系列的導讀篇,旨在介紹整個系列的寫作目的、適用讀者、技術路徑和每一篇的主題規劃。適合從事 STM32、裸機或 RTOS 嵌入式開發的個人開發者、初創工程師或企業項目團隊。 為什么要寫這個系列? 在嵌入式開發中,很多人剛開始都是從點亮一個…

【眼底輔助診斷開放平臺】項目筆記

這是一個標題 任務一前端頁面開發:后端接口配置: 任務二自行部署接入服務 日志修改樣式和解析MD文檔接入服務 Note前端登陸不進去/更改后端api接口304 Not Modifiedlogin.cache.jsonERR_CONNECTION_TIMED_OUT跨域一般提交格式proxy.ts src/coponents 目錄…

【后端開發】Spring MVC-計算器、用戶登錄、留言板

文章目錄 前后端分離設計接口設計思路項目問題解決思路 計算器需求分析接口定義前端頁面代碼服務器代碼 用戶登錄需求分析接口定義用戶登錄校驗接口查詢登錄用戶接口 前端頁面代碼用戶登錄校驗查詢登錄用戶 服務器代碼前后端交互 留言版需求分析接口定義獲取全部留言發布留言前…

在Ubuntu-22.04.5中安裝ONLYOFFICE DocSpace(協作空間)【注意:安裝失敗,謹慎參考!】

1. 通過Docker安裝 預計需要下載10G的鏡像。 (1)下載docspace安裝腳本 curl -fsSL https://download.onlyoffice.com/docspace/docspace-install.sh -o docspace-install.sh (2)修改docker compose的別名為docker-compose ali…

2025年計算機領域重大技術突破與行業動態綜述

——前沿技術重塑未來,開發者如何把握機遇? 2025年第一季度,全球計算機領域迎來多項里程碑式進展,從量子計算到人工智能,從芯片設計到網絡安全,技術革新與產業融合持續加速。本文梳理近三個月內最具影響力…

一、LLM 大語言模型初窺:起源、概念與核心原理

一、初識大模型 1.1 人工智能演進與大模型興起:從A11.0到A12.0的變遷 AI 1.0時代(2012-2022年) 感知智能的突破:以卷積神經網絡(CNN)為核心,AI在圖像識別、語音處理等感知任務中超越人類水平。例如&#…

Redis 分布式鎖+秒殺異步優化

文章目錄 問題思路setnx實現鎖誤刪問題和解決方案Redis Lua腳本問題引出解決方案 setnx實現的問題Redission快速入門redission可重入鎖原理 秒殺優化(異步優化)異步秒殺思路秒殺資格判斷Redis消息隊列 問題 比如我們兩個機器都部署了我們項目,這里nginx使用輪詢的方…