Я знаю их обоих, хотя и на разных уровнях детализации. Но мы можем начать с различий, с которыми я столкнулся, может быть, есть и другие :-).
Область
Во-первых, Quantum Platform предоставляет полную среду исполнения для конечных автоматов UML, тогда как boost :: statechart только помогает реализациям конечных автоматов. Таким образом, boost :: statechart предоставляет тот же механизм, что и процессор событий Quantum Platform (QEP).
Соответствие UML
Оба подхода разработаны для соответствия UML. Тем не менее, Quantum Platform выполняет переходные действия перед тем, как завершит действия соответствующего состояния. Это противоречит UML, но на практике это редко является проблемой (если разработчик знает об этом).
Boost :: statechart разработан в соответствии с UML 1.4, но, насколько мне известно, семантика исполнения не изменилась в UML 2.0 несовместимым образом (пожалуйста, исправьте меня, если я ошибаюсь), так что это тоже не должно быть проблемой.
Поддерживаемые функции UML
Обе реализации не поддерживают полный набор функций конечного автомата UML. Например, параллельные состояния (или состояния AND) не поддерживаются напрямую в QP. Они должны быть реализованы вручную пользователем. 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 в режиме реального времени (см. FAQ).
Так много различий, которые я знаю, скажите мне, если вы найдете больше, мне было бы интересно!