生成代码

您的团队可从您的模型生成代码,从而快速可靠地响应用户要求中的更改。 如果您的团队开发系列相似产品或依赖于常用模式,则生成代码会特别有效。

您的团队可生成程序代码、架构、文档、资源和其他任何类型的项目。 您的团队可使用统一建模语言 (UML) API 来编写询问模型的文本模板。 有关更多信息,请参见如何:从 UML 模型生成文件

在大多数情况下,您的团队将不会从模型中生成其所有代码。 通过使用诸如分部类这样的技术,您的团队可将生成的代码与手写代码分隔开。 绝不要编辑生成的代码, 而是应更新模型,这反过来将更新代码。

代码生成在以下情况下很有用:

  • 产品线。 Fabrikam, Inc. 生成并安装机场的行李搬运系统。 虽然在软件的前一次安装和后一次安装中软件的大部分内容都非常相似,但软件配置取决于所安装的行李搬运设备以及这些部件通过传送带互连的方式。 在合同开始时,Fabrikam 的团队会与机场管理人员讨论相关需求,并使用 UML 活动图制定传送带计划。 根据此模型,团队将生成配置文件、程序代码和用户指南。 他们通过手动对代码进行添加和调整来完成工作。 随着他们从一个接一个的作业中获得经验,他们会扩展生成的材料的范围。

  • 模式。 Contoso,Ltd 的开发人员经常构建网站。 他们使用 UML 类图设计导航架构,并使用类和关联来表示网页和导航链接。 可生成大部分网站代码。 每个网页都对应符合统一模式的多个类和资源文件项。 生成的结果比手写代码更可靠且更灵活。

  • 架构。 Humongous Insurance 在全球范围内具有数千个系统。 这些系统使用不同的数据库、语言和接口。 中央体系结构团队会发布业务概念和过程的内部模型。 关系图可使设计的讨论工作变得很轻松。 本地团队可从这些模型中生成其数据库和 XML 架构的各个部分、C# 声明以及其他元素。

自定义建模语言

在上一示例中,每个公司的模型都具有特殊用途。 虽然可使用活动图来表示行李跟踪,但正式的行李跟踪表示法将会更好。 Visual Studio 支持下列方法:

  • 使用构造型自定义 UML 关系图。 利用构造型,您可以区分不同类型的元素(例如,区分乘客登机手续办理处与 X 光工作站)并记录每个元素中的其他特性值。 有关更多信息,请参见如何:定义用于扩展 UML 的配置文件

  • 设计您自己的特定于域的语言 (DSL)。 如果您在目标域中执行大量工作,则可能值得额外完成一些工作来更有针对性地适应自己的需要。 有关更多信息,请参见可视化和建模 SDK - 域特定语言

您的团队可通过使用 Visual Studio SDK,为这些类型的模型创建菜单命令、验证测试和工具箱项。 您还可生成 Visual Studio 扩展,这些扩展可集成关系图并将这些关系图结合到外部资源(如数据库)。