Discovering the Profiles and Patterns of Software Evolution
Carnegie Mellon University, Pittsburgh PA
Investigators
Abstract
9988227/9988315 Slaughter, Sandra Kemerer, Chris F. Carnegie Mellon University University of Pittsburgh Discovering the Profiles and Patterns of Software Evolution Software evolution refers to the dynamic behavior of software systems as they are maintained and enhanced over their lifetimes. Software evolution is of increasing importance as systems in organizations become longer-lived. However, empirical studies of software evolution face particular challenges due to the longitudinal nature of the evolution phenomenon. As a result, there is relatively little scientific knowledge about how software systems actually evolve. This research has the objectives of developing and evaluating models of the process of software evolution. Specifically, this research seeks to: (1) Identify typical patterns in the changes to software systems over time, (2) Determine the extent to which the patterns coalesce into distinct evolutionary phases, (3) Understand why systems follow similar or different evolutionary paths, and (4) Develop and evaluate models that predict the evolutionary patterns of software systems. The empirical evaluation involves collecting, coding, and analyzing more than 25,000 change events that occurred over 20 years in 23 commercial software systems. Given the relative paucity of research on software evolution, this study should yield unique insights that contribute to theory building. In addition, longitudinal empirical data and databases on software change histories will be created that are novel, detailed, and of high quality.
View original record on NSF Award Search →