【问题标题】:UML diagram generator in Visual Studio 2010Visual Studio 2010 中的 UML 图生成器
【发布时间】:2011-04-12 18:22:17
【问题描述】:

我的教授要求我们为下一个作业生成 UML。我们使用 Visual Studio 2010 进行 C++ 编程。我试图研究它,但我想不通,我去了 Architecture-> Windows -> UML Model Explorer 但不知道下一步该去哪里。 UML 生成器是自动创建 UML 还是只提供一堆框来填充有关类和对象的所有信息(手动)?

【问题讨论】:

  • 我认为您只需要在 Project Explorer 中右键单击您的项目,然后单击 View Class Diagram 菜单选项。无论如何,这就是它在 C# 中的工作方式。
  • 显然类图与 UML 图不同。

标签: c++ visual-studio-2010


【解决方案1】:

你的问题让我很困惑,尤其是当你提到使用 Visual Basic 2010 for C++ 时。我假设您的意思是 Visual Studio 2010。

至于做 UML... 你在使用 Visual Studio Ultimate 吗?如果是这样,您可以在 Visual Studio 中创建 一些 UML 图,但不支持从现有代码逆向工程 UML;您必须手动生成 UML 图。

应该做的是在您编码之前生成UML,然后针对您构建的模型进行编码。但随着时间的推移,你希望能学到这一点。

也就是说……所有版本的 Visual Studio 都有一个称为“类图”的功能,它与代码紧密耦合并在代码之间传播数据——修改图表将修改代码,反之亦然。应该强调的是,VS 类图完全是 UML,尽管它看起来很相似。此外,C++ 的类图对我不起作用,所以我不知道如果你使用 C++/CLI 而不是 VB.NET,你会从中获得多少好处。如果您使用的是本机 C++,它将无法正常工作。

最终,您最好的选择是手工完成 UML。如果您有带有 Visual Studio 的 UML 工具,请使用它们,因为它们可用,但它们远非市场上最好的 UML 工具。为此,我推荐Visual Paradigm for UML,它有一个免费版本,可以为图表添加水印,还有一个可用的 Visual Studio 插件。

【讨论】:

  • 很抱歉让您感到困惑,感谢您的建议,我会考虑的。
【解决方案2】:

Visual Studio 2010,无论哪个版本,都可以,我重复一遍,可以从 C++ 代码生成 UML 类图。任何声称这一点的人都没有尝试过:D 见这里:http://social.msdn.microsoft.com/Forums/en-US/vsarch/thread/2c16410e-9986-49b2-a07c-882b1e5e2b3c

Visual Studio 2010(也包括专业版及更高版本)可以生成“类图”,但不能生成 UML 类图。相反,我仍然不知道他们所谓的“类图”的格式。它看起来类似于 UML 图,但实际上并非如此。要获得这些图表,只需右键单击一个项目,选择“显示类图”并等待它出现(这对我也适用于 C++ 项目,但我看到其他人报告说它不适用于他们... 不知道)。这些图表的最大缺点是

  • 您必须手动将与其他类的关联转换为关联箭头(通过右键单击成员变量并选择列表中的第一项)
  • 如果您的 MSVS 解决方案由多个子项目组成,并且生成的图表包含与 不同 子项目中的类有关联的类,则无法进行此转换项目

但是,对于 C#,您应该能够在您的解决方案中生成一个新的建模项目,在其中创建一个空的 UML 类图,然后将任何项目中的任何类拖到该类图中(不过还没有测试过)。 对此的要求是至少拥有 MSVS 2010 Ultimate 版本,并拥有 MSVS Feature Pack 2(据我了解,这包括 Feature Pack (1) 以及可视化和建模工具)。

但是,对于 C++,使用此 Feature Pack 2,您可以创建显示 .cpp 和 .hpp 文件之间的依赖关系箭头的依赖关系图,这也非常有用!见http://msdn.microsoft.com/library/ff657798.aspx

【讨论】:

    【解决方案3】:

    下载 StarUML。恕我直言,这是最好的之一。还有 DIA、ArgoUML 和 Eclipse(带有一些插件)。后两者通常会迫使您完全正确地做到这一点,几乎没有人真正知道该怎么做(包括我自己)。前两个让你画出该死的图。

    【讨论】:

      【解决方案4】:

      在这里回答有点晚,因为我可以在搜索其他内容时解决这个问题。

      正如您已经阅读的那样,Visual Studio 不会创建 UML 图,它会创建类图,乍一看可能看起来很相似,但它们没有对依赖关系或任何其他关系(例如聚合、组合、专业化)进行建模,或泛化。

      如果您想创建实际的 UML 图,请使用上述 StarUML(免费)、Visual Paradigm(社区版,或付费教授),或者如果您是学生并且可以通过 Dreamspark 免费获得(或不管他们现在怎么称呼它),你可以试试微软 Visio,它是一个独立的 UML 编辑器,它可以从图表生成任何 MS Visual Studio 支持的语言的代码。

      对于哪个更好的意见会有所不同,因此最好的建议是自己调查它们,并且最好(如果您打算专业编程)熟悉所有这些。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-01
        • 1970-01-01
        • 2010-12-13
        相关资源
        最近更新 更多