是否有任何好的工具或工具链允许从文本源文件创建 .svg 格式的 UML 图像?这个问题的原因是我想自动生成这些图像,以避免必须手动创建和更新这组图像。
9 回答
我在这里创建了一个接受文本模型描述作为输入的工具列表:
http://modeling-languages.com/uml-tools-textual-notations-define-uml-models/
PlantUML是一个很好的工具,可以将文本转换为标准化的 uml 图。
你有这个作为 confluenze 的插件
我知道这是一个旧线程,但我仍然想分享一个我觉得非常有用且用户友好的工具:https ://www.websequencediagrams.com/
这是一个在线工具,可让您立即启动并运行。
它还具有各种开箱即用的漂亮布局。
这里有两个例子:
Enterprise Architect在从源代码(各种语言)以及数据库或其他来源自动创建图表方面做得很好。
对于序列图,我真的很喜欢 Mscgen。输入简单的文本格式,输出可爱的图表。
“Mscgen 是一个小程序,它解析消息序列图描述并生成 PNG、SVG、EPS 或服务器端图像映射 (ismaps) 作为输出” - http://www.mcternan.me.uk/mscgen/
例如表格的输入:
# MSC for some fictional process
msc {
hscale = "2";
a,b,c;
a->b [ label = "ab()" ] ;
b->c [ label = "bc(TRUE)"];
c=>c [ label = "process(1)" ];
c=>c [ label = "process(2)" ];
...;
c=>c [ label = "process(n)" ];
c=>c [ label = "process(END)" ];
a<<=c [ label = "callback()"];
--- [ label = "If more to run", ID="*" ];
a->a [ label = "next()"];
a->c [ label = "ac1()\nac2()"];
b<-c [ label = "cb(TRUE)"];
b->b [ label = "stalled(...)"];
a<-b [ label = "ab() = FALSE"];
}
产生如下输出:
免费的 UML 工具JUDE允许从 Java 源代码创建 UML 图。我不知道它是否适用于其他语言。
如果你喜欢 JS 序列图,你还应该看看UMLet,它有类似的前提(能够通过文本定义图表,类似于 graphviz 描述)并让工具找出图表和定位。
恕我直言,这种方法没有得到足够的宣传或牵引。完整的往返源分析很困难,而且在许多情况下,对于简单的设计对话或快速文档来说,“工作量太大”。企业工具中布局的复杂性使除了最大的文档之外的所有人都无法使用它们。敏捷遭受无文档的困扰,因为价格太高了。
出于这些原因,我希望看到更多工具采用这种方法。