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