vault backup: 2026-06-11 00:02:06
This commit is contained in:
@@ -113,6 +113,222 @@
|
||||
| **泳道** | 标明活动由谁负责 | 纵向分区 |
|
||||
| **对象流** | 活动之间传递的对象 | 带箭头的虚线 |
|
||||
|
||||
### 📌 活动图各元素的画法速查
|
||||
|
||||
> 这一节把活动图中**所有画图元素**用字符画列出来,画活动图直接照搬即可。
|
||||
|
||||
#### ① 起点 —— 实心圆 ●
|
||||
|
||||
```
|
||||
●
|
||||
```
|
||||
|
||||
#### ② 终点 —— 圆圈加实心圆 ⊙(也称"牛眼")
|
||||
|
||||
```
|
||||
⊙
|
||||
```
|
||||
|
||||
#### ③ 活动(Activity)—— 圆角矩形
|
||||
|
||||
```
|
||||
╭───────────╮
|
||||
│ 登录验证 │ ← 文字描述这一步做什么
|
||||
╰───────────╯
|
||||
```
|
||||
|
||||
#### ④ 转移箭头 —— 实线 + 开放箭头
|
||||
|
||||
```
|
||||
╭───────────╮
|
||||
│ 活动 A │
|
||||
╰─────┬─────╯
|
||||
│
|
||||
⇨ 实线 + 开放箭头(类似异步消息)
|
||||
│
|
||||
╭─────┴─────╮
|
||||
│ 活动 B │
|
||||
╰───────────╯
|
||||
```
|
||||
|
||||
#### ⑤ 分支(Decision)—— 菱形 ◇ + 监护条件
|
||||
|
||||
```
|
||||
╭───────────╮
|
||||
│ 活动 A │
|
||||
╰─────┬─────╯
|
||||
│
|
||||
◇ ← 菱形(决策点)
|
||||
╱ ╲
|
||||
[是]╱ ╲[否]
|
||||
╱ ╲
|
||||
╭─────╮ ╭─────╮
|
||||
│ 活动B │ │ 活动C │
|
||||
╰─────╯ ╰─────╯
|
||||
╲ ╱
|
||||
╲ ╱
|
||||
◇ ← 合并点(多个分支汇合)
|
||||
│
|
||||
⇨
|
||||
╭─────┴─────╮
|
||||
│ 活动 D │
|
||||
╰───────────╯
|
||||
```
|
||||
|
||||
#### ⑥ 分叉(Fork)/ 汇合(Join)—— 粗横线
|
||||
|
||||
> **分叉**:一条路径分成多条并发执行。
|
||||
> **汇合**:多条并发路径汇合成一条。
|
||||
|
||||
```
|
||||
╭───────────╮
|
||||
│ 活动 A │
|
||||
╰─────┬─────╯
|
||||
│
|
||||
━━━━━━━━━━ ← 粗横线(分叉点)
|
||||
│ │
|
||||
⇨ ⇨
|
||||
╭─────╮ ╭─────╮
|
||||
│活动B│ │活动C│ ← B和C并发执行
|
||||
╰──┬──╯ ╰──┬──╯
|
||||
⇨ ⇨
|
||||
│ │
|
||||
━━━━━━━━━━ ← 粗横线(汇合点)
|
||||
│
|
||||
⇨
|
||||
╭─────┴─────╮
|
||||
│ 活动 D │ ← B和C都完成后才继续
|
||||
╰───────────╯
|
||||
```
|
||||
|
||||
#### ⑦ 泳道(Swimlane)—— 纵向分区
|
||||
|
||||
> 标明每一步由**哪个对象/角色**负责。
|
||||
|
||||
```
|
||||
┌──────────┬──────────┬──────────┐
|
||||
│ 客户 │ 业务员 │ 系统 │
|
||||
│ (泳道1) │ (泳道2) │ (泳道3) │
|
||||
├──────────┼──────────┼──────────┤
|
||||
│ │ │ │
|
||||
│ ● │ │ │ ← 起点
|
||||
│ ⇩ │ │ │
|
||||
│ ╭───╮ │ │ │
|
||||
│ │下单│ │ │ │ ← 客户下单
|
||||
│ ╰─┬─╯ │ │ │
|
||||
│ │ │ │ │
|
||||
│ ⇨ │ │ │
|
||||
│ ╭───╮ │ │
|
||||
│ │接单│ │ │ ← 业务员接单
|
||||
│ ╰─┬─╯ │ │
|
||||
│ │ │ │
|
||||
│ ⇨ │ │
|
||||
│ ╭───╮ │
|
||||
│ │处理│ │ ← 系统处理
|
||||
│ ╰─┬─╯ │
|
||||
│ │ │
|
||||
└──────────┴──────────┴──────────┘
|
||||
⇨
|
||||
⊙ ← 终点
|
||||
```
|
||||
|
||||
#### ⑧ 对象流(Object Flow)—— 虚线 + 箭头
|
||||
|
||||
> 表示活动之间**传递的对象**(数据)。
|
||||
|
||||
```
|
||||
╭───────────╮ ┌──────────┐
|
||||
│ 提交订单 │ ── ─ ─▶│ 订单 │ ← 虚线 + 箭头
|
||||
╰───────────╯ └──────────┘
|
||||
│
|
||||
⇨ (对象流也指向下一个活动)
|
||||
╭─────╮
|
||||
│ 付款 │
|
||||
╰─────╯
|
||||
```
|
||||
|
||||
⚠️ **注意**:对象本身画成**矩形**(不是圆角矩形),虚线箭头表示"这个活动产生/使用了这个对象"。
|
||||
|
||||
#### ⑨ 完整活动图示例(不带泳道)
|
||||
|
||||
```
|
||||
● 起点
|
||||
⇩
|
||||
╭─────────╮
|
||||
│ 开始借书 │
|
||||
╰────┬────╯
|
||||
⇩
|
||||
╭─────────╮
|
||||
│ 扫描图书 │
|
||||
╰────┬────╯
|
||||
⇩
|
||||
╭─────────╮
|
||||
│ 扫描借书证│
|
||||
╰────┬────╯
|
||||
⇩
|
||||
◇ 判断
|
||||
╱ ╲
|
||||
[可借]╱ ╲[不可借]
|
||||
╱ ╲
|
||||
╭─────╮ ╭───────╮
|
||||
│ 借出 │ │ 提示原因│
|
||||
╰──┬──╯ ╰───┬───┯
|
||||
⇩ ⇩ │ (汇合)
|
||||
│ │ │
|
||||
╰───◇ 汇合 ◇────╯
|
||||
⇩
|
||||
╭─────────╮
|
||||
│ 结束 │
|
||||
╰─────────╯
|
||||
⇩
|
||||
⊙ 终点
|
||||
```
|
||||
|
||||
#### ⑩ 状态图元素的画法
|
||||
|
||||
> 状态图和活动图有些元素是**共用的**(起点/终点/转移箭头)。
|
||||
|
||||
**状态**:圆角矩形,**可带分区**(状态名 / 内部活动)
|
||||
|
||||
```
|
||||
╭─────────────────────╮
|
||||
│ 待机中 │ ← 第一行:状态名
|
||||
├─────────────────────┤
|
||||
│ entry / 初始化 │ ← 入口动作
|
||||
│ do / 持续活动 │ ← 持续活动
|
||||
│ exit / 清理 │ ← 出口动作
|
||||
╰─────────────────────╯
|
||||
```
|
||||
|
||||
**转移(Transition)**:
|
||||
|
||||
```
|
||||
╭──────────╮ 事件[条件]/动作 ╭──────────╮
|
||||
│ 状态A │ ─────────────────▶ │ 状态B │
|
||||
╰──────────╯ ╰──────────╯
|
||||
|
||||
格式:事件名[监护条件]/动作
|
||||
例: 借出() / 可借数-1
|
||||
```
|
||||
|
||||
**历史状态 H**:圆圈里写 H(记录离开时的子状态)
|
||||
|
||||
```
|
||||
╭──────────╮
|
||||
│ 复合状态 │
|
||||
╰────┬─────╯
|
||||
│
|
||||
(H) ← 历史状态(圆圈里写H)
|
||||
│
|
||||
╭──────╮ ╱│╲
|
||||
│ 子1 │◀─(H)─▶│ 子2 │ ← 回来时回到H记录的子状态
|
||||
╰──────╯ ╰─────╯
|
||||
```
|
||||
|
||||
🔑 **一句话记忆口诀**:实心圆是起点,牛眼是终点;圆角矩形是活动,菱形是分支;粗横线是分叉汇合,泳道是纵向分区,对象是普通矩形+虚线箭头。
|
||||
|
||||
---
|
||||
|
||||
### 🔑 状态 vs 活动(必考区别!)
|
||||
|
||||
| 对比 | 状态 | 活动 |
|
||||
@@ -187,9 +403,9 @@
|
||||
## 📝 章末自测
|
||||
|
||||
**1. 填空题**
|
||||
- 状态图描述的是( ___ )( ___ )个对象的状态变化
|
||||
- 四种事件类型是:调用事件、( ___ )( ___ )、( ___ )( ___ )、时间事件
|
||||
- 活动图中的菱形表示( ___ )( ___ ),粗横线表示( ___ )( ___ )
|
||||
- 状态图描述的是( ____ )个对象的状态变化
|
||||
- 四种事件类型是:调用事件、( ____ )、( _____ )、时间事件
|
||||
- 活动图中的菱形表示( ____ ),粗横线表示( ___ )
|
||||
|
||||
**2. 判断题**
|
||||
- ( ) 状态图和活动图都可以描述多个对象的交互
|
||||
|
||||
Reference in New Issue
Block a user