Boost logo

Boost :

Subject: Re: [boost] [MSM] Comparison with ad-hoc FSM implementation
From: Michael Caisse (boost_at_[hidden])
Date: 2009-12-10 01:37:54

Phil Endecott wrote:
> Hi Christophe,
> Thanks for your detailed reply. I think it's important that you
> add some sort of basic rationale of this sort to the documentation -
> you need to evangelise what you believe are the advantages of the
> library from first principles to its potential users.
> I'm just going to pick up on a couple of points, mainly because I
> don't know enough about UML to comment on the rest.

Hello Phil -

You may be familiar with Harel Statecharts. It is the "grand-daddy"
of UML state machines and lends a very powerful concept over most
standard state machine paradigms: hierarchically nested states.
Hierarchical finite state machines provide a richer set of semantics
that is well suited for medium to large machines. In UML these
are called composite states or sub-state machines as Msm uses them.

This concept is difficult (messy) to implement with ad-hoc techniques.
I personally find that the richness provided by some of the modeling
language constructs produces very simple solutions for what can often
be messy problems to solve. It brings an elegance to the solution
space that cannot be found in just states and transitions alone.
It is the richness of the modeling language that helps one solve more
complex problems without complexity.

Sure, in these simple toy examples the ad-hoc switch statement looks
as good if not better than a complex library. But as soon as we start
making something that is industrial proof with all the error cases
and whatnots ... well things start getting more complicated and
I personally start looking for some additional constructs to help out.

I certainly don't think a short little email will convince you
differently. Nor is it my intent. I thought I would point out that
it is the richness of the modeling language that allows you to attack
more complex problems with a better paradigm. A library that implements
those language constructs then allows an engineer to simply implement the
model without a complicated transform.

Take care -

Michael Caisse
Object Modeling Designs

Boost list run by bdawes at, gregod at, cpdaniel at, john at