Information systems tend to expand with time as efforts to remove unused code are seldom funded. Modifying a legacy system to adapt it to new business needs becomes increasingly difficult. Replacement is normally used with systems that are undocumented, outdated, or not extensible. In addition, IT resources are typically fully allocated performing maintenance tasks and may not be familiar with new technologies that can be utilized on the new system. Replacement requires extensive testing of the new system.
Legacy systems are well tested and tuned, and encapsulate considerable business expertise.
Replacement is a broadly studied problem with plenty of supporting literature. 2.3 Modernization Modernization involves more extensive changes than maintenance, but conserves a significant portion of the existing system. These changes often include system restructuring, important functional enhancements, or new software attributes. Modernization is used when a legacy system requires more pervasive changes than those possible during maintenance, but it still has business value that must be preserved. Program understanding is the principal form of reverse engineering used in white-box modernization.