A comparison of black-box models for software evolution
Last thirty years have seen the birth and maturity of software evolution as a specialized field inside the vast area covered by software engineering. Software evolution focuses on the study of how software systems change during their lifetime, trying to shed some light on the nature of that change and the relationships between system's attributes from one release to the next. Early empirical studies of software evolution discovered some patterns common to the evolution of every software system that was analyzed. These invariants were formalized in the "laws of software evolution." The election of the term law is intentional and expresses their universality. However, as this study intends to prove, the laws have undergone multiple revisions, and some early conclusions were contradicted by late discoveries, as new empirical studies of the evolution of software systems became available. One of the practical derivations of the laws is the inverse square model. The model explains the growth of evolutionary software systems during their lifetime and it can be used to forecast accurately a system's size many releases in the future, which allows management to plan and allocate resources well in advance. Although many papers have presented examples of software systems whose growth is successfully modeled by the inverse square equations, some recent studies present prove of just the opposite. The QUICK application, a web-based system developed locally at Texas Tech is one example of a system whose growth cannot be explained by the inverse square model. This motivated the analysis of the underlying reasons, finally found in the intrinsic limitations of the model. In addition, the present study proposes an alternative model, already suggested in some recent studies of software evolution, as a better alternative. The model is referred here as the "constant work rate" model and is based on a simple exponential relation. The present study includes a comparison of both inverse square and constant work rate models, presenting proof of the superiority of the constant work rate model.