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