13

我试图找到一种方法来从我用 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 中?

4

5 回答 5

11

Microsoft 不再将 Visio 视为软件工程工具。有一个名为“Visio for Enterprise Architects”的版本,它与 Visual Studio 进行了集成。它在最高端的 Visual Studio 版本中可用。

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

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

于 2012-12-04T23:18:53.090 回答
6

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

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

对于旧版本的 Visio 和 Visual Studio,这是一个相当古老的逐步过程。我认为这个过程没有太大变化(尽管显然支持的语言已经改变。)

无论如何,我从不喜欢用于 UML 的 Visio(说实话,我从不喜欢 Visio。)我更喜欢Sparx System 的 Enterprise Architect用于建模,当我在 .Net 2.0 上使用它时,它们的逆向工程非常好。我不知道他们当前的版本如何应对新功能。我也更喜欢他们的“从头开始”建模环境。

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

逆向工程 UML 图通常包含太多信息而无法使用,并且无论如何都难以将特定语言的精确语义转换为 UML。从头开始创建图表可能会更好。除了部署和包图,应该理解 UML 图代表高级概述或特定高级动态交互表示,而不是开发的表示。

于 2012-12-04T23:11:01.243 回答
0

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

于 2012-12-04T22:02:22.623 回答
0

Visual Studio 2010 非终极版本允许通过使用尚未为 Visual Studio 2012 开发的Feature Pack生成此 UML。正如 Dominic 提到的(他打败了我),Visual Studio 2012 Ultimate应该允许这样做。

于 2012-12-04T22:24:33.523 回答
0

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

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

于 2014-02-06T12:54:38.803 回答