画时序图你用什么软件?

原创 嵌入式软件实战派 2021-09-14 08:22

↑点击上方蓝色字体,关注“嵌入式软件实战派”获得更多精彩内容。

软件设计时序图制作工具

在软件设计过程中,经常会使用到时序图来表达模块之间的交互、信息传递的动态行为或者其他软件逻辑。时序图可以清晰地表达软件层面的设计,甚至毫不夸张说是“一图顶千言”。

那么,抛出个直截了当的问题:画时序图的工具有哪些?哪个最好用?

以下以EA(Enterprise Architect)DrawIOPlantUML和Markdown里的mermaid来对比讲解。

首先看看他们的效果对比:

1. 效果对比

以下是EA(Enterprise Architect)、DrawIO、PlantUML和Markdown里的mermaid的时序图最终效果对比。

这几个图都是表示创建一个账户(Create Account)的实例。

This Sequence Diagram shows the Objects involved in the creation of a new account. The Account Object is displayed lower down in the diagram because it doesn’t exist at the beginning of the sequence but is created as a result of the message.

  1. EA

  2. DrawIO

  3. PlantUML

  4. mermaid


从上面的各个工具做出的图看,前面三个差别不大该有的图示效果都有,最后一个mermaid就没那么丰富了,只能做个简单的图示表达。

然而,这样也不能说明哪个是最好的,只能从中找出一个最适合你的。

为了更好说明各自的优缺点,先看看时序图里面有什么。

2. 时序图的组成

首先,想想你理解中的时序图是什么?里面有什么元素?

画两根竖线,然后通过几个箭头表示消息传递,仅此而已?

这个是时序图么?是,可以认为时序图,但不是那么标准。

那么,什么是标准?或者说有没有一个约定成俗的东西?

时序图不仅仅是给自己看的,也是向其他团队成员传递或表达信息的媒介,应该与别人有共同约定的符号或元素。

就像南方人跟北方人讲话,通用的普通话就很好,如果你讲的普通话夹杂很多粤语甚至潮汕话,你让东北人怎么听得懂。

时序图是可以基于UML的,UML是统一建模语言,里面很多元素是我们共同认为它表达某一种特别含义。

以下基于UML概念,讲讲时序图里面主要一些元素。

Lifeline

这个是时序图的最基本的东西

Lifeline是交互中的单个参与者(即生命线不能具有多重性)。Lifeline代表一个独特的可连接元素。

OMG UML 规范(UML Superstructure Specification, v2.1.1, p.489)指出:

Lifeline代表交互中的单个参与者。虽然零件和结构特征的多重性可能大于 1,但Lifeline仅代表一个交互实体。

这个很好理解,简单粗暴地说,就是一根竖下来的东西,代表一个独立的交互实体。

上图是EA常用的Lifeline图示,当然也有通过其他图标组合的Lifeline,例如这个

DrawIO上也能找到很多各种Lifeline

对于PlantUML,可以通过脚本指定,同样有很多种

下图示例Lifeline类型
Foo1actor
Foo2boundary
Foo3control
Foo4entity
Foo5database
Foo6collections

而mermaid就没有那么多类型的了,就只有很简单的。

Control/Boundary/Entity

Control 是一个原型对象,它为控制实体或管理器建模。控件组织和安排其他活动和元素,通常在分析(包括稳健性)、序列和通信图中。


Boundary是一种原型对象,它对某些系统Boundary进行建模,通常是用户界面屏幕。您还可以将Boundary创建为构造型类。在分析中使用Boundary元素来捕获用户交互、屏幕流和元素交互(或“协作”)。
在概念阶段使用Boundary来捕获用户在屏幕级别(或某些其他Boundary界面类型)与系统交互。它通常用于序列和稳健性(分析)图中。

Entity是一种原型对象,它对捕获系统中的信息或知识的存储或持久性机制进行建模。

通常情况下,Control/Boundary/Entity往往跟Lifeline一起使用(见文章开头的图)。

