在Linux中运行的免费实用程序,用于从Java源文件创建UML类图

我更喜欢在纸上记下UML图,然后使用Java实现它们。 如果有一个可以为我创建UML图表的实用程序,我可能会在线共享并包含在数字文档中。 换句话说:我想从Java源代码创建UML图。

该实用程序必须能够:

  • 在Linux中运行。
  • 处理generics,即在参数和返回类型中正确显示List 。
  • 显示类inheritance和接口实现。

如果该实用程序能够:

  • 在Windows和Mac OS X中运行。
  • 以一种不错的方式显示枚举。
  • 以图表格式生成输出,我可以使用其他实用程序进行修改。
  • 从命令行运行。
  • 将UML生成限制为我可以指定的一组包。
  • 处理不属于我的源代码的类/接口。 它可以包括UML图中外部的第一个类/接口。 也许用另一种颜色来表明它是由其他人创建的库/框架。
  • 专注于此任务,并不试图解决整个文档问题。

我们尝试过的一种方法是UMLGraph和GraphViz的组合。 我们当时正在做的是让UML创建成为我们CruiseControl构建的自动部分:javadoc将使用内置的UML图构建。它非常漂亮。

我想你会发现UMLGraph文档几乎可以回答你的所有问题。 具体来说,您应该能够从命令行创建所需的类图。

doxygen几乎拥有你需要的一切。

几个月前,我写了一个名为“java2dot”的简单工具。 它不能满足您的所有要求,但可能有所帮助。

http://plindenbaum.blogspot.com/2008/10/javadoc-is-not-enough-java2dia.html

目前尚不清楚是否要将代码从UML或逆向工程师代码创建为UML。 如果要从UML创建代码,Netbeans UML项目类型可能是最简单的Java工具集。

如果你想独自站立

StarUML是一种较旧的UML建模工具。 它遵循大多数UML指南2.它可以处理generics,但只有当你手动输入它时。但是,如果我没记错的话,我认为它不能正确生成generics。 您必须在生成后调整代码。

虽然不是免费的,但我个人认为如果你经常使用UML, Umodel是值得的。

tigris.org的ArgoUML:见这里 :它是多平台的。 如果您更喜欢GNU / Linux应用程序并使用KDE,则可以使用Umbrello 。