登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
UML之序列图的执行规范
UML之序列图的执行规范
[ 复制链接 ]
咚獭
2025-5-31 23:51:55
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
执行规范(Execution Specification)是一个覆盖在生命线上的垂直的、不透明的矩形,这个矩形表示其覆盖的生命线正忙于执行某些行为。
在序列图中执行规范不是必需的,但在复杂的序列图中可能需要查看执行栈或者对某些行为的结束点感兴趣,此时使用执行规范是有帮助的。如果在序列图中的任意一条生命线上使用了执行规范,那么就应当在该图中的所有生命线上都使用执行规范。使用了执行规范的序列图样例如图 1所示,而未使用执行规范的序列图样例如图 2所示。
图 1 在生命线上的执行规范
图 2 生命线上未使用执行规范
执行规范还可以有名称,但一般只在执行的行为名称与对应消息名称不一致时才需要使用执行规范名称。在实际建模工作中,大多数建模者从不为执行规范指定名称。
在图 1中,右侧生命线
ifeline2在开始处存在执行规范,故它处于忙碌状态;然后它向左侧生命线
ifeline1发送同步消息,左侧生命线
ifeline1在接收到消息后开始忙碌执行(故在生命线上描画一个执行规范)。与此同时,右侧生命线
ifeline2暂停执行,直到左侧生命线
ifeline1执行完毕并返回结果给右侧生命线
ifeline2之后,右侧生命线
ifeline2恢复其之前的执行。
在图 1中,右侧生命线
ifeline2暂停执行时,执行规范不再覆盖生命线。但由于当前消息是同步消息,右侧生命线
ifeline2或其包含的部分或线程会等待同步消息的返回,所以依然可以将其视作“执行/忙碌”状态,因而通常情况下,建模者或者工具会使用一个持续到消息返回的执行规范(如图 3所示),而不是一个中间被切断的执行规范。
图 3 连续的执行规范
基于图 1的风格,一个序列图的两条生命线之间的交互时,生命线上的执行规范根据交互过程交替出现,而基于图 3的风格,则两条生命线上可并行出现执行规范。两条生命线由于同步消息而同时处于忙碌状态时,如果存在回调,则执行规范将产生重叠。在图 4中,左侧生命线
ifeline3向右侧生命线:Lifeline4发送同步消息operate(),并且在消息中指定了一个回调操作。右侧生命线:Lifeline4在收到同步消息operate()后开启一个执行规范,但在该执行规范中,需要对左侧生命线:Lifeline3执行一个回调callback(),因而需要在序列图中描画一个由右侧生命线:Lifeline4发送至左侧生命线:Lifeline3消息callback(),这个消息在左侧生命线:Lifeline3上已经存在的执行规范上叠加一个新的执行规范。叠加的执行规范通常以相较于被叠加执行规范较小的矩形表示,并与被叠加执行规范稍微错开,正如在图 4中所描画的那样。
图 4 重叠的运行规范
一些建模者将执行规范理解为当前生命线的激活状态,一些UML工具也按照激活提供执行规范的建模支持,因而很容易引起概念混淆。事实上,激活状态只是执行规范的表现形式之一,并不等同于执行规范本身。执行规范作为UML模型中的一个元素,用于表示生命线在某段时间内正在执行的具体操作或行为,而激活只是帮助我们可视化这一执行过程的手段。如果将两者混为一谈,可能会导致对模型行为的误解。
在实际建模时,为更准确地表达行为语义,我们可以注意以下几点。
首先,要正确使用执行规范元素来体现对象的执行过程,而不应仅依赖工具自动绘制的激活条。确保每个执行规范的开始和结束都与相应消息的发送和返回相对应,这样可以清晰地标明对象何时开始执行操作以及何时结束。
其次,充分利用UML工具提供的功能来增强模型的语义表达,例如为执行规范注明所执行的操作名称或添加注释,使图中的激活更直观地反映实际行为。
最后,虽然不同UML工具对执行规范的呈现方式可能有所不同,但无论工具如何表现激活,都应牢记其背后代表的是执行规范这一概念。
通过这些实践,我们就能有效避免上述误解,在使用UML工具绘制序列图时更精准地传达系统的动态行为语义。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
UML
序列
执行
规范
相关帖子
推荐一种异步线程执行过程中更新进度的方法
MySQL EXPLAIN执行计划:SQL性能翻倍的秘密武器
一条SQL的完整执行过程:小明查询"员工信息"的完整冒险故事
一条SQL在MySQL的执行过程?、MyISAM和InnoDB的区别?
VUE前端项目规范.md---大模型辅助开发使用约束
剑指offer-44、翻转单词序列
具身智能——机械臂全解析:从技术原理到产业生态,解锁智能执行新范式
大疆不同任务类型执行逻辑,上云API源码分析
pgAdmin 后台命令执行漏洞复现及分析(CVE-2025-2945)
JS逆向-反调试分析&debuger执行&条件断点&替换文件执行
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
推荐一种异步线程执行过程中更新进度的方法
1
707
辖瑁地
2025-11-11
安全
MySQL EXPLAIN执行计划:SQL性能翻倍的秘密武器
0
131
汹萃热
2025-11-17
业界
一条SQL的完整执行过程:小明查询"员工信息"的完整冒险故事
2
386
斜素欣
2025-11-22
业界
一条SQL在MySQL的执行过程?、MyISAM和InnoDB的区别?
3
988
倡遍竽
2025-11-29
科技
VUE前端项目规范.md---大模型辅助开发使用约束
3
1002
丁若云
2025-12-01
安全
剑指offer-44、翻转单词序列
2
135
冈欤寨
2025-12-02
业界
具身智能——机械臂全解析:从技术原理到产业生态,解锁智能执行新范式
1
39
届表
2025-12-08
业界
大疆不同任务类型执行逻辑,上云API源码分析
1
92
迭婵椟
2025-12-12
安全
pgAdmin 后台命令执行漏洞复现及分析(CVE-2025-2945)
0
242
赘暨逢
2025-12-17
业界
JS逆向-反调试分析&debuger执行&条件断点&替换文件执行
0
736
殳世英
2025-12-18
回复
(2)
僻嘶
2025-10-10 05:30:36
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
摹熹
2025-10-15 21:26:12
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
咚獭
2025-10-15 21:26:12
关注
0
粉丝关注
20
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
411
Github项目CI&CD部署
310
AgentScope深入分析-LLM&MCP
597
《痞子衡嵌入式半月刊》 第 120 期
624
go项目使用go build 与 MakeFile 构建项目
764
监控指标与容量预警——延迟、命中率、慢查
673
2026 年别墅防水服务商 TOP5 推荐:高端住
963
MAUI库推荐二:MPowerKit
962
.NET10 New feature 新增功能介绍-JIT编译
404
报考陪诊师选守嘉陪诊的理由
272
C#AI系列(7):从零开始LLM之Tokenizer实现
286
C#AI系列(7):从零开始LLM之Tokenizer实现
827
Pytest 测试用例自动生成:接口自动化进阶
848
一天一个Python库:NumPy - 科学计算的基石
15
FFmpeg 内存输入&输出
745
一文读懂RAG架构如何助力AI
500
一文读懂RAG架构如何助力AI
549
ROS2之TF介绍
400
SW 随笔 001 — InlineArray 带你飞(Since
693
当遇见 CatchAdmin V5-模块化设计重新定义
495
【有手就行】SWIFT:花20分钟把大模型的名