状态图是状态机的图形表示,是软件和系统的 14 种 UML 图类型之一。状态图显示了一个由状态、状态转换和动作组成的行为模型。UML 状态图基于 David Harel 的状态图概念。状态图描述了允许的状态和转换以及影响这些转换的事件。
状态图描绘了状态机的不同状态。
它们还描述了受状态转换影响的事件。
状态图有什么用?
状态图通常用于嵌入式系统领域。状态图有助于可视化对象的整个生命周期,从而有助于更好地理解基于状态的系统。这种基于状态的系统的一个例子是自动提款机:一旦激活,就可以达到准备就绪状态或故障状态。插入借记卡后,它就会被验证。根据验证结果,请求密码或中止该过程。其他可能的状态是帐户查询或可用性检查等。
为什么状态图很重要?
在描述系统和系统行为时,状态图是不可替代的,例如用于车辆驾驶员辅助系统的控制单元等电子元件。对于这些系统,允许的状态在状态图中定义和可视化,以及在特定状态或转换过程中执行的活动。
如果传感器传输的值(例如转速、偏航率)与指定值有偏差,ESP(电子稳定程序)就会对车辆引导进行干预。结果是受影响的组件(例如车辆制动器)的状态发生变化。
状态图的好处
状态图是建模对象生命周期的理想方式。状态图使您能够描述对象在其整个生命周期内的行为。此外,可以描述不同的状态和状态变化以及导致转换的事件。换句话说:状态图使系统行为可见。
状态 (State)
为了能够将对象建模为状态图,状态必须满足特定要求:
- 所描绘的对象恰好处于允许的状态之一。换句话说:
- 所描绘的对象永远不会处于任何允许的状态。
- 所描绘的对象永远不会同时处于多个状态。
状态图中的状态被建模为圆角矩形。这些矩形还可能包含一个名称,最多可分为三个区域:名称、状态变量和内部事件以及条件和结果操作。
活动 (Events)
对于一个事件,存在三种可能的行为:
- entry – 在进入状态时自动生效
- exit – 退出状态时自动生效
- do – 在没有状态改变的情况下生效
过渡 (Transitions)
从一种状态到另一种状态的状态转换受事件的影响。事件由名称和分配的参数组成。在某些情况下,只有在满足某些条件时,特定状态才能受到事件的影响。
转换在源节点和目标节点之间建立连接。可以为转换分配一个行为规范,该规范描述了在通过转换时要实现的行为。影响的行为称为效果。此外,所谓的守卫“保护”过渡。只有当 guard 为true时,受保护的转换才能被传递。
有两种类型的过渡:
- 内部转换描述了对影响活动的事件的反应,但没有状态转换。因此,不会执行任何进入或退出活动。
- 外部转换描述了作为对事件的反应导致对象进入或退出状态的转换。在转换过程中,执行源状态的退出活动和目标状态的退出活动。一种特殊类型的转换是源状态和目标状态相同的自转换。
Visual Paradigm 的状态机图模板
状态机图用于建模状态机图是用于对系统的动态特性建模的 UML 图。它可视化单个类对象、用例和整个系统的动态行为。状态机图还可以显示实体如何通过从一种状态更改为另一种状态来响应各种事件。
在线创建状态机图。Visual Paradigm Online 具有简单的在线状态机图表制作器和大量技术和业务图表模板。它还支持远程工作、在线会议和在线研讨会,具有丰富的实时协作设施。创建您的状态机图
什么是状态机图?