从文本文件中呈现UML图

时间:2008-10-11 22:39:20

标签: automation uml svg

是否有任何好的工具或工具链允许从文本源文件创建.svg格式的UML图像? 这个问题的原因是我想自动生成这些图像,以避免手动创建和更新这组图像。

9 个答案:

答案 0 :(得分:21)

我创建了一个工具列表,接受文本模型描述作为输入:

http://modeling-languages.com/uml-tools-textual-notations-define-uml-models/

答案 1 :(得分:12)

UMLGraph是一个用于从基于文本的描述生成UML图(主要是类图和序列图)的程序。它旨在与java源代码一起使用,但是通过一些更改,也可以按照this blog entry的描述使用C ++样式的源代码。

来自UMLGraph网站的引用:

  

GNU plotutils pic2plot程序可以   然后处理序列图   创建PNG,PNM,(伪)GIF, SVG ,   AI,Postscript,CGM,FIG,PCL,HPGL,   Regis,或TEK绘图。

答案 2 :(得分:11)

PlantUML是将文本转换为标准化uml图表的好工具。

你有这个作为confluenze的插件

答案 3 :(得分:3)

还有一个名为JS Sequence Diagrams的工具,允许从简单文本生成UML序列图。

它使用underscore.jsRaphaël来构建图表。

它是简化的BSD许可,源代码可在GitHub

获得

答案 4 :(得分:1)

Enterprise Architect在自动创建图表方面做得非常出色,包括源代码(各种语言)以及数据库或其他来源。

答案 5 :(得分:1)

对于序列图,我真的很喜欢Mscgen。简单的文字格式,可爱的图表。

“Mscgen是一个小程序,它解析消息序列图描述并生成PNG,SVG,EPS或服务器端图像映射(ismaps)作为输出” - http://www.mcternan.me.uk/mscgen/

e.g。输入表格:

# 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"];
}

生成如下输出:

Sequence diagram for a fictional process

答案 6 :(得分:1)

我知道这是一个旧帖子,但我还是想分享一个我发现非常有用且用户友好的工具:https://www.websequencediagrams.com/

这是一款可立即启动并运行的在线工具。

它还具有开箱即用的各种漂亮的布局。
这里有两个例子:

enter image description here

答案 7 :(得分:0)

免费的UML工具JUDE允许从Java源代码创建UML图。我不知道它是否适用于其他语言。

答案 8 :(得分:0)

如果您喜欢JS Sequence Diagrams,您还应该查看具有类似前提的UMLet(能够通过文本定义图表,类似于graphviz描述)并让工具找出图表和定位

恕我直言,这种方法没有得到足够的宣传或牵引力。完整的往返源分析很困难,并且在许多情况下,对于简单的设计对话或快速文档来说“太多工作”。企业工具中布局的复杂性使得除了最大的文档之外的所有文档都无法使用它们。敏捷因为价格太陡而受到无医生的困扰。

出于这些原因,我希望看到更多工具采用这种方法。