状态图是做什么的?
描述了一个具体对象的可能状态以及它们之间的转换。展现一个对象拥有的状态,还可以说明时间(如消息的接收、错误、条件变更等)如何随着时间的推移来影响这些状态。
先上一张导图看看状态图都有哪些内容吧!
什么是活动图?
描述一个过程或操作的工作步骤,描述系统的动态行为。与流程图很类似,但他们也有不同点。
活动图和流程图的不同点:
1.流程图着重描述处理过程,主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程
1.活动图能够表示并发活动的情形,而流程图不能
2.活动图是面向对象的,而流程图是面向过程的
比方说现在要登录机房收费系统:步骤分为输入用户名和密码,系统判断输入的密码是否正确,正确的话走哪一个活动,不正确的话又走哪一个活动。而活动图是把这些步骤用图形的方式表现出来了
活动图的作用有哪些?
- 描述一个操作的执行过程中所完成的工作或者动作
- 描述对象内部的工作
- 显示如何执行一组相关的动作,以及这些动作如何影响周围对象
- 描述用例的执行
- 处理多线程应用
一般什么情况下使用活动图?
- 描述一个并行的过程或者行为
- 描述一个算法
- 描述一个跨越多个用例的活动
活动图包含了哪些图标?
活动(ActionState) |
动作的执行 |
|
起点(InitialState) |
活动图的开始 |
|
终点(FinalState) |
活动图的终点 |
|
对象流(ObjectFlowState) |
活动之间的交换的信息 |
发送信号(SignalSending) |
活动过程中发送时间,出发另一活动流程 |
|
接受信号(SignalReceipt) |
活动过程中接收事件,接收到信号的活动流程开始执行 |
|
泳道(SWimLane) |
活动的负责者 |
活动的关系表示
迁移(transition) |
活动的完成与新活动的开始 |
|
分支(junction point) |
根据条件,控制执行方向 |
|
分叉(fork) |
以下的活动可并发执行 |
|
结合(join) |
以上的并发活动再此结合 |
我的理解:
- 活动图中的“分叉与合并”很像我们平常生活中的两条路径,它描述了软件对象在不同的判断结果下所执行的不同动作。一条是“Yes”的路,一条是“No”的路,就看你的操作是要执行哪条路径,但最后终是会走到终点的
- “分叉和汇合”像我们学数据库中“and”的关系,当进入考场后,老师检查证件,学生对号入座,他们同时在做一件事情
机房中“用户登录”的应用
状态图
活动图
第一次画,不足之处欢迎大佬们斧正哦~🙂