We live in a “disposable” society. We take pictures with disposable cameras and see by the light of disposable flashlights. We diaper our children, wipe up spills, and eat our meals without thought to the products we discard. Even our relationships don’t endure as of old. According to the National Center for Health Statistics, 43% of all first marriages are discarded.

But, in the embedded software industry, software is becoming precious. Using the same software across different product lines, migrating it to different platforms, and leveraging it over time has become a business imperative. However, little is said about design approaches that address the special challenges and hidden costs of engineering portable software.