动态行为建模
对比时序图、协作图、活动图和状态图,理解对象交互、业务流程与状态迁移。
内容整理自 new_uml/UML.md。
六、时序图 / 顺序图
1. 时序图概念
时序图,也叫顺序图,用来展示对象之间的交互消息在时间轴上的先后顺序,常用于对系统行为建模。
2. 时序图表达的信息
时序图主要展示三方面信息:
消息编号体现消息发生的先后顺序。
生命线长短表示对象的生存时间。
控制焦点长短表示对象执行动作所花费的时间。
3. 时序图组成元素
对象
生命线
控制焦点
消息
4. 重要概念
对象:位于图顶部,表示交互开始时对象已经存在;如果不在顶部,说明对象是在交互过程中创建的。
生命线:从对象底部向下延伸的虚线,表示对象存在的时间。
控制焦点:生命线上的矩形,表示对象正在执行任务并处于激活状态。
消息:对象之间传递的信息,用带箭头的线表示。
5. 消息类型
常见消息有四种:
同步消息
异步消息
返回消息
简单消息
根据时序图创建协作图:在 Rational Rose 中按 F5。
七、协作图
协作图也用于描述对象之间的交互,但它更强调对象之间的结构关系和消息传递关系。
复习时可以这样记:
时序图强调“时间顺序”
协作图强调“对象协作关系”
在 Rational Rose 中,可以根据时序图按 F5 生成协作图。
八、活动图
1. 活动图概念
活动图描述事物从一种活动转换到另一种活动的整个过程。
主要元素:
活动节点
转换
流程控制元素
流程控制元素包括:
分支
并发
循环
2. 活动图和流程图的区别
活动图和普通流程图的区别:
活动图有分叉和结合,可以表示并发操作。
活动图有泳道,是面向对象的图。
复习时可以记成:
流程图偏过程,活动图偏 UML,能表示并发和对象责任。
九、状态图 / 状态机图
1. 状态图概念
状态机图描述事物从一种状态迁移到另一种状态的状态序列。
常用于对系统的动态行为进行建模。
一个对象在生命周期内,在事件作用下,从一种状态迁移到另一种状态,构成的完整系列图就是状态机图。
2. 状态图描述的内容
状态图说明:
对象有哪些状态
什么事件会触发状态变化
状态变化时是否有条件
状态变化时执行什么动作
3. 状态转换的元素
一个完整的状态变化包括:
源状态
目标状态
触发事件
监护条件,也叫守卫条件
动作
4. 如何描述一个状态
一个状态可以包括:
名称
入口动作 entry
出口动作 exit
内部转换
嵌套状态
5. 状态图常见写法
例如:
Withdrawal(m) [m <= balance] / balance = balance - m
含义是:
Withdrawal(m):触发事件[m <= balance]:守卫条件/ balance = balance - m:执行动作
复习状态图时重点看:事件、条件、动作、源状态、目标状态。
课后题补充:顺序图、协作图与活动图
第七章:顺序图与协作图
选择题答案
- 顺序图的主要元素:ABCD,对象、生命线、控制焦点、消息。
- 强调消息时间顺序的交互图:A,顺序图。
- 顺序图中的消息编号:BC,多层次编号、嵌套编号。
- 返回消息的符号:B,虚线箭头。
建模题:顺序图与协作图的区别
以“用户登录电商系统”为例:
- 顺序图强调时间顺序,按“输入账号 → 输入密码 → 系统调用数据库验证 → 数据库返回结果 → 系统反馈用户”的时间流,用纵向生命线和消息箭头表示交互先后。
- 协作图强调对象之间的结构关系,用用户、系统、数据库等对象节点和关联线表示连接,再通过消息编号标注交互逻辑,更突出拓扑结构。
第八章:活动图
- 组成活动图的要素:ABD,泳道、动作状态、活动状态。
- 活动图的开始状态使用:C,黑色实心圆。
- 描述过程或操作工作步骤的是:B,活动图。
- 把活动状态分组,每组表示负责该组活动的类、人或部门,这项技术是:A,泳道。