状态图是做什么的?

描述了一个具体对象的可能状态以及它们之间的转换。展现一个对象拥有的状态,还可以说明时间(如消息的接收、错误、条件变更等)如何随着时间的推移来影响这些状态。

先上一张导图看看状态图都有哪些内容吧!

                                

UML——行为图(活动图、状态图)_活动图

         


什么是活动图?

描述一个过程或操作的工作步骤,描述系统的动态行为。与流程图很类似,但他们也有不同点。

                           

UML——行为图(活动图、状态图)_UML统一建模语言_02

活动图和流程图的不同点:

  1. 流程图着重描述处理过程,主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系

         活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程

  1. 活动图能够表示并发活动的情形,而流程图不能
  2. 活动图是面向对象的,而流程图是面向过程的

比方说现在要登录机房收费系统:步骤分为输入用户名和密码,系统判断输入的密码是否正确,正确的话走哪一个活动,不正确的话又走哪一个活动。而活动图是把这些步骤用图形的方式表现出来了

 

活动图的作用有哪些?

  • 描述一个操作的执行过程中所完成的工作或者动作
  • 描述对象内部的工作
  • 显示如何执行一组相关的动作,以及这些动作如何影响周围对象
  • 描述用例的执行
  • 处理多线程应用

 

一般什么情况下使用活动图?

  1. 描述一个并行的过程或者行为
  2. 描述一个算法
  3. 描述一个跨越多个用例的活动

 

活动图包含了哪些图标?

活动(ActionState)

动作的执行

UML——行为图(活动图、状态图)_活动图_03

起点(InitialState)

活动图的开始

UML——行为图(活动图、状态图)_UML统一建模语言_04

终点(FinalState)

活动图的终点

UML——行为图(活动图、状态图)_流程图_05

对象流(ObjectFlowState)

活动之间的交换的信息

UML——行为图(活动图、状态图)_流程图_06

发送信号(SignalSending)

活动过程中发送时间,出发另一活动流程

UML——行为图(活动图、状态图)_行为图_07

接受信号(SignalReceipt)

活动过程中接收事件,接收到信号的活动流程开始执行

UML——行为图(活动图、状态图)_活动图_08

泳道(SWimLane)

活动的负责者

UML——行为图(活动图、状态图)_活动图_09

活动的关系表示

迁移(transition)

活动的完成与新活动的开始

UML——行为图(活动图、状态图)_UML统一建模语言_10

分支(junction point)

根据条件,控制执行方向

UML——行为图(活动图、状态图)_活动图_11

分叉(fork)

以下的活动可并发执行

UML——行为图(活动图、状态图)_活动图_12

结合(join)

以上的并发活动再此结合

UML——行为图(活动图、状态图)_行为图_13

 

我的理解:

  • 活动图中的“分叉与合并”很像我们平常生活中的两条路径,它描述了软件对象在不同的判断结果下所执行的不同动作。一条是“Yes”的路,一条是“No”的路,就看你的操作是要执行哪条路径,但最后终是会走到终点的

                                    

UML——行为图(活动图、状态图)_行为图_14

 

  •  “分叉和汇合”像我们学数据库中“and”的关系,当进入考场后,老师检查证件,学生对号入座,他们同时在做一件事情

                                                         

UML——行为图(活动图、状态图)_流程图_15


机房中“用户登录”的应用

状态图

UML——行为图(活动图、状态图)_状态图_16

 

活动图

 

            

UML——行为图(活动图、状态图)_状态图_17

第一次画,不足之处欢迎大佬们斧正哦~🙂