UML 2.0
UML 2.0(Unified Modeling Language 2.0)是对象管理组织(OMG)于 2005 年发布的重大升级版本,对 UML 1.x 进行了全面重构,新增多种图、强化交互建模、优化元模型与语义,是现代软件建模的主流基础。
一、UML 2.0 核心定位与改进
- 定位:标准化可视化建模语言,用于软件系统的需求、分析、设计、实现、部署全生命周期建模。
- 关键升级
- 图数量从 9 种增至13/14 种,分类更清晰。
- 新增交互图家族(序列、通信、时序、交互概览),支持复杂交互建模。
- 引入组合结构图,描述类 / 组件内部结构。
- 强化组件化与部署建模,适配分布式 / 微服务系统。
- 元模型更严谨,支持OCL(对象约束语言) 与模型交换。
二、UML 2.0 14 种图分类(结构图 + 行为图)
1. 结构图(静态视角:系统组成与关系)
- 类图(Class Diagram):核心,描述类、属性、方法及类间关系(继承、关联、依赖等)。
- 对象图(Object Diagram):类图实例,展示特定时刻对象及对象间链接。
- 包图(Package Diagram):组织模型元素,管理命名空间与依赖。
- 组合结构图(Composite Structure Diagram):描述类 / 组件内部结构与协作端口。
- 构件图(Component Diagram):建模可复用组件、接口及组件间依赖 / 连接。
- 部署图(Deployment Diagram):描述软件制品在硬件节点上的物理部署。
- 轮廓图(Profile Diagram):扩展 UML 以适配特定领域(如嵌入式、实时系统)。
2. 行为图(动态视角:系统行为与流程)
- 用例图(Use Case Diagram):从用户视角描述系统功能、参与者及用例关系。
- 状态机图(State Machine Diagram):描述对象生命周期内的状态、事件与转换。
- 活动图(Activity Diagram):建模业务流程、算法步骤,支持分支、并发、泳道。
- 交互图(交互行为子集)
- 序列图(Sequence Diagram):按时间顺序展示对象间消息传递。
- 通信图(Communication Diagram):强调对象结构关系与消息路径。
- 时序图(Timing Diagram):展示对象状态随时间的变化与约束。
- 交互概览图(Interaction Overview Diagram):以活动图形式整合多个交互流程。
三、UML 2.0 核心建模元素与关系
1. 基本元素
- 结构元素:类、对象、接口、组件、节点、包、用例。
- 行为元素:操作、方法、状态、活动、消息、事件。
- 分组元素:包、组件。
- 注释元素:注释、约束。
2. 核心关系
- 依赖(Dependency):一个元素变化影响另一个(虚线箭头)。
- 关联(Association):对象间结构关系(实线,可带导航、多重性)。
- 泛化(Generalization):继承关系(子类→父类,空心三角箭头)。
- 实现(Realization):类实现接口 / 用例实现规约(虚线空心三角)。
- 聚合 / 组合(Aggregation/Composition):整体 – 部分关系(组合为强生命周期依赖)。
四、UML 2.0 主要应用场景
- 需求分析:用例图、活动图。
- 系统设计:类图、组合结构图、构件图。
- 交互建模:序列图、通信图。
- 状态建模:状态机图。
- 部署规划:部署图。
- 流程建模:活动图。
五、UML 2.0 vs UML 1.x 关键区别
表格
| 维度 | UML 1.x | UML 2.0 |
| 图数量 | 9 种 | 14 种(新增交互、组合结构等) |
| 交互建模 | 仅序列 / 协作图 | 完整交互图家族(时序、交互概览) |
| 结构建模 | 类 / 对象 / 包 / 构件 / 部署 | 新增组合结构图、轮廓图 |
| 元模型 | 较松散 | 更严谨,分层基础设施 / 上层结构 |
| 组件化 | 基础支持 | 强化组件、接口、端口建模 |
| 语义 | 部分模糊 | 更精确,支持 OCL 约束 |