前页 | 后页 |
状态机
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的元素。为了在仿真中包括外部元素,必须创建一个包含“父”包和“外部”包的包含外部元素的包图,然后创建一个从父包到每个外部包的包导入连接器