大家好,我在项目发布结束时。所以为了继续工作,我们的经理要求我们为我们编写的代码生成类图。它的中等项目有 3500 个 java 文件。所以我认为我们需要生成类图。首先我需要知道逆向工程是如何工作的。我也在谷歌(绿色,紫罗兰色)中寻找了一些工具,但不确定它们是否有任何帮助。请建议我如何继续。也感谢一个好的入门教程。
10 回答
我强烈推荐 BOUML。它的 Java 反向支持绝对是ROCK SOLID。
BOUML 还有许多其他优点:
您要使用的工具是Doxygen。它类似于 Javadoc,但可以跨多种语言工作。如果找出依赖关系,可以调用 graphviz 来渲染类图。下面是几个通过 Doxygen 运行的 Java 类的示例。
您可以使用开源建模工具 ArgoUML http://argouml.tigris.org/对类图进行逆向工程
ObjectAid很不错。您可以将类拖到图表中并按照您想要的方式排列它们。
UML 标准版(或更好)的 Visual Paradigm 会将 Java 文件逆向工程为类图。
我想如果你的老板只是想让你忙到下一个项目开始,那么这并没有什么坏处,但你很快就会发现,创建一个包含 3500 个类的类图不会告诉你关于你的系统的任何信息。事实上,您并不真正想要一个包含超过 10 个类的图表。因此,一旦您将所有代码反转到您的建模工具中,您将需要开始组织和安排以找到含义。创建一个新图表,将一个重要的类放到它上面,并引入与该类直接相关的所有类。重复 300 个最重要的课程。别担心,它并不像听起来那么可怕,也许一周的工作。
作为记录,我选择的建模工具是Sparx Systems的 Enterprise Architect 。它将反转 java 源或 .jar 文件。有 30 天免费试用版。
有一些工具可以帮助您生成这些图表。这些要花钱。
否则,您可以尝试解析您的 Java 文件。这可以像创建一个简单的解析器一样简单,该解析器读取 Java 文件并将类的名称和所有导入语句写入文件并从那里生成类图,graphviz可以帮助您。
我已经使用 Enterprise Architect 很多年了。一位 JBoss 开发人员向我推荐了它。它适用于所有类型的 UML 建模,包括类模型的逆向工程(Java、C# 和其他)。基本版本目前每个座位 120 美元,但它具有更昂贵工具的大部分功能,并且更容易学习。我特别喜欢它生成 HTML 和 RTF 文档的能力。
在工具和源代码之间同步代码非常容易。如果你愿意,甚至是双向的。
您的 PM 可能还喜欢它可以创建的活动和序列图。我也经常使用部署图。将所有这些都集中在一个工具中非常有帮助。