预订演示
前页 后页

状态机

状态机说明元素(通常是类)如何在状态之间移动,根据转换触发器和约束守卫对其行为进行分类。

您可以从工具箱的“状态”页面图表状态机元素和连接器。

命名

  • 状态机以前称为状态图
  • UML中的状态机表示基于状态状态图表,因此有时称为状态图表

状态表

您可以将状态机显示为表或三种关系格式之一的表格。

选择显示格式

行动

也见

1

右键单击图表背景并选择“状态图编辑器”选项。

2

选择适当的显示选项:

  • 图表
  • 库表(状态-下个状态)
  • 库表(状态-触发器)
  • 库表(触发器-状态)
状态机库表

示例图表

此图说明了状态机的一些特征。

UML StateMachine chart example in Sparx Systems Enterprise Architect.

复合图表

已保存状态右下角的链节符号表示为状态,并带有复合图。

您有两个选项来显示状态的复合图的内容。首先,您可以双击父元素单独显示其子图,如下所示:

A Composite UML StateMachine chart using Sparx Systems Enterprise Architect.

默认情况下,子图显示在一个带标签的框架内,该框架表示子图时间中的上下文object 。您可以右键单击背景并选择“隐藏图框”选项以隐藏框架,并选择“显示图框”选项以再次显示框架。

或者,您可以右键单击主图上的复合元素并选择“高级|”。 Show复合图表' 选项,它再次在一个带标签的框架中显示子图,但这次是在上下文图的时间范围内。

A Composite UML StateMachine chart using Sparx Systems Enterprise Architect.

协议状态机

OMG UML规范( UML上层结构规范,v2.5,第 14.4 节)规定:

“ProtocolStateMachines 用于表达使用协议。ProtocolStateMachines 表达了事件发生的合法序列,关联的 BehavioredClassifier 的行为必须遵守。状态机表示法是定义分类器的行为特征调用顺序的便捷方式. ProtocolStateMachines 可以与分类器、接口和端口相关联。”

要创建 ProtocolStateMachine,请创建状态机元素并打开该元素的属性窗口。选择“行为”选项卡,然后选择“协议状态机”复选框。图上的元素现在在元素名称的上方有一个<<protocol>>。

状态机图表元素工具箱Icons

图标

描述

也见

State element

状态表示某种不变条件成立A情况;此条件可以是静态的(等待事件)或动态的(执行一组活动)。

状态
State Machine element

状态机元素是A组相关状态元素的容器。

状态机
Initial element

起始元素的状态代表一个伪状态,表示一个复合状态;复合状态的每个区域可以有一个初始顶点。

最初的
Final element

活动终点元素表示活动的完成;到达活动终点后,图中的所有执行都被中止。

终点
History element

UML中定义了两种历史伪状态:浅历史和深历史。

历史
Synchronize element

同步状态对于指示状态机的并发路径是同步A很有用。它们用于拆分和重新加入并行处理周期。

同步
Object element

物件是类在运行时的特定实例。

物件
Choice element

选择伪状态用于组成复杂的过渡路径,其中传出过渡路径由动态的运行时条件决定。

选择
Junction element

连接点伪状态用于设计状态机图中复杂的过渡路径。 A连接点可用于将多个路径组合或合并为共享转换路径。

连接点
Entry element

入口伪状态用于定义状态机的开始。每个区域都存在一个入口,指导初始并发状态配置。

入口
Exit element

退出点用于状态机元素和状态机图中,表示机器退出的点以及源自该退出点的转换。

出口
Terminate element

终止pseudostate表示一旦进入其pseudostate,状态机的执行就结束。

终止
Horizontal Fork/Join element

分叉/汇合元素A用于: 1 ) 将单个流拆分为多个并发流,2) 连接多个并发流或 3) 将多个传入流连接和分叉到多个传出流.

分叉/汇合 分叉 汇合
Vertical Fork/Join element

A分叉/汇合元素可用于:

1 ) 将单个流拆分为多个并发流

2)汇合多个并发流或

3) 将多个传入流加入和分叉到多个传出流

状态机图表连接器工具箱Icons

图标

描述

也见

State Flow Transition connector

A转移

连接器表示状态机图中从一个状态到另一个状态的逻辑移动。

转移
Object Flow connector

一个物件流连接两个元素,通过它的特定数据,模拟一个主动过渡。

物件流

注记

  • 状态元素可以显示有或没有横过它们的线;该行 - 如图所示 - 当元素具有诸如操作(可能被隐藏)之类的特征或在“首选项”对话框的“对象”页面中选中“显示状态分区”复选框时显示
  • 可以在状态或状态机的边框上添加入口和出口元素——在图中的元素上单击鼠标右键,选择“新建子元素|入口”或“出口元素”选项;如果元素是复合元素,用框架表示,也可以在选中的框架上右击,添加入口或出口元素
  • 如果您在作为另一个状态的分类器的状态机上有入口点和/或出口点,则可以从另一个状态创建对分类器的连接点状态
  • 也可以将区域添加到状态元素或状态机元素框架;右键单击所选框架并选择“定义并发子状态”选项
  • 您可以对状态机模型进行模型模拟,您模拟的模型可以包含多个包中的元素;要在模拟中包含外部元素,您必须创建一个包含“父”包和包含外部元素的“外部”包的包图,然后创建一个从父包到每个外部包的包导入连接器

了解更多