5 LEGACY INFORMATION SYSTEMS

When you have told anyone you have left him a legacy the only decent thing to do is to die at once.

—Samuel Butler

5.1 GENERAL IDEA

In Oxford English Dictionary (OED) the word “legacy” is defined as “A sum of money, or a specified article, given to another by will; anything handed down by an ancestor or predecessor.” In software engineering, no standard definition of legacy exists; Bennett [1] used the following definition to define legacy systems: Legacy software systems are “large software systems that we don’t know how to cope with but that are vital to our organization.” This is the Phaseout stage of the staged model for CSS proposed by Rajlich and Bennett and discussed in Section 3.3 of Chapter 3. Similarly, Brodie and Stonebraker [2] define a legacy system as “any information system that significantly resists modification and evolution to meet new and constantly changing business requirements.” Supporting both the definitions are a set of acceptable features of a legacy system:

  • large with millions of lines of code;
  • geriatric, often more than 10 years old;
  • written in obsolete programming languages;
  • lack of consistent documentation;
  • poor management of data, often based on flat-file structures;
  • degraded structure following years of modifications;
  • very difficult, if not impossible, to expand;
  • runs on old processors which are generally much slower; and
  • the support team is totally reliant on the expertise and knowledge of expert individuals. ...

Get Software Evolution and Maintenance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.