简介
定时图也是一种交互图,用来描述对象或实体随时间变化的状态或值,及其相应的时间或期限约束。定时图应用较广,并不局限于软件工程领域。
定时图侧重与时间线相关的值或状态的改变,这些改变可能来自于收到消息、发生事件、系统内部变化或者由时间流逝带来的改变。
因为定时图是UML2.0中的新增图,所以一部分基于UML1.x的工具并不支持定时图的创建。本篇以Visual Paradigm作为定时图绘制工具。
定时图建模步骤
- 确定系统有哪些生命线,及对应的对象或实体
- 确定这些生命线分别有哪些状态或取值,以及相应的时间线
- 确定生命线与生命线之间的消息传递,以及有哪些状态或取值会发生变化
- 确定系统运行过程中有哪些内部变化或事件,以及随时间流逝会有哪些改变
- 确定生命线的时间约束、期限约束
- 对照其他交互图添加相应的注释或文字说明
定时图主要元素
定时图中的主要元素包括生命线、时间线、状态、消息、事件、时间约束和期限约束。生命线一般是抽象化的对象或实体,生命线本身有不同的状态或值,这些状态和值随时间发生变化,这里的时间用X轴上固定单位的时间间隔表示,称为时间线。定时图中可能有一个或多个生命线,消息或事件可以从一个生命线传递到另一个生命线带来状态或值的变化。
时间约束表示消息或事件何时发生,期限约束表示状态或值多长时间内有效。不管是时间约束或期限约束,一旦超出了约束范围就表明系统是有问题的。
- UML表示:双击“Frame”或“Lifetime”,可以修改相应的Frame和Lifeline的名称
- 操作指引
- 打开Visual Paradigm,切换到Diagram菜单
- 点击“New”按钮,在弹出的对话框Search栏中输入"Timing Diagram",如果你最近使用过Timing Diagram就会默认显示在最前面(LRU算法)
- 选中"Timing Diagram",点击"Next"进入下一个页面,输入Diagram Name,配置Location和Description的值,也可以使用默认设置,然后点击"OK"
- 进入Timing Diagram编辑页面,点击左侧"Timing Frame"按钮,在右边的编辑框中创建新的Frame
- 按实际需求编辑Frame,背景色等可以自己定制
- 分类:根据状态和值两个不同的维度分为状态生命线和值生命线
- 状态生命线:对象或实体的状态随时间变化。X轴表示时间,Y轴表示状态
- 值生命线:对象或实体的值随时间变化。X轴表示时间,Y轴表示值。平行线之间显示值,每次值发生变化时平行线都会交叉一次
- 状态生命线与值生命线之间的转换:
右键点击Frame框,在弹出的菜单项中选择View Mode,View Mode有两个子项:Full & Compact,分别对应状态生命线和值生命线。
- UML表示:用X轴上固定间隔的时间段标识
- 操作指引
- 右键点击Frame框,在弹出的菜单选项中点击"Add Time Unit",重复该操作根据实际需求添加多个Time Unit
- 双击单个Time Unit重命名该Time Unit
- UML表示:
- 操作指引
- 右键点击Lifeline处,在弹出的菜单选项中点击"Add State/Condition",重复该操作根据实际需求添加多个State/Condition
- 双击单个State/Condition重命名该State/Condition
- 点击各个状态对应的Timeline激活后即可上下拖动time instance
- UML表示:用带箭头的直线标识
- 操作指引:
- 右键点击Frame框,在弹出的菜单选项中点击"Edit Frame",在Edit Frame框中切换到Time Messages页签
- 单击【Add】按钮,在Add Time Message框中输入相应的字段值,点击【OK】按钮
- 在Time Messages页签依次点击【Apply】、【OK】按钮
- UML表示:在事件发生的时间点处以文字描述标识
- 操作指引
- 右键点击Lifeline处,在弹出的菜单选项中点击"Edit Lifeline",在Edit Lifeline框中切换到Stimuli页签
- 在相应时间点处的Expression中输入事件描述,依次点击【Apply】、【OK】按钮
- UML表示:用{Duration Constraint}标识
- 操作指引
- 右键点击Lifeline处,在弹出的菜单选项中点击"Edit Lifeline",在Edit Lifeline框中切换到Duration Constraints页签
- 单击【Add】按钮,在Add Duration Constraint框中输入相应的字段值,点击【OK】按钮
- 在Duration Constraints页签依次点击【Apply】、【OK】按钮
- UML表示:用{Time Constraint}标识
- 操作指引
- 右键点击Lifeline处,在弹出的菜单选项中点击"Edit Lifeline",在Edit Lifeline框中切换到Time Constraints页签
- 在相应时间点处的Expression中输入时间描述,依次点击【Apply】、【OK】按钮
定时图示例
以空调的模式调换为例
定时图注意事项
- 定时图本身是交互图的一种,侧重点是对象或实体随时间变化的状态或值,所以时间轴的选取在粒度上必须精确在范围上必须能够覆盖重要的状态或值的变化
- 对于复杂的定时图建议采用状态生命线和值生命线两个不同维度叠加组合的方式,这样能够更全面直观地展示对象或实体在状态或值上随时间变化的持续及转折
- 生命线之间传递的消息、有时间约束的事件或者有期限约束的状态,如果受限于示图的大小或布局,可以在titile, header, footer, legend或caption处补充说明
原网址: 访问
创建于: 2023-04-11 10:04:44
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论