Forecasting Java Software Evolution Trends Employing Network Models.
The evolution of networks representing systems in various domains, including social networks, has been extensively
studied enabling the development of growth models which govern their behavior over time. The architecture of software systems can
also be naturally represented in the form of networks, whose properties change as software evolves. In this paper we attempt to model
several aspects of graphs representing object-oriented software systems as they evolve over a number of versions. The goal is to
develop a prediction model by considering global phenomena such as preferential attachment, past evolutionary trends such as the
tendency of classes to create fewer relations as they age, as well as domain knowledge in terms of principles that have to be followed in
object-oriented design. The derived models can provide insight into the future trends of software and potentially form the basis for
eliciting improved or novel laws of software evolution. The forecasting power of the proposed model is evaluated against the actual
evolution of 10 open-source projects and the achieved accuracy in the prediction of several network and software properties, which
reflect the underlying system design, appears to be promising.