Maintainence and Evolution
Finally, once the working application is released, software enters the
period we euphemistically label software ``maintainence''.
This is often the longest period of an applications life.
During this period errors or bugs can be discovered and must be
corrected. Requirements may change, and must be attended to.
Hardware may change, users expectations may change.
A good design recognized the inevitability of change, and is designed
so as to accomodate as many changes as possible with a minimum of
revision. Central to this goal is the reduction of coupling between
software components.