我查看了一个实用程序trace2uml,它解析源代码并查找Trace2UML语法来描述序列图并创建序列图。我有兴趣知道是否可以通过单独解析C源代码来创建序列图?
答案 0 :(得分:2)
我不是UML图的大鉴赏家,但我知道从代码生成图表如:顺序图或类图适用于面向对象的语言,如Java,c ++,c#和许多其他语言。所以,如果你问我,不可能从C中编写的代码生成序列图。
如果您使用某种被反对的语言编写了一些代码,则可以生成序列图,尤其是在视觉范例(用于创建UML图的工具)中。
答案 1 :(得分:2)
无论是C(非 - )还是C ++(OO)都无关紧要。该问题称为暂停问题:请参阅wikipedia。由于这个简单的原因,您无法从纯源创建SD。无论如何,SD意味着强调执行代码的某个阶段,而不是所有路径。想象一下这样一个SD看起来像蜘蛛网的多么荒谬。它只是没用。
答案 2 :(得分:0)
根据原则,我根本不认为这是可能的。源代码本质上是静态的。序列图描绘了动态行为。动态行为不在源代码中,因此无法提取。
有一些工具可以在两个方向上从C源创建调用图,例如cflow
。也许一个调用图可以提供一些源代码的内部工作的一些见解。
答案 3 :(得分:0)
您是否尝试过使用plantuml?它与doxygen搭配使用非常好,我在公司模板中使用它,并且语法非常简单,但是您必须自己编写调用序列。该页面上有很多示例,如果您使用的是Linux,则可以使用本机打包工具进行安装,doxygen也是如此(例如sudo apt-get plantuml)。否则,如果您使用Windows,则也可以从官方页面使用安装程序。
您必须进行一些配置,但这非常简单,我将为您提供每个工具的链接。
下载页面:
Plantuml示例:http://plantuml.com/sequence-diagram
您可以在每个页面中找到文档,对于plantmul,您使用Java可执行文件(.jar),那么您无需安装任何文件,只需配置doxygen即可找到可执行文件,即可在doxygen中找到方法文档页面:
http://www.doxygen.nl/manual/index.html
如果您想在不阅读文档的情况下进行配置,您也可以观看以下视频:https://www.youtube.com/watch?v=LZ5E4vEhsKs
我希望这会有所帮助,加油。