The House Management example mistakenly assigns the 'timed' behaviour to Lamp. It should be assigned to Button (or even to, for example, Timed Button/Toggle Button, both derived from abstract Button).
This is so obvious thinking about the actual behaviour of the system being modelled. Who would want to put a state machine in a lightbulb? I remember seeing actual "Timed Buttons" years ago, where you could watch the pushed button slowly easing back out to the unpushed state!
I had made this mistake by at latest 2004; I realised it just after making a presentation in 2014.
The House Management example mistakenly assigns the 'timed' behaviour to Lamp. It should be assigned to Button (or even to, for example, Timed Button/Toggle Button, both derived from abstract Button).
This is so obvious thinking about the actual behaviour of the system being modelled. Who would want to put a state machine in a lightbulb? I remember seeing actual "Timed Buttons" years ago, where you could watch the pushed button slowly easing back out to the unpushed state!
I had made this mistake by at latest 2004; I realised it just after making a presentation in 2014.