我曾经沉迷于Miro Samek的“量子分层状态机”,但我想知道它与Boost StateCharts的比较 – 正如曾与两者合作的人所说的那样.任何接受者?
解决方法
我知道他们两个,虽然在不同的细节水平.但我们可以从我遇到的差异开始,也许还有更多:-).
范围
首先,Quantum平台为UML状态机提供了完整的执行框架,而boost :: statechart只能帮助实现状态机.因此,boost :: statechart提供与Quantum Platform(QEP)的事件处理器相同的机制.
UML一致性
这两种方法都符合UML标准.但是,Quantum平台在相应状态的退出操作之前执行转换操作.这与UML相矛盾,但实际上这很少是一个问题(如果开发人员知道它).
Boost :: statechart是根据UML 1.4设计的,但据我所知,UML 2.0中的执行语义没有以不兼容的方式改变(如果我错了请纠正我),所以这不应该是一个问题.
两种实现都不支持完整的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实时功能(请参阅常见问题解答).
我知道的差异太大了,告诉我如果你找到更多,我会感兴趣!