使用 GraphViz 和 Doxygen 生成完整的 class 图

Generate full class diagram using GraphViz and Doxygen

我目前正在实习,为了公司的利益,我决定继续进行编程工作。对于我目前的实习来说,这似乎比创建各种无人获得或使用的图表更适合。

现在我 运行 遇到了问题。 4 周的实习和 50 java-classes 后来我的学校决定他们想看一个 class 图表。我已经使用 GraphViz 设置了 doxygen 以生成部分 class 图,重点仅放在 classes 之一及其关联上。但我想知道的是,是否有可能生成一个包含所有 classes 的所有关系的 class 图?或者我是否必须尝试说服我的学校这样 class 图表具有更好的可读性?

简短的回答是这是不可能的。 Doxygen 解析代码并在图表中仅包含 class 与记录的 class 有任何直接或间接关系的元素。 包含所有 classes 及其关联的通用 class 图不是由 doxygen 生成的。

尝试使用 doxygen 的图表选项来查看对您有意义的图表(使用 "doxywizard" [Wizard 选项卡 -> Diagrams 或 Expert 选项卡 -> Dot] 或者我更喜欢直接编辑文件)。

我不认为 class 图表超过 50 class 是有意义的,因为这会导致图表难以阅读,这比帮助更令人困惑。 (通常,最好将代码组织在包中,您可以使用 doxygen 的分组功能对其进行记录。在这种情况下,您可以使用协作图来显示包之间更高级的关系。)

另一种方法可能是使用 UML/CASE 工具从您的代码生成 UML 图(例如 Sparx Systems 的 Enterprise Architect,您可以导入您的代码并让该工具生成 class 图它)。您可以通过将图表导出为图片并使用 \image 标签将这些图片包含在 doxygen 生成的文档中来包含此类生成的图表。

希望对您有所帮助。