| 前页 | 后页 | 
状态机
StateMachines说明了元素(通常是类)如何在状态之间移动,并根据过渡触发器和约束保护措施对其行为进行了分类。
您可以从图工具箱的“状态”页面生成StateMachine元素和连接器。
命名
- StateMachines以前称为状态图
- UML中的StateMachine表示基于Harel状态图表示法,因此有时也称为状态图
状态表
您可以将StateMachine显示为图表或三种关系格式之一的表格。
选择显示格式
| 步 | 行动 | 也可以看看 | 
|---|---|---|
| 1个 | 右键单击图背景,然后选择“状态图编辑器”选项。 | |
| 2 | 选择适当的显示选项: 
 | 状态机表 | 
示例图
此图说明了StateMachines的一些功能。
 
复合图状态
“已保存状态”右下角的链接符号表示它是一个带有合成图的状态。
您有两个选项可以显示州综合图的内容。首先,您可以双击父元素以单独显示其子图,如下所示:
  
 
默认情况下,子图显示在带标签的框架中,该框架代表子图上下文中的父对象。您可以右键单击背景,然后选择“隐藏图框”选项以隐藏该框,然后在“显示图框”选项中再次显示该框。
或者,您可以右键单击主图上的复合元素,然后选择“高级| “显示合成图”选项,该选项再次在带标签的框架中显示子图,但这一次在父图的上下文中。
 
ProtocolStateMachines
OMG UML规范( UML上层结构规范,v2.5,第14.4节)规定:
“ ProtocolStateMachines用于表达使用协议。ProtocolStateMachines表示关联的BehavioredClassifier的行为必须遵循的事件发生的合法序列。StateMachine表示法是一种方便的方法,用于定义分类器的行为特征的调用顺序。ProtocolStateMachines可以与分类器,接口和端口关联。”
要创建ProtocolStateMachine,请创建StateMachine元素,然后打开该元素的“属性”窗口。选择“行为”选项卡,然后在其中选中“协议StateMachine”复选框。现在,该图上的元素在元素名称上方带有单词<< protocol >>。
StateMachine图元素工具箱图标
| 图标 | 描述 | 也可以看看 | 
|---|---|---|
|   | 一个国家代表着一些不变条件成立的情况;此条件可以是静态的(等待事件)或动态的(执行一组活动)。 | 州 | 
|   | StateMachine元素是一组相关State元素的容器。 | 状态机 | 
|   | Initial元素表示伪状态,用于表示Composite State的默认状态;复合状态的每个区域中可以有一个初始顶点。 | 初始 | 
|   | Activity Final元素指示活动的完成;到达决赛后,“活动”图中的所有执行将中止。 | 最后 | 
|   | UML定义了两种历史伪状态:浅历史和深历史。 | 历史 | 
|   | 同步状态对于指示StateMachine的并发路径已同步很有用。它们用于拆分和重新加入并行处理的周期。 | 同步 | 
|   | 对象是运行时类的特定实例。 | 目的 | 
|   | Choice伪状态用于组成复杂的过渡路径,其中传出的过渡路径由动态的运行时条件决定。 | 选择 | 
|   | 连接伪状态用于设计StateMachine图中的复杂过渡路径。连接点可用于将多个路径合并或合并为共享的过渡路径。 | 交界处 | 
|   | 入口点伪状态用于定义StateMachine的开始。每个区域都有一个入口点,用于指导初始并发状态配置。 | 入口点 | 
|   | StateMachine元素和StateMachine图中使用了退出点,以表示退出机器的点以及转换为此退出点的来源。 | 出口点 | 
|   | 终止伪状态指示在进入其伪状态后,StateMachine的执行结束。 | 终止 | 
|   | Fork / Join元素可用于:1)将单个流拆分为多个并发流,2)合并多个并发流,或3)将多个传入流和分支并合并到多个传出流。 | 叉/连接 叉子 加入 | 
|   | Fork / Join元素可用于: 1)将单个流拆分为多个并发流 2)加入多个并发流或 3)将多个传入流加入和分叉到多个传出流 | 
StateMachine图连接器工具箱图标
笔记
- 状态元素可以显示或不显示一条线。当元素具有诸如操作(可以隐藏)之类的功能时,或者在“首选项”对话框的“对象”页面中选中“显示状态格”复选框时,将显示该行(如图所示)
- 可以将入口点和出口点元素添加到State或StateMachine元素的边界-右键单击图中的元素,然后选择“新建子元素|入口点”或“出口点”选项;如果元素是复合元素并由框架表示,则还可以右键单击所选框架并添加入口点或出口点元素
- 如果在StateMachine上具有作为另一个州的分类器的入口点和/或出口点,则可以从另一个州创建到分类器的连接点引用
- 也可以将Regions添加到State元素或StateMachine元素框架中。右键单击所选框架,然后选择“定义并发子状态”选项
- 您可以在StateMachine模型上执行模型仿真,并且所仿真的模型可以包含来自多个Package的元素。为了在仿真中包括外部元素,必须创建一个包含“父”包和“外部”包的包含外部元素的包图,然后创建一个从父包到每个外部包的包导入连接器

 
	