Search⌘ K
AI Features

Incorporating Change

Explore how to design adaptable system architectures by applying modular operations such as substitution, augmentation, exclusion, inversion, and porting. Understand strategies to create flexible software systems that can evolve over time and handle real-world challenges effectively.

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