如何从Visual Studio 2012中编写的C#代码生成UML图表到Visio 2010?

时间:2012-11-12 16:49:49

标签: c# visual-studio-2012 uml reverse-engineering visio

我正在尝试从Visual Studio 2012中编写的C#代码中找到一种生成UML图(序列图,类图等)的方法。

我在http://office.microsoft.com/en-us/visio-help/about-reverse-engineering-code-to-the-uml-HP001208803.aspx上看到了一个链接,我可以将我的Visual Studio项目带入Visio。

但它的第一部分是“在Visual Studio环境中,逆向工程是从项目菜单上的命令激活的。”对我不起作用,因为我在项目菜单下找不到逆向工程选项。

如何从Visual Studio 2012中编写的C#代码生成UML图表到Visio 2010?

5 个答案:

答案 0 :(得分:12)

Microsoft不再将Visio视为软件工程工具。有一个称为“Visio for Enterprise Architects”的版本,它与Visual Studio集成。它可以与Visual Studio的最高版本一起使用。

我相信最后一次支持Visual Studio 2005,尽管可能是2003年。

Visual Studio Ultimate现在有自己的内置UML功能,不依赖于Visio。

答案 1 :(得分:5)

从过去爆炸。已经有一段时间了,因为我已经将任何东西反转为UML,所以我的知识可能已经过时了。 无论如何,据我所知,使用Visio的代码逆向工程是一个Visio功能而不是Visual Studio功能,认为某些版本的Visual Studio有自己的建模功能。

为了使用Visio逆向工程,您需要确保安装了Visio UML插件(它应该在专业版和以上版本的Visio中可用,但默认情况下可能不会安装。)

对于旧版本的Visio和Visual Studio,

Here是一个相当古老的过程。我不认为这个过程发生了太大的变化(尽管显然支持的语言发生了变化。)

在任何情况下我都不喜欢Visio for UML(事实上,我从不喜欢Visio。)我更喜欢Sparx System's Enterprise Architect进行建模,当我在.Net 2.0上使用它时,它们的逆向工程非常好。我不知道他们当前版本如何应对新功能。我也更喜欢他们的“从头开始”建模环境。

最后请记住,UML应该是一种建模而不是一种编程语言。即它旨在传达高级设计,以便更容易理解解决方案的整体架构;或者再次模拟关键的动态交互,因此可以更容易地理解已建模或提出的建模解决方案。

逆向工程UML图通常有太多的信息使它们无用,而且在任何情况下都难以将特定语言的精确语义转换为UML。您可能最好从头开始创建图表。除了部署和包图之外,应该理解UML图表代表高级概述或特定的高级动态交互表示,而不是开发的表示。

答案 2 :(得分:0)

这取决于您使用的产品版本。我有Visual Studio Professional 2012,我没有看到这个选项。如果你看product features,这是有道理的。但是,如果您查看product features of Visual Studio 2012 Ultimate,您将看到UML建模和各种其他可视化工具。

答案 3 :(得分:0)

Visual Studio 2010非终极版本允许使用Feature Pack生成此UML,而Visual Studio 2012 Ultimate尚未针对Visual Studio 2012开发。正如多米尼克所说(他打败了我),{{3}}应该允许这样做。

答案 4 :(得分:0)

当您只选择一个成员(方法名称)时,Visual Studio Ultimate 2012可以为C#代码生成非常好的序列图;如果我在VB代码中做同样的事情,它会不断地在我的位置失败。

这与Sparx的Enterprise Architect形成鲜明对比,Sparx是用于UML和其他模型AFAIK的最先进的CASE工具。