我使用 OmniGraffle Pro 工具制作我的 UML 类图,但我想自动从它的图中制作类似 C 的代码。也许有人知道我怎么做这个?
谢谢。
4 回答
我不认为你会处理这个。像 Rational Rose 这样的特殊计算机辅助软件工程工具可以让您做到这一点,但 OmniGraffle 实际上只是一个图形工具。它可以读取各种格式(如 DOT),但仅此而已。
原因之一是适当的 CASE 工具不仅可以绘制图形,还可以对您可以创建的结构表示和强制执行语义约束。如果您的图表要创建真正的、有意义的代码,那么执行很重要。Omnigraffle 并不真正关心您在文本字段中输入的内容,或者您连接的内容。
此外,UML 用于面向对象,如 C++、Java、C#。如果您在 Rational Rose 中创建了一个类,那么很明显它应该在 C++/Java/C# 中创建一个类。
在任何情况下它都不适合 C,因为 OO 不是该语言的特性。你希望它如何代表一个类?需要大量额外的样板模板代码。
我认为这是目前 OmniGraffle 中对 UML 的最佳可用支持,但显然它只是一个模板,没有自动分析。
至于实际的 UML 工具,最全面、性价比最高的是Sparx Systems的Enterprise Architect。
在复杂性(和价格)范围的另一端,但仍然是“真正的”UML 图表工具是WebSequenceDiagrams。这是一个非常棒的工具,可以将非常简洁的描述(纯文本)转换为渲染良好的图表。可用的不同图表类型的数量非常有限,但在这些限制范围内,它所做的实际上是非常令人印象深刻的,至少对我来说是这样。因为它包括交互图(免费,有一些功能限制),所以它提供了我认为 UML 中最有价值的部分,因为理解不熟悉(或以前熟悉)代码体中的交互通常是最重要和最多时间的- 成功使用该代码的消耗方面。
我想这是很多工作,但你肯定可以。我使用脚本从网络设计中生成材料清单。该脚本 100% 采用 AppleScript,在您的情况下,您可以编写一个脚本,将基本结构转储为 XML 或其他格式,然后对其进行处理以生成源代码,您甚至可以使用已经存在的工具。