Evolving Requirements and a Problem Design

Before we go in-depth into the two dynamic interface models, we’ll look at a requirements change that led to a problematic design. We’ll then see how the dynamic interface models can help create a better design.

So far in the home automation system design, we have not looked at the light-controlling hardware. The LightScheduler and its tests drove the design of the LightController interface introduced in Dependencies on Hardware and OS . The interface is intention-revealing and hardware-independent. Creating a test double for the interface allowed us to make concrete progress on the LightScheduler.

Now the product manager and hardware designers have refined some of the requirements. The system ...

Get Test Driven Development for Embedded C now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.