Understanding the Nature of Software Evolution

  • Authors:
  • Allen P. Nikora;John C. Munson

  • Affiliations:
  • -;-

  • Venue:
  • ICSM '03 Proceedings of the International Conference on Software Maintenance
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Over the past several years, we have been developingmethods of measuring the change characteristics of evolvingsoftware systems. Not all changes to software systemsare equal. Some changes to these systems are very smalland have low impact on the system as a whole. Otherchanges are substantial and have a very large impact of thefault proneness of the complete system. In this study wewill identify the sources of variation in the set of softwaremetrics used to measure the system. We will then study thechange characteristics to the system over a large number ofbuilds.We have begun a new investigation in these areas incollaboration with a flight software technology developmenteffort at the Jet Propulsion Laboratory (JPL) and have progressedin resolving the limitations of the earlier work intwo distinct steps. First, we have developed a standard forthe enumeration of faults. This new standard permits softwarefaults to be measured precisely and accurately. Second,we have developed a practical framework for automatingthe measurement of these faults. This new standard andfault measurement process was then applied to a softwaresystem's structural evolution during its development. Everychange to the software system was measured and every faultwas identified and tracked to a specific code module. Themeasurement process was implemented in a network appliance,minimizing the impact of measurement activities ondevelopment efforts and enabling the comparison of measurementsacross multiple development efforts.In this paper, we analyze the measurements of structuralevolution and fault counts obtained from the JPL flightsoftware technology development effort. Our results indicatethat the measures of structural attributes of the evolvingsoftware system are suitable for forming predictors ofthe number of faults inserted into software modules duringtheir development, and that some types of change are morelikely to result in the insertion of faults than others. Thenew fault standard also insures that the model so developedhas greater predictive validity.