有没有好的工具或工具链可以根据文本源文件创建 .svg 格式的 UML 图像?我提出这个问题的原因是想要自动化生成这些图像,避免手动创建和更新这组图像。
有没有好的工具或工具链可以根据文本源文件创建 .svg 格式的 UML 图像?我提出这个问题的原因是想要自动化生成这些图像,避免手动创建和更新这组图像。
PlantUML是一个很好的工具,可以将文本转换为标准化的UML图表。
你可以将其作为Confluence插件使用。
还有一个工具叫做JS Sequence Diagrams,可以从简单的文本生成UML序列图。
它使用underscore.js
和Raphaël
构建图表。
它是简化的BSD许可证,并且源代码可在GitHub上获得。
对于序列图,我非常喜欢Mscgen。简单的文本格式输入,美丽的图表输出。
"Mscgen是一个小型程序,解析Message Sequence Chart描述并将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"];
}
如果你喜欢JS序列图,你也应该看看UMLet,它有类似的前提(能够通过文本定义图表,类似于graphviz描述),并让工具找出图形和位置。
在我看来,这种方法还没有得到足够的宣传或关注。完整的往返源代码分析是困难的,在许多情况下,“对于简单的设计对话或快速文档编写来说,工作量太大”。企业工具中的布局复杂性阻止了除最大的文档之外的所有文档使用它们。而敏捷开发则因为代价太高而缺乏文档。
出于这些原因,我希望看到更多的工具采用这种方法。
免费的UML工具JUDE允许从Java源代码创建UML图。我不知道它是否适用于其他语言。