预订演示
前页 后页

旧版状态机模板

代码生成使用一组生成模板进行操作。从Enterprise Architect 11.0 版开始,默认提供一组不同的模板,用于将软件代码从状态机图生成为Java 、C、ANSI C++ 或 C# 代码。如果您不想升级它们以获得新的模板功能,您仍然可以使用原始模板,如此处所述,用于在Enterprise Architect早期版本中开发的模型。

在 Legacy 和 Release 11 模板之间切换

访问

显示“管理模型选项”对话框,然后使用本表中列出的方法之一显示所选语言的“语言规范”页面。如有必要,展开“状态机工程(适用于当前模型)”分组并将“使用新状态机模板”选项设置为True (使用后面的模板)或False (使用旧版模板)。

功能区

设置>模型>选项>源代码工程> [语言名称]

旧版模板转换

类中A状态机在内部生成许多软件语言结构,以提供状态行为(执行、进入和退出)的有效执行,并在必要时对适当的转换效果进行编码。

模型对象

代码对象

也见

枚举

  • StateType - 由状态机中包含的每个状态的枚举组成
  • TransitionType – 由每个具有与其关联的有效效果的转换的枚举组成;例如,ProcessOrder_Delivered_to_ProcessOrder_Closed
  • CommandType – 包含一个状态可以包含的每个行为类型的枚举(Do、Entry、Exit)

属性

  • currState:StateType - 保存当前状态信息的变量
  • nextState:StateType - 保存下一个状态信息的变量,由每个状态的转换相应地设置
  • currTransition:TransitionType - 保存当前转换信息的变量;如果过渡具有与之关联的有效效果,则设置此项
  • transcend:Boolean - 一个标志,用于告知转换是否涉及不同状态机(或子机状态)之间的超越
  • xx_history:StateType - 每个状态机/子机状态的历史变量,保存关于发生转换的最后状态的信息

操作

  • 过程- 一个状态过程,包含一个状态的枚举和它的操作之间的映射;它取消引用当前状态的信息以调用相应状态的函数
  • TransitionsProc - 一个过渡过程,包含转移
    之间的映射转移
    的列举及其影响;它调用了转移
    的效果
  • <<State>> -状态机中包含的每个状态的操作;这会根据输入 CommandType 呈现状态的行为,并执行其转换
  • initializeStateMachine - 一个初始化所有框架相关属性的函数
  • 状态- 一个迭代每个状态的函数,并相应地执行它们的行为和转换
操作行为

注记

  • 为了能够从行为模型生成代码,所有行为构造都应该包含在一个类中

了解更多