前页 | 后页 |
可执行状态机
可执行状态机提供了一种快速生成、执行和模拟复杂状态模型的方法。与使用Enterprise Architect的仿真引擎动态模拟状态图相比,多平台可执行状态机提供了完成的语言特定实现,可以形成多个软件的行为“引擎”。执行的可视化基于与仿真功能的无缝集成。模型的演变现在提出了更少的编码挑战。代码生成、编译和执行由Enterprise Architect负责。对于那些有特殊要求的人,每种语言都提供了一组代码模板。模板可以由您自定义,以您认为合适的任何方式定制生成的代码。
这些主题向您介绍建模可执行状态机的基础知识,并帮助您了解如何生成和模拟它们。
Enterprise Architect统一版和终极版支持可执行状态机的创建、使用和生成代码
可执行状态机
这组图像突出了设计、编译、执行和模拟状态机的过程。 |
建造和执行状态机概述
建造和使用可执行状态机非常简单,但确实需要一点计划和一些有关如何将不同组件链接起来以构建有效执行模型的知识。幸运的是,您不必花费数小时来获得正确的模型并修复编译错误,然后您就可以开始可视化您的设计。
在勾勒出模型的广泛机制后,您可以在几分钟内生成代码来驱动、编译、执行和可视化它。这些要点总结了开始执行和模拟状态机所需的内容。
功能 |
描述 |
---|---|
编译类和状态模型 |
第一个任务是构建描述要构建的实体和行为的标准UML类和状态模型。对您的模型感兴趣的每一类都应该有自己的状态机,描述控制其整体行为的各种状态和转换。 |
创造一个可执行状态机的工件 |
一旦你已经建立了类模型和状态,就该设计可执行状态机的工件了。这将描述所涉及的类和对象,以及它们的初始属性和关系。正是链接多个对象的脚本决定了它们在运行时将如何通信。请注记,可以在一个可执行状态机工件或多个对象绑定在一起,并将其绑定为单个类的实例。这些将在运行时具有自己的状态和行为,并且可以在必要时进行交互。 |
生成代码并编译 |
无论您使用JavaScript 、C++、 Java还是 C#, Enterprise Architect的工程能力都为您提供了一个有效的工具,允许您随时重新生成可执行文件,并且不会丢失您可能制作的任何定制代码。这是项目生命周期中的主要优势。可能还值得注意的是,生成的整个代码库是独立且可移植的。代码绝不会与模拟引擎使用的任何基础设施相结合。 |
执行状态机 |
那么我们如何看待这些状态机的行为呢?一种方法是为每个平台构建代码库,将其集成到一个或多个系统中,在可能的几个部署场景中“就地”检查行为。或者我们可以使用Enterprise Architect执行它。无论是Java 、 JavaScript 、C、C++ 还是 C#, Enterprise Architect都会负责创建运行时、模型的托管、其行为的执行以及所有状态机的再现。 |
可视化状态机 |
可执行状态机可视化集成了Enterprise Architect的仿真工具。观察图表上发生的状态转换以及针对哪个object 。轻松识别共享相同状态的对象。重要的是,这些行为在多个平台上保持一致。您还可以控制机器的运行速度,以更好地了解事件的时间线。 |
调试状态机 |
当状态应该改变但不改变时,当转换不应该被启用但被启用时,当行为 - 简而言之 - 不受欢迎并且从模型中没有立即显现时,我们可以转向调试。 Enterprise Architect的可视化执行分析器附带了 ExecutableStateMachine 代码生成支持的所有语言的调试器。调试提供了许多好处,其中之一可能是验证/证实附加到状态机中的行为的代码,以确保它被实际反映在执行过程中。 |