前页 后页

可执行状态机

Enterprise Architect screenshot of running executable state machine simulation

可执行StateMachines提供了一种快速生成,执行和模拟复杂状态模型的强大方法。与使用Enterprise Architect的仿真引擎对状态图进行动态仿真相反,可执行状态机提供了完整的特定于语言的实现,可以为多个平台上的多个软件产品形成行为的“引擎”。执行的可视化使用并与Simulation功能无缝集成。该模型的演变现在提出了较少的编码挑战。代码的生成,编译和执行由Enterprise Architect 。对于那些有特殊要求的人,每种语言都提供了一组代码模板。您可以自定义模板,以按照自己认为合适的任何方式定制生成的代码。

这些主题向您介绍了对可执行StateMachines建模的基础知识,并告诉您如何生成和模拟它们。

Enterprise Architect的Unified版和Ultimate版支持创建和使用可执行状态机,并从中生成代码。


可执行状态机

这组图像聚焦了StateMachine的设计,编译,执行和模拟过程。


建立和执行状态机概述

构建和使用可执行StateMachines非常简单,但是确实需要一些计划,并且需要一些知识,如何将不同的组件链接起来以构建有效的执行模型。幸运的是,在开始可视化设计之前,您不必花费数小时就可以正确建立模型并修复编译错误。

勾勒出模型的基本原理之后,您可以在短短几分钟内生成代码来驱动,编译,执行和可视化它。这些要点总结了开始执行和模拟StateMachines所需的条件。

设施

描述

建立类和状态模型

第一个任务是构建描述要构造的实体和行为的标准UML类和状态模型。模型中的每个感兴趣的类都应具有自己的StateMachine,该StateMachine描述控制其总体行为的各种状态和转换。

创建可执行状态机器工件

对类和状态模型进行建模后,就可以设计可执行StateMachine Artifact。这将描述所涉及的类和对象,以及它们的初始属性和关系。绑定脚本将多个对象链接在一起,并确定这些对象在运行时如何通信。请注意,在可执行状态机工件中可能有两个或多个对象作为单个类的实例。它们在运行时将具有自己的状态和行为,并在必要时可以进行交互。

生成代码并编译

无论您使用的是JavaScript,C ++,Java还是C#, Enterprise Architect的工程能力都为您提供了一个强大的工具,使您可以随时重新生成可执行文件,而不会丢失您可能制作的任何自定义代码。这是整个项目生命周期的主要优势。可能还值得注意的是,生成的整个代码库是独立且可移植的。该代码绝不会与仿真引擎使用的任何基础结构相结合。

执行状态机

那么,我们如何看待这些StateMachines的行为呢?一种方法是为每个平台构建代码库,将其集成到一个或多个系统中,在可能的几种部署方案中“现场”检查行为。或者我们可以使用Enterprise Architect执行它。无论是Java,JavaScript,C,C ++还是C#, Enterprise Architect都将负责创建运行时,模型的托管,其行为的执行以及所有StateMachines的呈现。

可视化StateMachines

可执行的StateMachine可视化与Enterprise Architect的仿真工具集成在一起。观察状态变化在图表上发生的状态以及对象的状态。轻松识别共享相同状态的对象。重要的是,这些行为在多个平台上保持一致。您还可以控制机器的运行速度,以更好地了解事件的时间表。

调试StateMachines

当状态应该更改但不更改时,当状态不应该启用,而是当行为(简而言之,是不希望的,并且在模型中不能立即看到)时,我们可以转向调试。 Enterprise Architect的Visual Execution Analyzer附带调试器,用于ExecutableStateMachine代码生成支持的所有语言。调试提供了许多好处,其中之一可能是验证/确认StateMachine中与行为相关的代码,以确保它实际上反映在执行过程中。