Week9_01_code_decay.pdf - IEEE TRANSACTIONS ON SOFTWARE...

Info icon This preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Does Code Decay? Assessing the Evidence from Change Management Data Stephen G. Eick, Member , IEEE , Todd L. Graves, Alan F. Karr, Member , IEEE Computer Society , J.S. Marron, and Audris Mockus, Member , IEEE Abstract —A central feature 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. In this paper, we approach this phenomenon, which we term code decay , scientifically and statistically. We define code decay and propose 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), we find mixed, but on the whole persuasive, statistical evidence of code decay, which is corroborated by developers of the code. Suggestive indications that perfective maintenance can retard code decay are also discussed. Index Terms —Software maintenance, metrics, statistical analysis, fault potential, span of changes, effort modeling. æ 1 I NTRODUCTION B ECAUSE the digital bits that define it are immutable, software does not age or “wear out” in the conventional sense. In the absence of change to its environment, software can function essentially forever as it was originally designed. However, change is not absent but ubiquitous in two principal senses. First, the hardware and software environments surrounding a software product do change. For example, hardware is upgraded, or the operating system is updated. Second, and equally important, the required functionality (both features and performance) sometimes changes abruptly. For example, a telephone system must, over time, offer new features, become more reliable and respond faster. Then, necessarily, the software itself must be changed through an ongoing process of maintenance. As part of our experience with the production of software for a large telecommunications system, we have observed a nearly unanimous feeling among developers of the software that the code degrades through time and maintenance becomes increasingly difficult and expensive. Whether this code decay is real, how it can be character- ized, and the extent to which it matters are the questions we address in this paper. The research reported here is based on an uncommonly rich data set: the entire change management history of a large, fifteen-year old real-time software system for telephone switches. Currently, the system is comprised of 100,000,000 1 lines of source code (in C/C++ and a proprietary state description language) and 100,000,000 lines of header and make files, organized into some 50 major subsystems and 5,000 modules. (For our purposes, a module is a directory in the source code file system, so that a code module is a collection of several files.
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern