Maintainence and Evolution
Software does not remain fixed after the first working version is released.
Errors or bugs can be discovered. Must be corrected.
Requirements may change. Say as a result of government regulations,
or standardization among similar products.
Hardware may change.
Users expectations may change. Greater functionality, more features.
Often as a result of competition from similar products.
Better documentation may be required.
A good design recognizes the inevitability of change, and plans an
accommodation for these activities from the very beginning.
Intro OOP, Chapter 3, Slide 40