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.xUML 2.0
图数量9 种14 种(新增交互、组合结构等)
交互建模仅序列 / 协作图完整交互图家族(时序、交互概览)
结构建模类 / 对象 / 包 / 构件 / 部署新增组合结构图、轮廓图
元模型较松散更严谨,分层基础设施 / 上层结构
组件化基础支持强化组件、接口、端口建模
语义部分模糊更精确,支持 OCL 约束