Boost.Msm is the library that supports the implementation of the modelling machine corresponding to the UML 2.x. You can access all the relevant documents via the following URL.
This article's purpose is to indicate the guidelines for how UML
modelers can use Boost.Msm effectively.
This guideline is based on Functor front-end.
Boost.Msm supports basic front-end. It contains many transition table notation: (e.g. _row, a_row, g_row, and so on)
They are rather complicated. I recommend that you should use the Functor front-end instead of them. Because Functor front-end is the most sophisticated and efficient approach. In the future, the Functor front-end might be replaced with eUML notation. It has been released as experimental for now. (version 1.51.0) http://www.boost.org/doc/libs/1_51_0/libs/msm/doc/HTML/ch03s04.html
Simple state machine
Initial transition's action
Self transition and internal transition
Two different ways of implement internal transitions
Junction pseudo state
Choice pseudo state