【问题标题】:Can I import doxygen tags in Enterprise Architect with reverse egineer in c++?我可以在 Enterprise Architect 中使用 c++ 中的逆向工程师导入 doxygen 标签吗?
【发布时间】:2019-03-26 02:13:13
【问题描述】:

我们目前正在评估 Enterprise Architect(12,发布候选)。

我们想使用它的主要原因是使用逆向工程特性,从 c++ 到 UML。

我们的代码库是使用 Doxygen 标签记录的。

现在,EA 的解析器似乎无法识别这些标签。有什么方法可以启用它吗?

编辑: 我要找的东西不是要插入到 UML 中,而是要添加到项目的模型中。例如,由@param 标记为方法定义的信息被插入到方法的“注释”中,而不是插入到参数的“注释”中。生成模型等时不考虑@author doxygen标签。

【问题讨论】:

  • 向我们展示您希望导入 UML 模型的源代码注释中的信息示例
  • IIRC EA 不关心任何 cmets。它只是阅读代码并尝试从中创建类。你认为 Doxygen cmets 在 EA 中会产生什么结果?
  • 您可以发送功能请求(交叉手指,但不要屏住呼吸)。将其发布在 Sparx 的建议论坛上。告诉你的教练、你的朋友并要求他们也这样做......

标签: c++ doxygen enterprise-architect


【解决方案1】:

解析器的一些简单的开箱即用定制可能不可用。

我正在解决导入自定义元数据的类似问题(负责类的开发人员,对应的数据库表或视图映射实体,部署包(.dll)和架构层,人性化的类描述,参考规范文档等。 ) 包含在其他地方,并以非正式注释和正式标记值的形式在 Enterprise Architect 中提供。

在尝试将此元数据信息生成为 doxygen 样式的 cmets 后,我放弃了,因为 doxygen 注释解析器似乎不可自定义,并且为了使非 ascii 字符正确导入,源代码文件必须包含UTF-8 BOM 前导码,它不是非常适合第 3 方传统工具的编码。

我决定采用生成XMI file 的方式,将所有元数据放在tagsdocumentation XML 元素中。

在我解决组合和聚合关系的正确 XMI 编码之前,项目在所有类、属性和关联以及所有元模型属性(作为注释和标记值)都在 600 行以下 C# 中的阶段停止XMI 特定的代码,我们在 EA 中有几千个类可供分析师使用。

在您的情况下,您可以用类似的方式解决需求:

  1. 使用逆向工程将 C++ 代码库导入 Enterprise Architect
  2. 使用 doxygen 的 GENERATE_XML 功能等工具提取 doxygen 评论元数据
  3. 以往返友好的 XMI 格式导出 Enterprise Architect 模型
  4. 编写一个单一用途的工具,该工具将采用 XMI 模型、您的评论元数据并吐出带有您的专有信息注释的新 XMI 模型
  5. 重新导入 XMI 模型,完成。

对于步骤 3...5,可能有更简单的方法,因为 Enterprise Architect 具有 Scripting and Automation 接口,允许使用 Visual BasicC# 等语言读取/修改模型

【讨论】:

  • 好吧,照这个看来是可行的,但是很有挑战性!谢谢!
  • 最近 EA 增加了对定义您自己的语言语法的支持。这可能对这里有帮助。此外,我建议采用 xmojmr 的建议并直接使用 API,而不是通过 xmi 导出/导入。这样会更快,而且更不容易出错。
  • @GeertBellekens “最近 EA 增加了对定义你自己的语言语法的支持” - 你能链接更多信息吗?
  • @xmojmr 看这里:Grammar Framework - EA Help
猜你喜欢
  • 2015-12-12
  • 1970-01-01
  • 2011-05-28
  • 2016-06-10
  • 2017-11-16
  • 2013-12-03
  • 2013-07-22
  • 2013-07-29
  • 2013-10-07
相关资源
最近更新 更多