从Visio UML图创建C++代码

3

Visio 2010 Beta可以从本地C++项目生成静态UML图表,非常棒。如何解决反向问题:给定Visio中的静态UML图表,如何生成头文件?

或者,也许有免费的架构开发和反向工程工具?

编辑 一般来说,我不需要图表严格符合UML。它们只需要足够清晰,以便在设计应用程序、实现和支持过程中查看并理解类。但它必须具有反向工程和生成代码的功能。

我将尝试在几天内使用提供的替代方案,然后写一个小比较。

  1. ArgoUML 我尝试导入我的现有代码,但失败了。原因是C++支持是预-alpha版。许多语言结构尚未得到支持。从导入时显示的MessageBox:

The C++ reverse engineering module is pre-alpha stage. Its known limits are:

* very few C++ constructs are supported, e.g., enums, unions, templates, etc, aren't;
* no support for non-member variables and functions;
* no integration with the C++ generator => RTE won't work!;
* no operator overload support;
* very immature, certainly this list needs to grow!
4个回答

4
  1. 在Visio中打开图表
  2. 打开Visual Studio,打开C++项目。
  3. 开始输入代码 :)

说真的,Visio是一种视觉工具,以最适合呈现的形式表示其数据。这缺少构建代码模型所需的信息,除非使用一些复杂的视觉和边缘检测算法。

因此,我认为不会有任何这样的工具存在。


1
对我来说,似乎应该有这样的工具,因为它非常方便。微软有VS用于开发和Visio用于显示图表(Visio在VS中有一个工具箱,可以将代码反向工程到UML)。如果我是微软,我会创建一些工具(或为Visio / VS提供功能)来生成图表。到目前为止,我只知道Sysbase Powerdesigner可以做到这些事情(代码<-->UML)。而Visio可以使用数据库图表。但对于C++... :(( - flashnik
+1 flashnik 感谢您的反馈。我很惊讶 Visio 可以用于数据库图表设计。 - Larry Watanabe
我发现企业架构师使用的Visio 2003版本,它与Team Suite VS一起提供。它可以从UML图生成C++和.Net代码。因此问题可能不在Visio中,而是在现代版本的studio中。也许我们可以在Visio 2010和VS 2010都处于beta测试阶段时创建一个功能请求? - flashnik

4

StarUML 是一款免费且更好的工具,可以生成代码。
大多数收费的 UML 工具也可以生成代码。


3

ArgoUML是一个很好的免费工具,可以生成UML类图,然后从图中生成源代码。ArgoUML可以输出多种语言的代码,包括C++。

您可以在以下网址找到它: http://argouml.tigris.org


Tigris..我喜欢Tigris的产品 :) 谢谢,我会试用并再次回复。 - flashnik
我也非常喜欢“设计评论家”,他们评审你编写的UML,从而帮助你编写更好的UML。 :) - Bill W
不,这不适用于C ++。我尝试导入项目但失败了... 希望他们会开发并解决问题。现在它是一款非常早期的产品。 - flashnik
我已经成功地使用ArgoUML从UML生成了C++代码。然而,它还不能从C++代码生成UML。我并不担心这个问题,因为你最初的问题是“如何解决反向问题:给定一个来自Visio的静态UML图,如何生成头文件?”ArgoUML可以很好地处理这个问题。 - Bill W

1

我觉得Sparx Systems的Enterprise Architect非常好用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接