展开章节目录
理论 02

动态行为建模

对比时序图、协作图、活动图和状态图,理解对象交互、业务流程与状态迁移。

内容整理自 new_uml/UML.md

六、时序图 / 顺序图

1. 时序图概念

时序图,也叫顺序图,用来展示对象之间的交互消息在时间轴上的先后顺序,常用于对系统行为建模。

2. 时序图表达的信息

时序图主要展示三方面信息:

  1. 消息编号体现消息发生的先后顺序。

  2. 生命线长短表示对象的生存时间。

  3. 控制焦点长短表示对象执行动作所花费的时间。

3. 时序图组成元素

  • 对象

  • 生命线

  • 控制焦点

  • 消息

4. 重要概念

对象:位于图顶部,表示交互开始时对象已经存在;如果不在顶部,说明对象是在交互过程中创建的。

生命线:从对象底部向下延伸的虚线,表示对象存在的时间。

控制焦点:生命线上的矩形,表示对象正在执行任务并处于激活状态。

消息:对象之间传递的信息,用带箭头的线表示。

5. 消息类型

常见消息有四种:

  • 同步消息

  • 异步消息

  • 返回消息

  • 简单消息

根据时序图创建协作图:在 Rational Rose 中按 F5


七、协作图

协作图也用于描述对象之间的交互,但它更强调对象之间的结构关系和消息传递关系。

复习时可以这样记:

  • 时序图强调“时间顺序”

  • 协作图强调“对象协作关系”

  • 在 Rational Rose 中,可以根据时序图按 F5 生成协作图。


八、活动图

1. 活动图概念

活动图描述事物从一种活动转换到另一种活动的整个过程。

主要元素:

  • 活动节点

  • 转换

  • 流程控制元素

流程控制元素包括:

  • 分支

  • 并发

  • 循环

2. 活动图和流程图的区别

活动图和普通流程图的区别:

  1. 活动图有分叉和结合,可以表示并发操作。

  2. 活动图有泳道,是面向对象的图。

复习时可以记成:

流程图偏过程,活动图偏 UML,能表示并发和对象责任。


九、状态图 / 状态机图

1. 状态图概念

状态机图描述事物从一种状态迁移到另一种状态的状态序列。
常用于对系统的动态行为进行建模。

一个对象在生命周期内,在事件作用下,从一种状态迁移到另一种状态,构成的完整系列图就是状态机图。

2. 状态图描述的内容

状态图说明:

  • 对象有哪些状态

  • 什么事件会触发状态变化

  • 状态变化时是否有条件

  • 状态变化时执行什么动作

3. 状态转换的元素

一个完整的状态变化包括:

  • 源状态

  • 目标状态

  • 触发事件

  • 监护条件,也叫守卫条件

  • 动作

4. 如何描述一个状态

一个状态可以包括:

  • 名称

  • 入口动作 entry

  • 出口动作 exit

  • 内部转换

  • 嵌套状态

5. 状态图常见写法

例如:

Withdrawal(m) [m <= balance] / balance = balance - m

含义是:

  • Withdrawal(m):触发事件

  • [m <= balance]:守卫条件

  • / balance = balance - m:执行动作

复习状态图时重点看:事件、条件、动作、源状态、目标状态



课后题补充:顺序图、协作图与活动图

第七章:顺序图与协作图

选择题答案

  1. 顺序图的主要元素:ABCD,对象、生命线、控制焦点、消息
  2. 强调消息时间顺序的交互图:A,顺序图
  3. 顺序图中的消息编号:BC,多层次编号、嵌套编号
  4. 返回消息的符号:B,虚线箭头

建模题:顺序图与协作图的区别

以“用户登录电商系统”为例:

  • 顺序图强调时间顺序,按“输入账号 → 输入密码 → 系统调用数据库验证 → 数据库返回结果 → 系统反馈用户”的时间流,用纵向生命线和消息箭头表示交互先后。
  • 协作图强调对象之间的结构关系,用用户、系统、数据库等对象节点和关联线表示连接,再通过消息编号标注交互逻辑,更突出拓扑结构。

第八章:活动图

  1. 组成活动图的要素:ABD,泳道、动作状态、活动状态
  2. 活动图的开始状态使用:C,黑色实心圆
  3. 描述过程或操作工作步骤的是:B,活动图
  4. 把活动状态分组,每组表示负责该组活动的类、人或部门,这项技术是:A,泳道