软件工程-UML-活动图

本文梳理了软件概要设计的核心任务,重点讲解UML活动图的要素、作用、绘制要点及应用场景,帮你快速掌握流程建模与系统结构设计的关键知识。

📌 概要设计与活动图核心知识总结


一、概要设计的核心任务

概要设计的核心目标是将需求分析阶段的用例图,转化为软件结构数据结构

  • 软件结构设计:完成模块划分、建立模块层次与调用关系、定义模块接口及人机界面,同时描述用户操作序列(通过活动图实现)。
  • 数据结构设计:描述数据特征、确定数据结构特性,并完成数据库设计(通过E-R图实现)。

二、活动图的核心功能

活动图是UML中用于描述系统动态行为的图,主要特点包括:

  • ✅ 描述系统的动态行为,包含活动状态(ActionState),即业务用例的执行步骤或操作。
  • ✅ 适合描述无外部事件触发的系统内部逻辑流程(若存在外部事件,状态图更适用)。
  • ✅ 表现形式类似传统流程图,可用于业务建模(详述业务用例执行过程)和设计建模(描述操作流程)。

三、活动图的基本要素

要素 符号/形态 作用说明
动作(Activity) 圆角矩形 代表原子操作,如发送消息、数学运算、对象创建等(例:x=5
动作流(转移) 带箭头的直线 表示动作间的转换,箭头指向转入方向(例:下订单 → 生成订单)
开始/终止 实心圆/环形圆 标记业务流程的起点与终点
分叉与汇合 粗黑横线 分叉:将动作流拆分为多个并发分支;汇合:同步并发分支,共同完成事务
判断节点(分支) 菱形 进行逻辑判断,生成多个控制流,需在箭头上附加控制条件
泳道 垂直/水平分区 划分不同角色/对象的职责边界(例:学生、监考老师)

四、活动图示例解析

  1. 日常起床流程

    • 核心逻辑:看表 → 判断是否到起床时间 → 起床后并发执行洗脸、刷牙、热牛奶 → 汇合后吃早餐 → 出门。
    • 体现了判断节点分叉/汇合的应用。
         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[出门]
  2. 学生进场考试流程

    • 泳道划分:学生侧(进入考场、对号入座、开始答题)与监考老师侧(检查证件、发考卷)。
    • 体现了泳道并发流程的建模,清晰区分不同角色的操作。
            graph TD
         subgraph 学生
             A[进入考场]
             B[对号入座]
             C[等待试卷]
             D[开始答题]
         end
         subgraph 监考老师
             E[检查证件]
             F[发放试卷]
         end
         A --> B
         B --> E
         E --> F
         F --> C
         C --> D

五、关键注意事项

  • ⚠️ 活动图侧重流程与并发,状态图侧重对象状态变化,需根据场景选择。
  • ⚠️ 分叉与汇合必须成对使用,确保并发分支的同步。
  • ⚠️ 判断节点的每条导出流都必须附加明确的控制条件(如 x>0x=0)。