10

大家好,我在项目发布结束时。所以为了继续工作,我们的经理要求我们为我们编写的代码生成类图。它的中等项目有 3500 个 java 文件。所以我认为我们需要生成类图。首先我需要知道逆向工程是如何工作的。我也在谷歌(绿色,紫罗兰色)中寻找了一些工具,但不确定它们是否有任何帮助。请建议我如何继续。也感谢一个好的入门教程。

4

10 回答 10

8

我强烈推荐 BOUML。它的 Java 反向支持绝对是ROCK SOLID

BOUML 还有许多其他优点:

  • 它非常快(有史以来最快的 UML 工具,查看基准测试),
  • 具有坚如磐石的 C++、Java、PHP 和其他导入支持,
  • 它是多平台的(Linux、Windows、其他操作系统),
  • 具有出色的 SVG 导出支持,这一点很重要,因为以矢量格式查看大图(在 Firefox 等中可以快速缩放)非常方便(您可以在“鸟瞰”视图和类详细视图之间快速切换),
  • 它功能齐全,令人印象深刻的密集开发(看看发展历史,很难相信如此快速的进步是可能的)。
  • 支持插件,具有模块化架构(这允许用户贡献,看起来 BOUML 社区正在形成)
于 2009-06-04T10:11:22.330 回答
6

您要使用的工具是Doxygen。它类似于 Javadoc,但可以跨多种语言工作。如果找出依赖关系,可以调用 graphviz 来渲染类图。下面是几个通过 Doxygen 运行的 Java 类的示例。

于 2009-05-26T08:03:20.373 回答
3

这更像是一个工具链而不是一个工具,我自己还没有尝试过。但这可能是一个起点。使用UMLGraphantGraphViz。一步一步解释:在这篇文章中

于 2009-05-26T07:45:43.293 回答
2

我已经将 Visual Paradigm for UML 用于您想要做的事情,它非常好。

有关详细信息,请参见此处

只需转到工具-> 即时反转并选择您的包。

于 2009-05-26T09:16:09.150 回答
2

您可以使用开源建模工具 ArgoUML http://argouml.tigris.org/对类图进行逆向工程

于 2009-05-27T21:19:37.927 回答
2

ObjectAid很不错。您可以将类拖到图表中并按照您想要的方式排列它们。

于 2013-04-29T13:54:55.893 回答
1

UML 标准版(或更好)的 Visual Paradigm 会将 Java 文件逆向工程为类图。

于 2009-05-26T07:47:24.897 回答
1

我想如果你的老板只是想让你忙到下一个项目开始,那么这并没有什么坏处,但你很快就会发现,创建一个包含 3500 个类的类图不会告诉你关于你的系统的任何信息。事实上,您并不真正想要一个包含超过 10 个类的图表。因此,一旦您将所有代码反转到您的建模工具中,您将需要开始组织和安排以找到含义。创建一个新图表,将一个重要的类放到它上面,并引入与该类直接相关的所有类。重复 300 个最重要的课程。别担心,它并不像听起来那么可怕,也许一周的工作。

作为记录,我选择的建模工具是Sparx Systems的 Enterprise Architect 。它将反转 java 源或 .jar 文件。有 30 天免费试用版。

于 2009-05-26T23:05:11.520 回答
0

有一些工具可以帮助您生成这些图表。这些要花钱。

否则,您可以尝试解析您的 Java 文件。这可以像创建一个简单的解析器一样简单,该解析器读取 Java 文件并将类的名称和所有导入语句写入文件并从那里生成类图,graphviz可以帮助您。

于 2009-05-26T07:33:09.310 回答
0

我已经使用 Enterprise Architect 很多年了。一位 JBoss 开发人员向我推荐了它。它适用于所有类型的 UML 建模,包括类模型的逆向工程(Java、C# 和其他)。基本版本目前每个座位 120 美元,但它具有更昂贵工具的大部分功能,并且更容易学习。我特别喜欢它生成 HTML 和 RTF 文档的能力。

在工具和源代码之间同步代码非常容易。如果你愿意,甚至是双向的。

您的 PM 可能还喜欢它可以创建的活动和序列图。我也经常使用部署图。将所有这些都集中在一个工具中非常有帮助。

于 2009-05-27T19:53:15.510 回答