As long as I’m writing about statecharts… maybe it’d be helpful if I shared some of the resources I’ve found useful.
David Harel is the person who formalized/invented what was adopted as the UML Statechart spec. He has a free book, Modeling Reactive Systems with Statecharts, that’s a decent ( if a bit slow ) introduction. His original paper is useful too, but since UML has evolved things a bit, it’s probably not a perfect starting place for newcomers.
Miro Samek wrote Practical UML Statecharts which I highly recommend to all. Samek also published an article sized version ( as a pdf here ) which is definitely worthwhile. He is plugging the sale of his company’s software, and he does overstate ( no pun intended ) the usefulness of statemachines ( to their detriment, I think: they’re not perfect for everything, and a good analysis of their shortcomings would help to better illustrate how they fit in with everything else we as programmers do ), but that doesn’t stop him from writing clear and informative explanations. I particularly like his look at all the different ways statemachines can be implemented. ( But, then, that’s the kind of programming discussion I like the most. )
The Boost Meta State Machine tutorial is good for getting a quick read of statechart syntax; absent is the why and how of using state machines. Wikipedia’s various articles are decent enough, and the old UML 1.3 docs ( scrib, or pdf of just the statechart bits ) are great. ( Unfortunately, I’ve found the new 2.x docs to be impossibly dense. )
It’s interesting how few resources there are which discuss exactly how UI and statecharts fit together. Apparently, Constructing the User Interface with Statecharts by Ian Horrocks is a good one, but at 100+ dollars for a used paperback, it’s a little pricey to pickup on blind faith.
If you’ve got any good links, be sure to let me know.