26

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

该实用程序必须能够:

  • 在 Linux 中运行。
  • 处理泛型,即在参数和返回类型中正确显示 List<Foo>。
  • 显示类继承和接口实现。

如果该实用程序能够:

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

5 回答 5

6

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

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

于 2009-04-10T12:44:38.780 回答
2

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

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

于 2009-04-10T12:20:41.163 回答
2

doxygen几乎可以满足您的一切需求。

于 2009-04-10T12:28:00.257 回答
0

目前尚不清楚您是想从 UML 创建代码还是将代码逆向工程到 UML。如果您想从 UML 创建代码,Netbeans UML 项目类型可能是最简单的 Java 工具集。

如果你想独处

StarUML是一种较旧的 UML 建模工具。它遵循 2 之前的大多数 UML 指南。它可以处理泛型,但前提是您手动输入它们。但是,如果我没记错的话,我认为它不会正确生成泛型。您必须在生成后调整代码。

虽然不是免费的,但我个人认为如果你经常做 UML, Umodel是物有所值的。

于 2009-04-10T12:44:29.857 回答
-1

tigris.org 的 ArgoUML:请参见此处:它是多平台的。如果您更喜欢 GNU/linux 应用程序并且使用 KDE,则可以使用Umbrello

于 2009-04-10T14:14:01.063 回答