软件工程-UML-活动图
本文梳理了软件概要设计的核心任务,重点讲解UML活动图的要素、作用、绘制要点及应用场景,帮你快速掌握流程建模与系统结构设计的关键知识。
📌 概要设计与活动图核心知识总结
一、概要设计的核心任务
概要设计的核心目标是将需求分析阶段的用例图,转化为软件结构与数据结构:
- 软件结构设计:完成模块划分、建立模块层次与调用关系、定义模块接口及人机界面,同时描述用户操作序列(通过活动图实现)。
- 数据结构设计:描述数据特征、确定数据结构特性,并完成数据库设计(通过E-R图实现)。
二、活动图的核心功能
活动图是UML中用于描述系统动态行为的图,主要特点包括:
- ✅ 描述系统的动态行为,包含活动状态(ActionState),即业务用例的执行步骤或操作。
- ✅ 适合描述无外部事件触发的系统内部逻辑流程(若存在外部事件,状态图更适用)。
- ✅ 表现形式类似传统流程图,可用于业务建模(详述业务用例执行过程)和设计建模(描述操作流程)。
三、活动图的基本要素
| 要素 | 符号/形态 | 作用说明 |
|---|---|---|
| 动作(Activity) | 圆角矩形 | 代表原子操作,如发送消息、数学运算、对象创建等(例:x=5) |
| 动作流(转移) | 带箭头的直线 | 表示动作间的转换,箭头指向转入方向(例:下订单 → 生成订单) |
| 开始/终止 | 实心圆/环形圆 | 标记业务流程的起点与终点 |
| 分叉与汇合 | 粗黑横线 | 分叉:将动作流拆分为多个并发分支;汇合:同步并发分支,共同完成事务 |
| 判断节点(分支) | 菱形 | 进行逻辑判断,生成多个控制流,需在箭头上附加控制条件 |
| 泳道 | 垂直/水平分区 | 划分不同角色/对象的职责边界(例:学生、监考老师) |
四、活动图示例解析
日常起床流程
- 核心逻辑:看表 → 判断是否到起床时间 → 起床后并发执行洗脸、刷牙、热牛奶 → 汇合后吃早餐 → 出门。
- 体现了判断节点与分叉/汇合的应用。
graph TD A[看表] --> B{时间到了吗?} B -- 否 --> C[继续睡觉] B -- 是 --> D[起床] D --> F[同时做] F --> G[洗脸] F --> H[刷牙] F --> I[热牛奶] G --> J[汇合] H --> J I --> J J --> K[吃早餐] K --> L[出门]
学生进场考试流程
- 泳道划分:学生侧(进入考场、对号入座、开始答题)与监考老师侧(检查证件、发考卷)。
- 体现了泳道与并发流程的建模,清晰区分不同角色的操作。
graph TD subgraph 学生 A[进入考场] B[对号入座] C[等待试卷] D[开始答题] end subgraph 监考老师 E[检查证件] F[发放试卷] end A --> B B --> E E --> F F --> C C --> D
五、关键注意事项
- ⚠️ 活动图侧重流程与并发,状态图侧重对象状态变化,需根据场景选择。
- ⚠️ 分叉与汇合必须成对使用,确保并发分支的同步。
- ⚠️ 判断节点的每条导出流都必须附加明确的控制条件(如
x>0、x=0)。