On the uniformity of software evolution patterns

Preparations for Y2K reminded the software engineering community of the extent to which long-lived software systems are embedded in our daily environments. As systems are maintained and enhanced throughout their lifecycles they appear to follow generalized behaviors described by the laws of software evolution. Within this context, however, there is some question of how and why systems may evolve differently. The objective of this work is to answer the question: do systems follow a set of identifiable evolutionary patterns? In this paper we use software volatility to describe the lifecycle evolution of a portfolio of 23 software systems. We show by example that a vector of software volatility levels can represent lifecycle behavior of a software system. We further demonstrate that the portfolio's 23 software volatility vectors can be grouped into four distinguishable patterns. Thus, we show by example that there are different patterns of system lifecycle behavior, i.e. software evolution.

[1]  Victor R. Basili,et al.  Understanding and predicting the process of software maintenance releases , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[2]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[3]  Chris F. Kemerer,et al.  A longitudinal analysis of software maintenance patterns , 1997, ICIS '97.

[4]  Sandra Slaughter,et al.  Measuring software volatility: a multi-dimensional approach , 2000, ICIS.

[5]  Andrew Whinston,et al.  Electronic Commerce: A Manager's Guide , 1997 .

[6]  Rekha Menon,et al.  Child Nutrition, Child Health, and School Enrollment: A Longitudinal Analysis , 1997 .

[7]  Rajiv Sabherwal,et al.  An Empirical Taxonomy of Implementation Processes Based on Sequences of Events in Information System Development , 1993 .

[8]  E. Burton Swanson,et al.  System Life Expectancy and the Maintenance Effort: Exploring Their Equilibration , 2000, MIS Q..

[9]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[10]  C S Chong Hok Yuen,et al.  An empirical approach to the study of errors in large software under maintenance , 1986 .

[11]  Chris F. Kemerer,et al.  An Empirical Approach to Studying Software Evolution , 1999, IEEE Trans. Software Eng..

[12]  Curtis R. Cook,et al.  Real-time software metrics , 1994, J. Syst. Softw..

[13]  Donald C. Pelz,et al.  Innovation Complexity and the Sequence of Innovating Stages , 1985 .

[14]  Chris F. Kemerer,et al.  Determinants of software maintenance profiles: an empirical investigation , 1997, J. Softw. Maintenance Res. Pract..

[15]  Bernice W. Polemis Nonparametric Statistics for the Behavioral Sciences , 1959 .

[16]  David Gefen,et al.  The non-homogeneous maintenance periods: a case study of software modifications , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[17]  Steven W. Duck,et al.  Studying Interpersonal Interaction , 1992 .

[18]  Keith H. Bennett,et al.  Software evolution: past, present and future , 1996, Inf. Softw. Technol..

[19]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.