Suite101

What is Legacy Software?


© Faisal Bin Bashir

Legacy software may be defined informally as "software we don't know what to do with, but it's still performing a useful job." Legacy software systems are programs that are critical to the operation of companies, but that were developed years ago using early programming languages such as Cobol and Fortran. These programs have been maintained for many years by hundreds of programmers, and while many changes have been made to the software, the supporting documentation may not be current. These factors contribute to the staggering cost of maintaining legacy systems. Consequently, there is an urgent need to find ways to make these programs more maintainable without disrupting the operation of the company.

The Need to Re-engineer

The implication is that the preferred solution is to discard the software completely, and start again with a new system. This may not be appropriate in all cases, for example:

1. The software represents years of accumulated experience, which is not represented elsewhere, so discarding the software will also discard this knowledge, however inconveniently it is represented.

2. The manual system that was replaced by the software no longer exists, so system analysis must be undertaken on the software itself.

3. The software may actually work well, and its behavior may be well understood. A new replacement system may perform much more badly, at least in the early days. Hence it may be worth recovering some of the good features of the legacy system.

4. A typical large legacy software system has many users, who typically have exploited undocumented "features" and side effects in the software. It may not be acceptable to demand that users undertake a substantial rewrite for no discernable benefit. Therefore, it may be important to retain the interfaces and exact functionality of the legacy code, both explicit and implicit.

5. Users may prefer an evolutionary rather than a revolutionary approach.

Go To Page: 1


The copyright of the article What is Legacy Software? in Software Re-engineering is owned by . Permission to republish What is Legacy Software? in print or online must be granted by the author in writing.

Post this Article to facebook Add this Article to del.icio.us! Digg this Article furl this Article Add this Article to Reddit Add this Article to Technorati Add this Article to Newsvine Add this Article to Windows Live Add this Article to Yahoo Add this Article to StumbleUpon Add this Article to BlinkLists Add this Article to Spurl Add this Article to Google Add this Article to Ask Add this Article to Squidoo