Smart Trains 2
-
ST 15 Seeing Statecharts Run
Software development is fun when the system works exactly as designed, including both nominal and off-nominal paths. It would be less so if something didn’t work and we had to reconstruct a mental…
-
ST 14 Keeping Edge Cases at the Center
In an earlier post, we looked at the stopping mechanism of the Train state machine. In particular, the substate AutoMotorRest stops the train gradually by sending the event MOTOR_RUN_REQ with the target speed…
-
ST 13 Async Design Is a Rugged Terrain. Statecharts May Help.
This is a series of blog posts about asynchronous software design using statecharts. While there are quite a few resources on basic statechart notations and tools, there aren’t really many realistic examples applicable…
-
ST 12 A Neat Diagram Yields a Neat Design
We are continuing our journey on this garden model train named Hierarki to explore model-based software design. In this post, we illustrate some cool features of statecharts with GpioIn, a state-based driver for…
-
ST 11 Hierarchical Refinement of Statechart (GpioIn)
In the previous post, we showed how we modeled a GPIO interrupt pin with a hierarchical state machine (HSM) named GpioIn. Its simple design enforces the following properties: With infinite number of waveforms…