UML——行为图(活动图、状态图)
状态图
状态图是做什么的?
描述了一个具体对象的可能状态以及它们之间的转换。展现一个对象拥有的状态,还可以说明时间(如消息的接收、错误、条件变更等)如何随着时间的推移来影响这些状态。
先上一张导图看看状态图都有哪些内容吧!
状态图的的组成
①、状态(State):表示对象在其生命周期中的某个特定状态,如"待处理"、"进行中"、"已完成"等
- 初始状态(Initial State):表示对象的初始状态,通常用一个空心圆圈表示。
- 终止状态(Final State):表示对象的最终状态,通常用一个空心圆圈内有一个实心圆圈表示。
②、状态转换(Transition):表示对象从一个状态转换到另一个状态的过程,通常用箭头表示。箭头上可以标注触发状态转换的事件或条件。
③、条件(Guard Condition):表示触发状态转换的条件,通常用方括号内的逻辑表达式表示。
④、动作(Action):表示状态转换发生时执行的动作或操作,通常用在状态转换的箭头上。
事件是触发状态转换的外部或内部事件,条件是触发状态转换的条件,动作是状态转换发生时执行的操作
活动图
什么是活动图?
描述一个过程或操作的工作步骤,描述系统的动态行为。与流程图很类似,但他们也有不同点。
活动图和流程图的不同点:
- 流程图着重描述处理过程,主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程
- 活动图能够表示并发活动的情形,而流程图不能
- 活动图是面向对象的,而流程图是面向过程的
比方说现在要登录机房收费系统:步骤分为输入用户名和密码,系统判断输入的密码是否正确,正确的话走哪一个活动,不正确的话又走哪一个活动。而活动图是把这些步骤用图形的方式表现出来了
活动图的作用有哪些?
- 描述一个操作的执行过程中所完成的工作或者动作
- 描述对象内部的工作
- 显示如何执行一组相关的动作,以及这些动作如何影响周围对象
- 描述用例的执行
- 处理多线程应用
一般什么情况下使用活动图?
- 描述一个并行的过程或者行为
- 描述一个算法
- 描述一个跨越多个用例的活动
活动图包含了哪些图标?
活动(ActionState) | 动作的执行 | |
起点(InitialState) | 活动图的开始 | |
终点(FinalState) | 活动图的终点 | |
对象流(ObjectFlowState) | 活动之间的交换的信息 | |
发送信号(SignalSending) | 活动过程中发送时间,出发另一活动流程 | |
接受信号(SignalReceipt) | 活动过程中接收事件,接收到信号的活动流程开始执行 | |
泳道(SWimLane) | 活动的负责者 |
活动的关系表示
迁移(transition) | 活动的完成与新活动的开始 | |
分支(junction point) | 根据条件,控制执行方向 | |
分叉(fork) | 以下的活动可并发执行 | |
结合(join) | 以上的并发活动再此结合 |
我的理解:
- 活动图中的“分叉与合并”很像我们平常生活中的两条路径,它描述了软件对象在不同的判断结果下所执行的不同动作。一条是“Yes”的路,一条是“No”的路,就看你的操作是要执行哪条路径,但最后终是会走到终点的
- “分叉和汇合”像我们学数据库中“and”的关系,当进入考场后,老师检查证件,学生对号入座,他们同时在做一件事情
系统中“用户登录”的应用
状态图
活动图
总结
状态图和活动图是两种不同的图形化表示方法,用于描述系统或对象的行为。状态图关注对象的状态变化和状态之间的转换,而活动图关注对象的行为和活动之间的流程。它们在应用场景和表示形式上有所不同,但都能帮助开发人员可视化和理解系统或对象的行为
更多推荐
所有评论(0)