状态图和活动图

  • 状态图
  • 状态的概念和分类
  • 状态图组成
  • 活动图
  • 活动图的图形标准
  • 活动图的组成
  • 活动图和状态图的区别
  • 状态图中“动作”和活动图中的“动作状态”区别
  • 状态图的作用
  • 活动图的作用
  • 总结


状态图

我们先简单的理解一下,什么是状态机?

在日常生活中,状态机,我们理解为记录下给定时刻状态的机器,根据不同的输入对每个给定的变化而改变其状态或引发一个动作。

在UML中,状态机由对象的各个状态和连接这些状态的转换组成,是展示状态与状态转换的图。

状态图本质上就是一个状态机或是状态机的特殊情况。由表示状态的节点和表示状态之间转换的带箭头的直线组成。

状态的概念和分类

java 流程状态机 设计 状态机 uml_状态图

状态图组成

java 流程状态机 设计 状态机 uml_java 流程状态机 设计_02

活动图

活动图是另一个种动态视图,描述动作和动作导致对象状态改变的结果,而不用考虑引发状态改变的事件。

活动图的图形标准
  • 起点

【作用】描述活动图的开始状态

【表示方式】黑的实心圆

java 流程状态机 设计 状态机 uml_状态机_03

  • 终止点

【作用】描述活动图的终止状态

【表示方式】实心圆的空心圆

java 流程状态机 设计 状态机 uml_java 流程状态机 设计_04

  • 活动

【作用】可以是手动也可以自动的执行任务

【表示方式】圆角矩形

java 流程状态机 设计 状态机 uml_状态机_05

  • 状态

【作用】活动的所处状态

【表示方式】椭圆矩形

java 流程状态机 设计 状态机 uml_活动图_06

  • 转换

【作用】描述一个活动转向另一个活动

【表示方式】带箭头的实线段,指向转向的活动

java 流程状态机 设计 状态机 uml_活动图_07

活动图的组成

java 流程状态机 设计 状态机 uml_状态机_08

活动图和状态图的区别

状态图中“动作”和活动图中的“动作状态”区别

相同点:

  1. 都是原子性的,动作要么不执行,要么就完全执行,不能中断
  2. 执行时间都极短

不同点:

动作状态和状态图中的状态不同,不能有入口动作和出口动作,也不能有内部转移

状态图的作用
  1. 清晰描述状态之间的转换顺序,通过转换顺序可以清晰看出事件的执行顺序
  2. 清晰的事件顺序有利于程序员在开发程序时避免出现事件错序的情况
  3. 清晰地描述了状态转换时所必须触发德尔事件、监护条件和动作等影响转换的因素,有利于程序员汇总非法事件的进入
  4. 通过判断更好地描述工作流因为不同的条件发生的分支
活动图的作用

java 流程状态机 设计 状态机 uml_状态图_09

总结
  1. 目的不同
    活动图的主要目的是描述动作及对象的改变结果,而状态图则是描述对象、子系统、系统在生命周期中的各种行为
  2. 活动图中的状态转换不需要任何触发事件,状态图则需要触发事件
  3. 活动图种的动作可以放在泳道中,状态图不可以