UML图详解

2 minIntermediate2026/6/14

UML类图、时序图、活动图、状态图等核心图类型详解。

1. UML概述

1.1 UML图分

UML图
├── 结构图(静态)
│   ├── 类图
│   ├── 对象图
│   ├── 组件图
│   ├── 部署图
│   ├── 包图
│   └── 组合结构图
└── 行为图(动态)
    ├── 用例图
    ├── 活动图
    ├── 状态机图
    ├── 时序图
    ├── 通信图
    ├── 交互概览图
    └── 时间图

2.

2.1 的表示

┌──────────────────────┐
│      ClassName        │  ← 类名
├──────────────────────┤
│ - privateAttr: Type   │  ← 属性
│ # protectedAttr: Type │
│ + publicAttr: Type    │
├──────────────────────┤
│ + publicMethod(): Ret │  ← 方法
│ - privateMethod()     │
└──────────────────────┘

2.2 间关系

关系符号含义示例
依赖- - →A使用B方法参数
关联——→A知道B成员变量
聚合◇——→A包含B(弱拥有)部门-员工
组合◆——→A拥有B(强拥有)人-心脏
泛化——▷A继承B-父
实现- -▷A实现B接口实现-接口

关系强度:依赖 < 关联 < 聚合 < 组合 < 泛化/实现

2.3 多重性

标记含义
1恰好一个
0..1零或一个
*任意多个
1..*一个或多个
0..*零或多个

3. 时序

3.1 基本元素

参与者A        参与者B        参与者C
  │              │              │
  │── 请求 ────→│              │
  │              │── 调用 ────→│
  │              │              │
  │              │←─ 返回 ────│
  │←─ 响应 ────│              │
  │              │              │
元素说明
参与者交互的对象
生命线虚线,表示对象存在时间
激活条矩形条,表示对象正在执行
同步消息实心箭头,等待返回
异步消息开放箭头,不等待
返回消息虚线箭头
自调用消息指向自身

3.2 组合片段

操作符含义
alt条件分支(if-else)
opt可选执行(if)
loop循环
par并行执行
critical临界区
break中断

4. 活动

4.1 基本元素

  ● (起始节点)


┌─────────┐
│  活动1   │
└────┬────┘

     ◇ (决策)
    / \
   │   │
   ▼   ▼
 活动2  活动3
   │   │
   ▼   ▼
   ◇ (合并)
    \ /


  ◉ (终止节点)
元素说明
起始节点实心圆
终止节点实心圆加外圈
活动节点圆角矩形
决策节点菱形
合并节点菱形
分叉/汇合粗横线(并行)
泳道分区表示职责

4.2 泳道活动

┌──────────┬──────────┬──────────┐
│  客户端   │  服务端   │  数据库   │
│          │          │          │
│  提交订单 │          │          │
│    │     │          │          │
│    ▼     │          │          │
│          │ 验证订单  │          │
│          │    │     │          │
│          │    ▼     │          │
│          │          │ 保存数据  │
│          │          │    │     │
│          │          │    ▼     │
│          │ 返回结果  │          │
│    │     │          │          │
│    ▼     │          │          │
│  显示确认 │          │          │
└──────────┴──────────┴──────────┘

5. 状态机

5.1 基本元素

  ● (初始状态)


┌─────────┐  下单  ┌─────────┐  支付  ┌─────────┐
│  待下单  │──────→│  待支付  │──────→│  已支付  │
└─────────┘       └─────────┘       └─────────┘
                        │                 │
                    取消订单           发货
                        │                 │
                        ▼                 ▼
                   ┌─────────┐       ┌─────────┐
                   │  已取消  │       │  已发货  │
                   └─────────┘       └─────────┘

                                       确认收货


                                     ┌─────────┐
                                     │  已完成  │
                                     └─────────┘

5.2 状态转换表

当前状态事件动作目标状态
待下单下单创建订单待支付
待支付支付处理支付已支付
待支付取消释放库存已取消
已支付发货更新物流已发货
已发货确认收货完成订单已完成

6. 其他UML图

6.1 组件

展示系统的组件及其依赖关系

┌─────────────┐     ┌─────────────┐
│  Web前端     │────→│  API网关     │
└─────────────┘     └──────┬──────┘

              ┌────────────┼────────────┐
              ▼            ▼            ▼
       ┌──────────┐ ┌──────────┐ ┌──────────┐
       │ 用户服务  │ │ 订单服务  │ │ 支付服务  │
       └──────────┘ └──────────┘ └──────────┘

6.2 部署

展示硬件节点和软件部署

┌──────────────┐     ┌──────────────┐
│  Web服务器    │     │  应用服务器    │
│  ┌────────┐  │     │  ┌────────┐  │
│  │ Nginx  │  │────→│  │ Node.js│  │
│  └────────┘  │     │  └────────┘  │
└──────────────┘     └──────┬───────┘

                     ┌──────┴───────┐
                     │  数据库服务器  │
                     │  ┌────────┐  │
                     │  │ MySQL  │  │
                     │  └────────┘  │
                     └──────────────┘