【问题标题】:Sparx Enterprise Architect conversion (from source to UML)Sparx Enterprise Architect 转换(从源代码到 UML)
【发布时间】:2010-05-29 17:27:11
【问题描述】:

我需要为一个项目制作一个 UML 类图。我过去使用 Sparx Enterprise Architect 从图表生成源代码,所以我正在使用它。

项目已经完成,所以所有代码都完成了,我真的不想手动编写所有类/函数,所以我试图从源代码生成图表,但似乎找不到方法来做到这一点。我在网上和他们的网站上搜索过,但一无所获。

任何帮助表示赞赏。

【问题讨论】:

  • 您认为这样做会增加什么价值?我会坚持使用显示模块职责的包图,并使用 doxygen 之类的东西来记录已构建的项目。
  • 我这样做是因为我必须这样做(而且没有人事先告诉我)。不过,我总是用 doxygen 记录项目。
  • 我不确定这是否有意义; Doxygen 可以生成 UML 风格的类图。

标签: uml enterprise-architect auto-generate


【解决方案1】:

适用于 EA 企业版第 8 版。 打开或创建一个项目。 创建空类图。 菜单选择: 项目 -> 源代码工程 -> 导入文件 目录对话框打开供您选择文件。

我已经“逆向工程”了许多 C++ 项目,无论大小。您将花费大量时间进行清理。这将取决于项目的质量、结构和代码。

然后您可以生成一个文档报告(项目->文档),我发现它非常有用,HTML 报告,用于导航代码。

【讨论】:

    【解决方案2】:

    将代码导入模型称为“reverse engineering”。在模型中之后,您可以制作图表。

    【讨论】:

    • 逆向工程的概念不错,但实际情况不同!!如果您仔细查看模型,您会发现只有不到 50% 的项目真正映射到模型。我尝试了 java reverse,但其他的反向可能会更好。
    • 甚至值得,因为如果您从模型生成代码,然后从代码重新创建模型,您将丢失 70% 的初始类图模型!问题是模型和代码生成之间没有可追溯性。只有 EclipseUML Omondo 允许此功能,因为它们具有合并选项。
    • @roko-sifredi -- 几年前,我发现 Sparx Enterprise Architect 使用 C# 非常适合往返工程。
    • 没关系,谢谢。它并没有那么好,但我没想到它会这样。我只是不想再次编写所有的类/函数,所以它工作得很好。我只是手动添加了连接并清理了出现的额外内容。
    【解决方案3】:

    为此,您应该首先使用逆向工程选项,但正如其他一些用户指出的那样,这不是 EA 的优势。我过去尝试过(我认为是 7.3 版)用 C、Python 和 Java 项目来做,结果并不总是令人满意。

    我不知道你的代码是用哪种编程语言编写的,但是对于 C,如果你使用预处理器指令,你会遇到很多问题和不兼容的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多