Incorporating Change

Learn about substituting, augmentation and excluding, inversion and porting, also how to make the system more adaptable.

Substituting

Given a modular design, substituting is just replacing one module with another, like swapping out an NVidia graphics card for an AMD graphics card or vice versa.

The original module and the substitute need to share a common interface. That’s not to say they have identical interfaces, just that the portion of the interface needed by the parent system must be the same. Subtle bugs often creep in with substitutions.

In our running example, we might substitute a logistics module from UPS or FedEx in place of our original home-grown calculator.

Augmenting and excluding

Augmenting is adding a module to a system. Excluding is removing one. Both of these are such common occurrences that we might not even think of them as ...