Discusses Event-Driven programming, and why State Machines are often a very good “fit” for such tasks.
Provides an example of the type of mess that’s all too easy to get into by doing Even-Driven programming without State Machines:
embedded.com/design/prototyp … nes-Part-1
Part 2 looks at extensions provided by UML to the basic State Machine concept