前页 | 后页 |
可执行状态机器工件
可执行StateMachine工件是生成可以相互交互的StateMachines的关键。它指定模拟中将涉及的对象,它们的状态以及它们如何连接。使用可执行StateMachine工件的一大优势是,工件中的每个部分都可以代表一个StateMachine实例,因此您可以使用每个StateMachine的多个实例来设置仿真并观察它们如何相互作用。 示例可执行状态机帮助主题中提供了一个示例 。
创建可执行状态机的属性
每个可执行StateMachine方案都涉及一个或多个StateMachines。包含的StateMachines由UML属性元素指定;每个属性将具有一个UML分类器(类),该类确定该类型包括的StateMachine。作为多个属性包含的多种类型最终可能包含许多StateMachines,它们都是在代码中创建并在执行时初始化的。
行动 |
描述 |
---|---|
将类从“浏览器”窗口拖放到<< Executable StateMachine >>工件 |
在Executable StateMachine上定义属性的最简单方法是从“浏览器”窗口将类拖放到Executable StateMachine上。在显示的对话框中,选择创建属性的选项。然后,您可以指定一个名称,以描述可执行状态机将如何引用此属性。 注意:根据您的选择,您可能必须按住Ctrl键才能选择创建属性。可以随时使用“按住Ctrl键显示此对话框”复选框更改此行为。 |
使用和连接多个UML属性 |
可执行状态机描述了多个状态机的交互。这些可以是同一StateMachine的不同实例,同一实例的不同StateMachines,或者是来自不同基本类型的完全不同的StateMachines。要创建将使用相同StateMachine的多个属性,请将相同的Class多次拖放到Artifact上。要使用不同的类型,请根据需要从“浏览器”窗口中删除不同的类。 |
定义属性的初始状态
由可执行StateMachine运行的StateMachines将全部在其自己的Class实例的上下文中运行。可执行状态机允许您通过将属性值分配给各种Class属性来定义每个实例的初始状态。例如,如果这些属性与正在运行的场景相关,则可以指定玩家的年龄,身高,体重或类似情况。通过这样做,可以设置详细的初始条件,这将影响场景的播放方式。
行动 |
描述 |
---|---|
设置属性值对话框 |
可以通过右键单击属性并选择“功能|属性”来打开分配属性值的对话框。设置属性值”,或使用键盘快捷键Ctrl + + R。 |
赋值 |
“设置属性值”对话框允许您为原始类中定义的任何属性定义值。为此,选择变量,将运算符设置为“ =”,然后输入所需的值。 |
定义属性之间的关系
除了描述分配给每个属性所拥有的变量的值外,Executable StateMachine还使您可以定义每个属性如何基于它们作为实例的Class模型来引用其他属性。
行动 |
描述 |
---|---|
创建一个连接器 |
使用“组合”工具箱中的“连接器”关系连接多个属性。
或者,使用快速链接器在两个属性之间创建关系,然后选择“连接器”作为关系类型。 |
映射到类模型 |
一旦两个属性之间存在连接器,就可以将其映射回它在类模型中表示的关联。为此,请选择连接器,然后使用键盘快捷键Ctrl + L。显示“选择关联”对话框,该对话框允许生成的StateMachine在执行期间将信号发送到实例,以填补关系中指定的角色。 |