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 ...