最近在寻找绘制时序图的过程中遇到了sdedit,感觉非常适合自己使用,故写这么篇文章向自己也向有同样需求的其它开发人员介绍一些这款软件
sdedit在macOS上安装还是非常容易的,只需要使用homebrew就可以轻松安装,命令如下
brew install sdedit
之后sdedit就会被安装到/usr/local/bin 这个目录下,在命令中输入sdedit就可以启动了。
输入sdedit后会启动一个Java Swing写的GUI程序,具体的外观和布局就不介绍了,这里主要讲解一下sdedit所支持的语法
sdedit中绘图的常用语法
PS:我对UML中的一些术语并不了解,下面的介绍是可能有错误的,具体请以sdedit的官方文档(http://sdedit.sourceforge.net/enter_text/)为准。同时,既然有官方文档了,我就不在此翻译一遍了,只记录一些常用的用法
如果需要输入整个时序图的标题(姑且叫做标题),那么可以使用下面的语法
#![一键获取手机号并登录的交互流程]
即以UNIX中的shebang开头,后面通过一对方括号包住标题内容即可
如果需要绘制一个参与时序图的节点,那么使用下面的语法(摘抄自官方文档)
<name>:<Type>[<flags>] "<label>"
其中,
定义好节点之后,就需要把各个节点在不同的时间用不同的消息联系起来了。描述节点间联系用的语法是(摘自官网)
<caller>[<s>]:<answer>=<callee>[m].<message>
其中的caller和callee都是写的节点的
生成图片
上面的这些文本描述都需要输入到sdedit的文本框中(唯一UI上的右下角),之后点击保存就可以得到一个XXX.sdx的文件了。由于在我的电脑上,sdedit的GUI上的导出功能用起来非常有问题,所以我摸索出来的是在命令行导出图片文件的做法(并且可以导出的格式似乎更丰富)。总体的用法是
sdedit -t <类型> -o <输出文件名> <原始的.sdx文件>
输出文件名随性地取即可,其中类型对常用的都有支持(svg、png、jpg,和bmp),我一般常用的是png,然后就可以得到一张PNG图片了(便可以美美地用到设计文档里了)
配图什么的等我哪天特别闲了再补充上来吧