统一建模语言(UML)图
统一建模语言(UML)是一种标准的、通用的可视化建模语言,用于软件工程中描绘系统的结构设计。它不是一种编程语言,而是一种可视化语言,有助于指定、可视化、构建和记录软件系统的各种构件。

为什么要使用UML?
- 协作:复杂的应用需要多个团队之间清晰的沟通。UML有助于弥合技术人员与非技术人员之间的差距。
- 理解:商人和系统架构师可以通过UML理解系统的关键需求、功能和流程。
- 节省时间:可视化系统的过程和静态结构有助于节省后续的时间和资源。
UML图的类型
UML图大致可分为两类:结构图和行为图。
1. 结构型UML图
1.1. 类图
- 使用类、方法和属性来描绘系统的静态结构。
- 有助于识别不同类或对象之间的关系。
- Visual Paradigm UML工具:类图
1.2. 组合结构图
- 表示类的内部结构及其与其他系统部分的交互点。
- 类似于类图,但更详细地关注各个组成部分。
- Visual Paradigm UML工具:组合结构图
1.3. 对象图
- 描绘类的特定实例及其在某一特定时间点的关系。
- 类似于类图,但展示实际的分类器及其关系。
- Visual Paradigm UML工具:对象图
1.4. 组件图
- 表示系统中物理组件的组织方式。
- 有助于了解计划开发是否涵盖了功能需求。
- Visual Paradigm UML 工具:组件图
1.5. 部署图
- 表示系统硬件及其软件。
- 展示系统架构以及软件构件在分布式目标上的分布情况。
- Visual Paradigm UML 工具:部署图
1.6. 包图
- 展示包及其元素是如何组织的。
- 展示不同包之间的依赖关系以及包的内部组成。
- Visual Paradigm UML 工具:包图
2. 行为型 UML 图
2.1. 状态机图
- 表示类在时间推移和外部刺激变化下的动态行为。
- 使用有限状态转换来建模系统在有限时间点的状态。
- Visual Paradigm UML 工具:状态机图
2.2. 活动图
- 展示系统中的控制流。
- 建模顺序和并发活动,提供工作流的可视化表示。
- Visual Paradigm UML 工具:活动图
2.3. 用例图
- 展示系统或系统某部分的功能。
- 展示功能需求以及系统与外部参与者(角色)的交互。
- Visual Paradigm UML 工具:用例图
2.4. 顺序图
- 以顺序方式描绘对象之间的交互。
- 描述系统中对象如何以及按什么顺序运行。
- Visual Paradigm UML 工具:顺序图
2.5. 通信图
- 显示对象之间交换的有序消息。
- 主要关注对象及其关系。
- Visual Paradigm UML 工具:通信图
2.6. 时序图
- 一种特殊的顺序图,用于描绘对象在时间范围内的行为。
- 显示控制对象状态和行为变化的时间和持续时间约束。
- Visual Paradigm UML 工具:时序图
2.7. 交互概览图
- 对一系列动作进行建模,并将复杂的交互简化为更简单的事件。
- 活动图和顺序图的结合。
- Visual Paradigm UML 工具:交互概览图
UML 图中使用的面向对象概念
- 类: 定义对象的结构和功能。
- 对象: 帮助分解大型系统并实现系统模块化。
- 继承: 子类继承父类的属性。
- 抽象: 强调系统的本质方面,而忽略无关的细节。
- 封装: 通过将数据捆绑在一起,保护其免受外部世界的干扰。
- 多态性: 允许函数或实体以不同形式存在。
UML 图表最佳实践
- 了解你的受众,并根据他们的需求定制图表。
- 保持图表简洁,并专注于系统的特定方面。
- 使用一致的命名规范和标准的 UML 符号。
- 使用适当的符号和标签明确表达关系。
- 平衡敏捷开发与建模,以交付价值并保持灵活性。
创建 UML 图表的步骤
- 确定图表的目的。
- 识别关键元素和关系。
- 选择合适的 UML 图表类型。
- 绘制草图。
- 选择一个 UML 建模工具(例如,Visual Paradigm)).
- 创建图表。
- 定义元素属性。
- 添加注释和说明。
- 验证并审查。
- 优化并迭代。
UML 建模的常见挑战与优势
- 挑战: 耗时、过度文档化、需求变更、协作问题。
- 优势: 标准化、沟通、可视化、文档化、分析与设计。
UML 与敏捷开发
- UML 图表在敏捷开发中作为有效的沟通工具。
- 用例图可以捕捉用户故事并模拟用户交互。
- UML 中的迭代建模支持敏捷开发的迭代方法。
- 平衡敏捷性与建模:适应性建模、团队赋权以及重视可工作的软件。












