Finite-state machine introduction and motivation. Overview of few existing finite-state machines C++ implementations (Qt, Boost, etc.). Overview of using Boost.Statechart library. Best practices using Boost.Statechart and C++ code samples.