Just read an very nice article by James Grenning titled “Engineers and Programmers, Stop Writing So Much Firmware” on software design with regards to embedded system and this piece of software embedded folks call firmware.
He makes the point that business logic must be decoupled from technological implementation dependencies very nicely. This wisdom is nothing new but still you don’t see it used very often in the real world (sadly).
My conclusions from this reading are basically:
- firmware should be designed with a systems software aspect in mind (not application software)
- decouple any business logic from implementation technology (okay, this is an obvious one)
I think especially the first point is one I’ll be able to apply to my prototype scope firmware.