EA、DrawIO、PlantUML都有这些元素。

Message

这个很好理解,就是一根线一个箭头,加上一个文本描述。

Message表示元素之间的信息流或控制转换。
Message可用于时序图、序列图和通信图(但不包括交互概览图)以反映系统行为。
如果在类或分类器实例之间,关联的操作列表可用于指定事件。

Message分Synchronize和Asynchronize,前者对应的是黑实心箭头(下图右边的箭头),后者对应的是开放箭头(下图左边的箭头)。

对于EA,可以直接双击这个message箭头可以设置,里面的配置十分丰富

而DrawIO或其他工具,在设置属性等界面可以选择不同的箭头,而并没说明这是Synchronize还是Asynchronize。

对于PlantUML,是通过脚本设置不同的Message类型,如

  • Client ->> CreateAccount表示Asynchronize箭头;

  • CreateAccount -> CreateNewAccount表示Synchronize箭头。

另外,这两种不同的Message类型,会影响Lifeline的,很明显Synchronize会阻塞当前运行,而Asynchronize不会。

这个图上的block块,在EA上是自动根据Message类型显示的,不需要特殊处理,而DrawIO是需要在Lifeline上贴上一个长方形的,但是PlantUML上似乎没找到这个设置。

Fragment

组合Fragment反映了由交互操作符控制的交互(称为交互操作数)的一个或多个方面,相应的布尔条件称为交互约束。Fragment 显示为一个透明窗口,由每个操作数的水平线分隔。

下图说明了如何使用组合片段对简化的采购流程进行建模。Loop Fragment表示迭代购买数量未知的物品,之后收银员请求付款。
另一个Fragment代表支付选项,该Fragment被分割以显示现金和信用卡这两个操作数。在Fragment完成其跟踪后,收银员在满足付款要求的履行条件下向客户提供收据。

在EA上操作Fragment是非常方便的。

而在DrawIO上的话,有点古板,里面的线条或者边框都是普通图形组成的,如果有比较复杂的Fragment要画,是比较麻烦的。

对于PlantUML,它是有专门的语法对应这个Fragment的,例如下面这段脚本就可以翻译成以下图形:

@startuml
Alice -> Bob: Authentication Request
alt successful case
Bob -> Alice: Authentication Accepted
else some kind of failure
Bob -> Alice: Authentication Failure
group My own label
Alice -> Log : Log attack start
loop 1000 times
Alice -> Bob: DNS Attack
end
Alice -> Log : Log attack end
end
else Another type of failure
Bob -> Alice: Please repeat
end
@enduml

注释

这个没什么特殊的,不是很讲究,简单地理解就是在时序图上贴上一段文本内容,以辅助理解这个时序图。

3. 总结

工具/软件时序图功能总结评价
EA这个是基于UML概念设计用的,不仅仅是为了画图,而注重“设计”。里面的概念和功能非常强大,画时序图也非常友好,但是如果对EA陌生的话,入门会有些难度,相对DrawIO并非“所见所得”。
DrawIO画的图很好看,也很方便,就因为图是“画”出来的,所以,它是为了画图而画图,并没有太多内涵。如果画很复杂的图也是比较繁琐的。如果只是画些简单的图形,是不二选择。
PlantUMLUML概念比较丰富,但是颜色风格看个人喜好。如果喜欢Mark图而不是画图的,可以考虑。这个工具“画”图是通过脚本命令的,然后生成图片。经常使用文本编辑的环境,这个是比较好的。
mermaid非常简单,功能稀少,用于嵌入markdown的简单图示是个不错的选择

总体来说,如果仅仅是画时序图,我优先选EA,对于简单的而又好看点的,就选DrawIO。

注意:EA软件是要license的,而DrawIO是开源的。DrawIO有网页版、PC桌面版,也有vs code插件版。
PlantUML,我是用vs code插件来做的。mermaid的话,我用Typera markdown。

