102 lines
3.5 KiB
Markdown
102 lines
3.5 KiB
Markdown
|
|
# UML九图速查手册
|
|||
|
|
|
|||
|
|
> **用途**:考前快速回顾9种UML图的核心特征
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 九种UML图一句话定位
|
|||
|
|
|
|||
|
|
| 想表达什么? | 用什么图? |
|
|||
|
|
|--------------|-----------|
|
|||
|
|
| 系统能干什么? | **用例图** |
|
|||
|
|
| 系统里有哪些类?它们什么关系? | **类图** |
|
|||
|
|
| 某一刻对象的具体情况? | **对象图** |
|
|||
|
|
| 对象之间怎么按时间顺序交互? | **顺序图** |
|
|||
|
|
| 对象之间怎么在空间上协作? | **协作图** |
|
|||
|
|
| 一个对象的状态怎么变化? | **状态图** |
|
|||
|
|
| 一个业务流程步骤怎么走? | **活动图** |
|
|||
|
|
| 代码文件之间怎么依赖? | **组件图** |
|
|||
|
|
| 软件部署在哪些硬件上? | **部署图** |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔗 九图分类
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
UML图
|
|||
|
|
├── 功能模型:用例图
|
|||
|
|
├── 静态模型(结构):类图、对象图、包图
|
|||
|
|
├── 动态模型(行为):顺序图、协作图、状态图、活动图
|
|||
|
|
└── 物理模型(实现):组件图、部署图
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 九图完整对比表
|
|||
|
|
|
|||
|
|
| 图类型 | 分类 | 描述几个对象? | 强调 | 核心元素 |
|
|||
|
|
|--------|------|:---:|------|----------|
|
|||
|
|
| **用例图** | 功能 | 多 | 系统功能全景 | 参与者、用例、系统边界 |
|
|||
|
|
| **类图** | 静态结构 | 多 | 类的定义和关系 | 类、属性、操作、关系 |
|
|||
|
|
| **对象图** | 静态结构 | 多 | 某一时刻的快照 | 对象、属性值、链 |
|
|||
|
|
| **包图** | 静态结构 | 多 | 类的分组组织 | 包、依赖、泛化 |
|
|||
|
|
| **顺序图** | 动态交互 | 多 | 消息的时间顺序 | 对象、生命线、控制焦点、消息 |
|
|||
|
|
| **协作图** | 动态交互 | 多 | 对象的空间位置 | 对象、链、消息(带序号) |
|
|||
|
|
| **状态图** | 动态行为 | **1个** | 状态如何变迁 | 状态、转移、事件 |
|
|||
|
|
| **活动图** | 动态行为 | 多 | 流程步骤 | 活动、分支、泳道、分叉 |
|
|||
|
|
| **组件图** | 物理实现 | 多 | 代码文件组织 | 组件、接口、依赖 |
|
|||
|
|
| **部署图** | 物理实现 | 多 | 硬件拓扑 | 结点、组件、连接 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎨 各图关键语法速查
|
|||
|
|
|
|||
|
|
### 用例图
|
|||
|
|
- 参与者 = 火柴人 🧑
|
|||
|
|
- 用例 = 椭圆 ○
|
|||
|
|
- 系统边界 = 方框 □
|
|||
|
|
- 关系:包含 `<<include>>` (必然)、扩展 `<<extend>>` (条件)
|
|||
|
|
|
|||
|
|
### 类图
|
|||
|
|
- 类 = 三格矩形(类名|属性|操作)
|
|||
|
|
- 可见性:`+`公有 `-`私有 `#`受保护
|
|||
|
|
- 六大关系:关联(实线)、聚合(空心菱形)、组合(实心菱形)、依赖(虚线)、泛化(空心三角)、实现(虚线空心三角)
|
|||
|
|
|
|||
|
|
### 顺序图
|
|||
|
|
- 对象 + 生命线(虚线) + 控制焦点(矩形条) + 消息(箭头)
|
|||
|
|
- 调用消息 = 实心箭头,异步消息 = 开放箭头
|
|||
|
|
- 嵌套:1 → 1.1 → 1.1.1
|
|||
|
|
|
|||
|
|
### 协作图
|
|||
|
|
- 对象 + 链(实线) + 消息(带序号)
|
|||
|
|
- 必须标注消息序号!没有时间轴
|
|||
|
|
|
|||
|
|
### 状态图
|
|||
|
|
- 状态 = 圆角矩形,转移 = 箭头
|
|||
|
|
- 事件/ [条件] / 动作
|
|||
|
|
- 初始状态 ● → 终态 ⊙
|
|||
|
|
|
|||
|
|
### 活动图
|
|||
|
|
- 活动 = 圆角矩形
|
|||
|
|
- 分支 = 菱形 ◇
|
|||
|
|
- 分叉/汇合 = 粗横线
|
|||
|
|
- 泳道 = 纵向分区
|
|||
|
|
|
|||
|
|
### 组件图
|
|||
|
|
- 组件 = 带<<component>>的矩形
|
|||
|
|
- 关系主要是依赖(虚线箭头)
|
|||
|
|
|
|||
|
|
### 部署图
|
|||
|
|
- 结点 = 3D立方体
|
|||
|
|
- 通信路径 = 实线
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📐 MVC版型速查
|
|||
|
|
|
|||
|
|
| 版型 | 图标 | 职责 | 例子 |
|
|||
|
|
|------|------|------|------|
|
|||
|
|
| <<boundary>> 边界类 | 带竖线的圆 | 与外界交互 | 登录页面、购物车页面 |
|
|||
|
|
| <<control>> 控制类 | 带箭头的圆 | 协调逻辑 | 订单处理、支付验证 |
|
|||
|
|
| <<entity>> 实体类 | 带横线的圆 | 持久化数据 | 用户、订单、商品 |
|