Code Decay in Legacy Software Systems: Measurement, Models, and Statistical Strategies

Case Study

fading numbers

Challenges

Over time, software code can lose quality and begin having errors and problems working properly. It is more difficult to keep changing the code and has become much more expensive as well. Eventually the hardware fails and there is no way to update or port the software to newer tools. Lucent Technologies, along with the National Science Foundation hired NISS to look at a way to quantify, measure, predict and reverse or retard code decay.

Solutions

NISS helped to improve the development process for large legacy software systems by application of statistical strategies to model and control the effects of design decisions, software architecture and organizational factors. NISS also looked at finding reductions in cost and development time, increases in software quality and improved capability to predict cost, schedule and quality.


Research Project

One of the main features of the evolution of large software systems is that change-which is necessary to add new functionality, accommodate new hardware, and repair faults-becomes increasingly difficult over time. This phenomenon, which NISS called code decay, was studied by the team. They proposed a number of measurements (code decay indices) on software and on the organizations that produce it, that serve as symptoms, risk factors, and predictors of decay. Using an unusually rich data set (the fifteen-plus year change history of the millions of lines of software for a telephone switching system), they found persuasive statistical evidence of code decay, which is corroborated by developers of the code.

Technical Report(s):

http://www.niss.org/sites/default/files/pdfs/technicalreports/tr63.pdf

http://www.niss.org/sites/default/files/pdfs/technicalreports/tr64.pdf

https://www.niss.org/sites/default/files/pdfs/technicalreports/tr80.pdf

https://www.niss.org/sites/default/files/pdfs/technicalreports/tr81.pdf

https://www.niss.org/sites/default/files/pdfs/technicalreports/tr84.pdf

https://www.niss.org/sites/default/files/pdfs/technicalreports/tr94.pdf

 

Project Goal: 

At what point does code in software decay? How fast does it start to have problems due to its age? These and similar questions, were explored by a NISS research team.

Research Team: 

Funding Sponsor(s): National Science Foundation, Lucent Technologies

Principal Investigator(s):  Alan Karr, NISS; Stephen Eick, Bell Laboratories

Senior Investigator(s): J.S. Marron, UNC-Chapel Hill; Audris Mockus, Lucent; Adam Porter, Maryland; Nancy Staudenmayer, Duke; Harvey Siy, Lucent; Lawrence Votta, Lucent; David Weiss, Lucent

Post Doctoral Fellow(s): Todd Graves

Individual Team Members: 
Alan F. KarrTodd Graves