【问题标题】:Generate full class diagram using GraphViz and Doxygen使用 GraphViz 和 Doxygen 生成完整的类图
【发布时间】:2015-12-10 02:59:34
【问题描述】:
我目前正在实习,为了公司,我决定继续进行编程工作。对于我目前的实习来说,这似乎比创建没有人得到或使用的各种图表更合适。
现在我遇到了一个问题。 4 周的实习和 50 节 Java 课程之后,我的学校决定他们想看一张班级图。我已经用 GraphViz 设置了 doxygen 来生成部分类图,只关注其中一个类及其关联。但我想知道的是,是否可以生成一个包含所有类的所有关系的类图?还是我必须尝试让我的学校相信这样类图具有更好的可读性?
【问题讨论】:
标签:
doxygen
graphviz
class-diagram
【解决方案1】:
简短的回答是这是不可能的。 Doxygen 解析代码并仅包含图表中与文档类有任何直接或间接关系的类。
doxygen 不会生成包含所有类及其关联的通用类图。
使用 doxygen 的图表选项来查看图表是否对您有意义(使用“doxywizard”[向导选项卡 -> 图表或专家选项卡 -> 点],或者我更喜欢直接编辑 doxyfile)。
我不认为具有 50 多个类的类图是有意义的,因为这会导致图难以阅读,这比帮助更令人困惑。 (通常最好将代码组织在包中,您可以使用 doxygen 的分组功能记录这些代码。在这种情况下,您可以使用协作图来显示包之间更高级的关系。)
另一种方法可能是使用 UML/CASE 工具从您的代码生成 UML 图(例如,来自 Sparx Systems 的 Enterprise Architect,您可以导入您的代码并让该工具从中生成类图)。您可以通过将这些图形导出为图片并使用 \image 标签将这些图片包含在您的 doxygen 生成的文档中来包含此类生成的图形。
我希望这会有所帮助。