gpt4 book ai didi

c++ - Boost StateCharts 与 Samek 的 "Quantum Statecharts"的比较

转载 作者:可可西里 更新时间:2023-11-01 18:30:05 42 4
gpt4 key购买 nike

我曾大量接触过 Miro Samek 的“量子分层状态机”,但我想知道它与 Boost StateCharts 相比如何 - 正如曾与两者合作过的人所说。有没有人要?

最佳答案

虽然详细程度不同,但我都知道。但我们可以从我遇到的差异开始,也许还有更多 :-)。

范围

首先,Quantum Platform 为 UML 状态机提供了完整的执行框架,而 boost::statecart 仅帮助状态机实现。因此,boost::statechart 提供与 Quantum 平台 (QEP) 的事件处理器相同的机制。

UML 一致性

这两种方法都设计为符合 UML。但是,Quantum 平台在相应状态的退出操作之前执行转换操作。这与 UML 相矛盾,但在实践中这很少成为问题(如果开发人员意识到这一点)。

Boost::statechart 是根据 UML 1.4 设计的,但据我所知执行 语义 在 UML 2.0 中没有以不兼容的方式改变(如果我错了请纠正我) ,所以这也应该不是问题。

支持的 UML 特性

这两种实现都不支持完整的 UML 状态机功能集。例如,QP 不直接支持并行状态(又名 AND 状态)。它们必须由用户手动实现。 Boost::statechart 不支持内部转换,因为它们是在 UML 2.0 中引入的。

我认为每种技术支持的确切功能在文档中很容易弄清楚,所以我没有在这里列出它们。

事实上,两者都支持最重要的状态图功能。

其他区别

另一个区别是 QP 适用于嵌入式应用程序,而 boost::statechart 可能适合,也可能不适合。常见问题解答说“这取决于”(请参阅​​ http://www.boost.org/doc/libs/1_44_0/libs/statechart/doc/faq.html#EmbeddedApplications ),但对我来说这已经是一个很大的警告信号。

此外,您必须进行特殊测量才能使 boost::statechart 具有实时能力(请参阅常见问题解答)。

我知道的差异就这么多,如果您发现更多差异,请告诉我,我会很感兴趣!

关于c++ - Boost StateCharts 与 Samek 的 "Quantum Statecharts"的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570222/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com