【问题标题】:Graphviz + Doxygen to generate UML class diagramsGraphviz + Doxygen 生成 UML 类图
【发布时间】:2012-03-18 02:21:31
【问题描述】:

我想使用 Graphviz + Doxygen 来生成基于 C++ 代码的类图。这已经有效,因为 Doxygen 带有原生 DOT 支持;但是是否有可能产生一个 类似 UML 的输出,并带有相应的访问修饰符(公共、私有等)、类方法的返回和参数类型,类似于下图?

我知道线程 How to use doxygen to create UML class diagrams from C++ source,但它没有回答问题。

【问题讨论】:

    标签: uml doxygen graphviz


    【解决方案1】:

    创建以下源文件example.cpp:

    class Animal
    {
      public:
        void die();
        string name;
        int age;
    };
    
    class Dog : public Animal
    {
      public:
        void bark();
    };
    
    class Cat : public Animal
    {
      public:
        void meow();
    };
    

    运行doxygen -g并更改生成的Doxyfile的以下选项:

    EXTRACT_ALL            = YES
    HAVE_DOT               = YES
    UML_LOOK               = YES
    

    运行doxygen并查看Animal类的输出,应该和上图类似,虽然doxygen不会显示方法和字段的返回类型。

    【讨论】:

    【解决方案2】:

    我遇到了类似的问题,现在已经成功解决了。

    以下是步骤(假设您使用的是 Doxygen-Doxywizard 的 GUI 版本)

    1. 点击专家按钮

    2. 转到点选项卡并选择 DOT_PATH。 浏览安装程序的文件夹。 例如,“C:/Program Files (x86)/Graphviz2.32/bin”

    希望对你有帮助, 安妮特

    【讨论】:

    • 链接失效
    【解决方案3】:

    试试Doxygraph!

    Doxygraph 是一组工具,可从项目的源代码自动逆向工程 UML 类图,并将它们呈现为交互式 Web 应用程序。

    它依赖 Doxygen 解析您的源代码并为其收集的信息创建中间 XML 表示,因此它支持 Doxygen 支持的所有相同编程语言:C、C++、C#、Objective C、Java、Python、PHP 、Tcl、D、IDL、VHDL 和 Fortran。

    您需要阅读克隆项目中的 README。

    【讨论】:

    • 这不是问题的答案。你应该把它写成评论
    【解决方案4】:

    实现您的结果的可能解决方案是使用plantuml,但它需要更多的文档工作。

    【讨论】:

    • 当您不想从真实代码生成通用图表而是希望在生成手工图表的文档中有额外的“图表代码”时,这似乎是正确的工具。这正是我想要的。
    猜你喜欢
    • 2015-12-10
    • 2015-09-15
    • 2012-12-15
    • 2014-10-11
    • 2013-07-29
    • 2020-04-14
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多