【问题标题】:Generating a state diagram from legacy C code从遗留 C 代码生成状态图
【发布时间】:2012-10-25 23:03:34
【问题描述】:

我正在研究可视化大量 C 代码,最好是对其状态机进行逆向工程并以图表的形式为我绘制出来。

我研究了 Graphviz 和 Dot,看来我可以从 API 中拼接一些东西来完成这项工作。但老实说,我有点期待这将是一项足够普遍的任务,以至于有人可能已经想出了一个工具来完成这项任务。

有人有这方面的经验吗?您可以推荐的任何解决方案或我忽略的现有工具?

谢谢。

【问题讨论】:

  • 您希望一个工具自动检查代码、找出存在哪些状态以及何时发生转换?对我来说,这听起来是一项艰巨的任务。
  • C 并不完全是一种鼓励状态机的语言。因此,很大一部分代码将具有大量不利于图表的状态。
  • “它的状态机”是什么意思?控制流程图?真的是代码编译成的状态机吗?还是你的代码定义的状态机?

标签: c uml state graphviz dot


【解决方案1】:

您可以尝试 Enterprise Architect,但这确实不是一个好主意,而且无论如何您都需要对结果进行大量手动更改。这或多或少就像依靠自动翻译器以您不知道的语言为您说话。这对于过程类型的代码尤其成问题,就像你在 C 中可能遇到的那样。

【讨论】:

  • 继续......这里的所有回复都让我更清楚地看到状态机的通用可视化是不可能的。我查看了提到的商用工具,它们似乎都没有前景的状态机图生成。最可行的解决方案似乎是在代码上使用预处理或脚本来输出 Dot 代码并使用各种 Graphviz 生成定制图表。状态机代码中足够一致的语法应该允许这样做。希望它是一致的......
猜你喜欢
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
  • 2012-05-16
  • 2010-11-18
  • 2017-07-08
相关资源
最近更新 更多