MSc-IT Study Material
January 2011 Edition

Computer Science Department, University of Cape Town
| MIT Notes Home | Edition Home |

Legacy systems

While a lot of software that is in use is fairly current, state of the art software, companies often rely on software that has been in use for years, or even decades. This older software is called legacy software.

Legacy software is often, by today's standards, of poor quality: inextensible, convoluted, badly documented, and written in languages which are generally no longer used.

Worse, legacy software have often been continuously changed over decades to meet ever changing business and system requirements, contributing to the software's degradation.

Unfortunately, such legacy software is long lived precisely because it supports critical business systems. This makes it important that legacy systems be reengineered to remain usable in the future. One can think of this as a slow evolution of the legacy software. This evolution, these changes, are often done for one of the following reasons:

Changes to software are inevitable and are not unique to legacy systems. Software engineering must take this into account. This process of change is often referred to as software maintenance.