状态图是过程的抽象表示。它在计算机科学中常用来对编程语言的过程进行建模,它还可以帮助分析师绘制业务流程。系统的元素通常被称为对象并且可以改变状态。
在整个图(也称为 UML 状态机图)中跟踪统一建模语言 (UML) 中的这些转换。UML 状态图可以捕捉对象、子系统和系统的生命周期,并且可以告知对象可以具有的状态,以及事件如何(如消息的接收、时间的流逝、错误、条件为真等) .) 将随着时间的推移而演变以影响这些状态。
状态图还可以用来描述一个对象的各种状态,状态之间的转换过程,以及触发状态转换的各种事件和条件。
什么是状态转换?
状态图的流程通常由发生的转换决定。某些对象状态可以转换为冗余状态。有时,多个转换会导致相同的状态,这可能会导致混乱。在这种情况下,可以将多个盒子封装在另一个盒子中,这通常称为超状态。如果系统中的事件和转换很复杂,这种格式可以使状态图更易于阅读。
状态图与流程图
人们经常将状态图与流程图混淆。下图是状态图与流程图的对比。左下图中的状态机图执行操作以响应显式事件。相比之下,右下图中的活动图不需要显式事件,而是在活动完成后自动在其图中从一个节点转换到另一个节点。
什么是活动图?
活动图 描述了涉及并发和同步的活动,它们是状态图的一种变体,专注于动作和事件的流动。它们可用于:
- 对人工任务(例如,业务流程)进行建模。
- 描述由用例表示的系统功能。
- 在操作规范中,描述操作的逻辑。
活动图与状态机图
活动图
在 UML 语义中,活动图可以简化为状态机,并带有一些附加符号,即顶点表示活动的执行,而边表示从一个活动集合完成到新活动集合开始的转换。活动图捕获高级活动方面。特别是,可以在活动图中表示并发和协调。
查看活动图,它为事件的动作流建模。这样的活动图侧重于系统内的数据流。
状态机图
在状态机中,顶点表示类中对象的状态,边表示事件的发生。附加符号记录了活动是如何协调的。对象具有行为和状态。对象的状态取决于其当前的活动或状况。状态机图显示了对象的可能状态以及导致状态变化的转换。
看看下面的状态机图。它模拟事件的状态转换。这样的状态图侧重于单个抽象(对象、系统)的一组属性。
现在尝试绘制UML状态机图
您已经了解了状态机图是什么以及如何绘制状态机图。是时候绘制自己的状态机图了。获取 Visual Paradigm Community Edition,一个免费的 UML 软件工具,并使用免费的状态机图工具创建您自己的状态机图。它易于使用且直观。