Reminds me, whatever happened to https://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/statecharts.pdf ?
It is time for OO languages that have ML assistants assumed in the design. Tools that automatically recognize similarities and patterns and simplify your code.
I remember scratch file specs in JCL on IBM mainframes back in the 1970s.
Before forming an opinion, check out all the code at https://github.com/unclebob?tab=repositories – which is your favorite masterpiece of software there? I think that’s a fair question.
Just because it would be epic if @hwayne used a combo of TLA+ or other assurance activities to find a glaring bug in it that unit testing missed. Then, used it as a counterpoint in an update to this blog post. It wouldn’t mean anything going the other way, though, since it’s such a simple system. Testing and assertions might catch most or all problems in it. Might.
If it’s hot out, the controller will overheat, turn on the cooler, go under the tooHot threshold, turn off the cooled, and then overheat again. But since the cooler turned off, it can’t turn back on for another three minutes, so you can’t guarantee it will stay in an acceptable temperature range.