如何从C代码生成UML序列图?



我查看了一个实用程序trace2uml,它解析源代码并查找Trace2UML语法来描述序列图并创建序列图。我很想知道是否可以通过单独解析 C 源代码来创建序列图?

我认为原则上这根本不可能。源代码本质上是静态的。序列图描绘了动态行为。动态行为不在源代码中,因此无法提取。

有一些工具可以从 C 源双向制作调用图,例如cflow.也许调用图可以提供一些对某些源代码内部工作的见解。

我不是UML图的忠实鉴赏家,但我知道从代码生成图,例如:顺序图或类图适用于面向对象的语言,如Java,C ++,C#和许多其他语言。所以如果你问我,不可能从用 C 编写的代码生成序列图。

如果你有一些用某种对象语言编写的代码,则可以生成序列图,特别是在视觉范式(用于创建UML图的工具)中。

无论是C (not-/) 还是 C++ (OO) 都没有关系。这个问题被称为停止问题:参见维基百科。出于这个简单的原因,您无法从纯源创建SD。无论如何,SD 旨在强调执行代码的某个阶段,而不是所有路径。试想一下,这样的SD蜘蛛网看起来会多么荒谬。简直没用。

你试过植物吗?它与doxygen配合得很好,我在公司模板和语法中使用它真的很容易,但你必须自己编写调用序列。页面中有很多例子,如果你在Linux上工作,你可以使用你的原生打包工具来安装它,这同样适用于doxygen(例如sudo apt-get plantuml)。否则,如果您使用的是Windows,您也可以使用官方页面中的安装程序。

您必须进行一些配置,但这非常简单,我将为您提供每个工具的链接。

下载页面:

  • http://plantuml.com/download
  • http://www.doxygen.nl/download.html

普兰图姆示例:http://plantuml.com/sequence-diagram

你可以在每个页面中找到文档,对于 plantmul,你使用 java 可执行文件 (.jar),那么你不必安装任何东西,你只需要配置 doxygen 来查找可执行文件,你可以在 doxygen 文档页面中找到如何:

http://www.doxygen.nl/manual/index.html

如果您想在不阅读文档的情况下对其进行配置,您还可以观看此视频:https://www.youtube.com/watch?v=LZ5E4vEhsKs

我希望这有帮助,干杯。

最新更新