这些软件工具大家都可以按名称搜索找到下载并尝试使用,如有疑问请私信我。

请关注公众号“嵌入式软件实战派”,获得更多精彩内容!
另外,点击“原文链接”可以跳转到CSDN页面看。


嵌入式软件实战派 专注嵌入式软件开发领域知识传授,包括C语言精粹,RTOS原理与使用,MCU驱动开发,AUTOSAR搭建,软件架构方法设计等。
评论 (0)
  • 一、行业背景与需求随着智能化技术的快速发展和用户对便捷性需求的提升,电动车行业正经历从传统机械控制向智能交互的转型。传统电动车依赖物理钥匙、遥控器和独立防盗装置,存在操作繁琐、功能单一、交互性差等问题。用户期待通过手机等智能终端实现远程控制、实时数据监控及个性化交互体验。为此,将蓝牙语音芯片集成至电动车中控系统,成为推动智能化升级的关键技术路径。二、方案概述本方案通过在电动车中控系统中集成WT2605C蓝牙语音芯片,构建一套低成本、高兼容性的智能交互平台,实现以下核心功能:手机互联控制:支持蓝牙
    广州唯创电子 2025-04-18 08:33 153浏览
  • 置信区间反映的是“样本均值”这个统计量的不确定性,因此使用的是标准误(standard error),而不是直接用样本标准差(standard deviation)。标准误体现的是均值的波动程度,而样本标准差体现的是个体数据的波动程度,两者并非一回事,就如下图所显示的一样。下面优思学院会一步一步解释清楚:一、标准差和标准误,究竟差在哪?很多同学对“标准差”和“标准误”这两个概念傻傻分不清楚,但其实差别明显:标准差(Standard Deviation,σ或s):是衡量单个数据点相对于平均值波动的
    优思学院 2025-04-17 13:59 29浏览
  •   无人机蜂群电磁作战仿真系统全解析   一、系统概述   无人机蜂群电磁作战仿真系统是专业的仿真平台,用于模拟无人机蜂群在复杂电磁环境中的作战行为与性能。它构建虚拟电磁环境,模拟无人机蜂群执行任务时可能遇到的电磁干扰与攻击,评估作战效能和抗干扰能力,为其设计、优化及实战应用提供科学依据。   应用案例   目前,已有多个无人机蜂群电磁作战仿真系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机蜂群电磁作战仿真系统。这些成功案例为无人机蜂群电磁作战仿真系统的推广和应用提
    华盛恒辉l58ll334744 2025-04-17 16:29 114浏览
  • 1. 在Ubuntu官网下载Ubuntu server  20.04版本https://releases.ubuntu.com/20.04.6/2. 在vmware下安装Ubuntu3. 改Ubuntu静态IP$ sudo vi /etc/netplan/00-installer-config.yaml# This is the network config written by 'subiquity'network:  renderer: networkd&nbs
    二月半 2025-04-17 16:27 105浏览
  • 一、行业背景与需求智能门锁作为智能家居的核心入口,正从单一安防工具向多场景交互终端演进。随着消费者对便捷性、安全性需求的提升,行业竞争已从基础功能转向成本优化与智能化整合。传统门锁后板方案依赖多颗独立芯片(如MCU、电机驱动、通信模块、语音模块等),导致硬件复杂、功耗高、开发周期长,且成本压力显著。如何通过高集成度方案降低成本、提升功能扩展性,成为厂商破局关键。WTVXXX-32N语音芯片通过“单芯片多任务”设计,将语音播报、电机驱动、通信协议解析、传感器检测等功能整合于一体,为智能门锁后板提供
    广州唯创电子 2025-04-18 09:04 151浏览
  •   无人机电磁兼容模拟训练系统软件:全方位剖析   一、系统概述   北京华盛恒辉无人机电磁兼容模拟训练系统软件,专为满足无人机于复杂电磁环境下的运行需求而打造,是一款专业训练工具。其核心功能是模拟无人机在电磁干扰(EMI)与电磁敏感度(EMS)环境里的运行状况,助力用户评估无人机电磁兼容性能,增强其在复杂电磁场景中的适应水平。   应用案例   目前,已有多个无人机电磁兼容模拟训练系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机电磁兼容模拟训练系统。这些成功案例为
    华盛恒辉l58ll334744 2025-04-17 14:52 49浏览
  •   无人机蜂群电磁作战仿真系统软件,是专门用于模拟、验证无人机蜂群在电磁作战环境中协同、干扰、通信以及对抗等能力的工具。下面从功能需求、技术架构、典型功能模块、发展趋势及应用场景等方面展开介绍:   应用案例   目前,已有多个无人机蜂群电磁作战仿真系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机蜂群电磁作战仿真系统。这些成功案例为无人机蜂群电磁作战仿真系统的推广和应用提供了有力支持。   功能需求   电磁环境建模:模拟构建复杂多样的电磁环境,涵盖各类电磁干扰源与
    华盛恒辉l58ll334744 2025-04-17 16:49 107浏览
  • 近日,全球6G技术与产业生态大会(简称“全球6G技术大会”)在南京召开。紫光展锐应邀出席“空天地一体化与数字低空”平行论坛,并从6G通信、感知、定位等多方面分享了紫光展锐在6G前沿科技领域的创新理念及在空天地一体化技术方面的研发探索情况。全球6G技术大会是6G领域覆盖广泛、内容全面的国际会议。今年大会以“共筑创新 同享未来”为主题,聚焦6G愿景与关键技术、安全可信、绿色可持续发展等前沿主题,汇聚国内外24家企业、百余名国际知名高校与科研代表共同商讨如何推动全行业6G标准共识形成。6G迈入关键期,
    紫光展锐 2025-04-17 18:55 175浏览
  • 现阶段,Zigbee、Z-Wave、Thread、Wi-Fi与蓝牙等多种通信协议在智能家居行业中已得到广泛应用,但协议间互不兼容的通信问题仍在凸显。由于各协议自成体系、彼此割据,智能家居市场被迫催生出大量桥接器、集线器及兼容性软件以在不同生态的设备间构建通信桥梁,而这种现象不仅增加了智能家居厂商的研发成本与时间投入,还严重削减了终端用户的使用体验。为应对智能家居的生态割裂现象,家居厂商需为不同通信协议重复开发适配方案,而消费者则需面对设备入网流程繁琐、跨品牌功能阉割及兼容隐患等现实困境。在此背景
    华普微HOPERF 2025-04-17 17:53 80浏览
  •   北京华盛恒辉无人机电磁兼容模拟训练系统软件是专门用于模拟与分析无人机在复杂电磁环境中电磁兼容性(EMC)表现的软件工具。借助仿真技术,它能帮助用户评估无人机在电磁干扰下的性能,优化电磁兼容设计,保障无人机在复杂电磁环境中稳定运行。   应用案例   目前,已有多个无人机电磁兼容模拟训练系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机电磁兼容模拟训练系统。这些成功案例为无人机电磁兼容模拟训练系统的推广和应用提供了有力支持。   系统功能   电磁环境建模:支持三维
    华盛恒辉l58ll334744 2025-04-17 15:10 79浏览
  •   无人机电磁环境效应仿真系统:深度剖析   一、系统概述   无人机电磁环境效应仿真系统,专为无人机在复杂电磁环境下的性能评估及抗干扰能力训练打造。借助高精度仿真技术,它模拟无人机在各类电磁干扰场景中的运行状态,为研发、测试与训练工作提供有力支撑。   应用案例   目前,已有多个无人机电磁环境效应仿真系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机电磁环境效应仿真系统。这些成功案例为无人机电磁环境效应仿真系统的推广和应用提供了有力支持。   二、系统功能  
    华盛恒辉l58ll334744 2025-04-17 15:51 108浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