---
title: 使用 UModel 进行 C++ 的 UML建模
date: 2019-08-21
categories:
  - software
  - tools
tags:
  - c
  - software-modeling
  - uml
  - uml-tool
  - umodel
description: Altova UModel 是一款强大的 UML 建模工具，它能够与市场上最先进的同类产品竞争，并且提供全面的代码工程支持，可以直接从 UML 图生成 C++ 代码。
---
Status: #blog

Tags:  #c #software-modeling #uml #uml-tool #umodel

Categories: [uml](/blog/zh/category/uml.md) | [development](/blog/zh/category/development.md)
# 使用 UModel 进行 C++ 的 UML建模

C++是目前最强大和最高效的编程语言之一，是高性能计算、服务器应用程序以及需要最强大语言特性的复杂架构的首选。统一建模语言™ (UML®) 是设计、可视化和记录使用C++和其他源代码语言实现的软件系统模型的标准。

Altova UModel 与市场上最优秀的同类产品竞争 [高级 UML 建模](https://www.altova.com/zh/umodel) UModel是一款为C++提供完整代码工程支持的UML建模工具。它包含以下功能：从UML图生成C++代码，将C++代码反向工程生成UML模型，以及双向工程，用于更新C++代码和UML模型，实现两者之间的同步。

模型转换技术甚至允许开发者将现有的、为Java、C#或Visual Basic设计的UML模型转换为支持C++的版本。

[![](/blog/images/BLOG_State_machine02.png)](BLOG_State_machine02.png)

<!--more-->

开发人员可以通过以下几种方式开始在 UModel 中使用 UML 进行 C++ 开发：

- 创建一个新的 UModel 项目，并选择 C++ 作为目标代码语言
- 从现有的 C++ 项目导入代码，以创建新的 UML 模型
- 将现有的 UML 图转换为 C++ 代码
- 打开 UModel 附带的一个示例 C++ 项目

[UModel](https://www.altova.com/zh/umodel) 包含一个示例的家庭银行项目，该项目使用 Java 或 C# 实现，并以业务流程模型的形式呈现，甚至还有一个 SysML 版本。我们将 C# 版本转换为 C++ 版本，并将结果保存为一个新的项目。

该银行项目包含一系列用于不同银行账户类型的类，如以下转换后的项目中的类图所示：

[![C++ 原始类图的 UML 建模](/blog/images/UML-class-diagram.png)](UML-class-diagram.png)

开发人员可能会被分配任务，扩展银行应用程序以支持证券账户。我们可以轻松地将新的类直接添加到现有的图表中，如图所示。（为了节省空间，部分现有类已被折叠。）

[![在 UModel 项目中，对 C++ 类的 UML 模型进行修订，并更新类图](/blog/images/revised-UML-class-diagram.png)](revised-UML-class-diagram.png)

在上面的类图中，UModel 图标以图形方式表示属性和操作的可见性特征，这些特征可以是受保护的、公共的或私有的。如果您愿意，您也可以使用传统的 UML 符号，例如 #、+ 等。

[![用于C++的UML建模项目中的传统风格UML类](/blog/images/traditional-style-UML-class.png)](traditional-style-UML-class.png)

我们现在唯一剩下的任务是在属性窗口中为新的 "BrokerageAccount" 类指定一个代码文件名

代码生成功能从主项目菜单启动，会弹出一个对话框，用于设置一些偏好设置。

[![UML建模中，用于C++项目的UModel代码生成选项](/blog/images/generate-code.png)](generate-code.png)

UModel 可以根据 UML 图生成 C++ 代码，该代码与 C++ 98、C++ 11 或 C++ 14 版本兼容，并且可以为 Visual Studio 6.0 到 Visual Studio 2017 的各个版本创建项目。消息窗口会显示代码生成是否成功。以下是我们的新类对应的 C++ 源代码的片段：

[![UModel 能够为 C++ 语言生成 UML 模型对应的源代码](/blog/images/code-file.png)](code-file.png)

UModel的帮助文档包含了详细的说明，指导您如何设置自己的UML C++项目。或者，如果您想直接开始一个更复杂的示例，其中还包含一个用于C++的、基于实际应用场景的暖通空调状态机UML模型。

[![使用UML建模，以C++示例项目为例，展示UModel状态机图](/blog/images/UModel-aircondition.png)](UModel-aircondition.png)

UModel是一款经济实用的UML工具，它将丰富的可视化界面与高端功能相结合，包括数据库建模、XML建模、XMI模型交换、业务流程建模支持、文档生成、团队协作支持等，为开发团队提供一款强大的工具，以应对当今项目的各种挑战。

[下载免费试用版，立即开始您的C++ UML项目](https://www.altova.com/zh/umodel/download)
