Evolutionary Analysis of Software Structure Based on Software Networks
Evolution is one of the essential characteristics of software system. Understanding their evolutions can lead to better software engineering practices. The existing work usually concerns on the simple statistics such as number of versions, software scale and the number of modules, neglecting the analysis of the evolutionary characteristics of software systems as a whole. This paper introduces the theory and methodology in complex networks to analyze the evolution of object-oriented (OO) software from a whole perspective. It uses the software class network to represent the OO software, and analyzes the evolutionary laws of OO software from the number of nodes and edges, average degree, degree distribution and small-world phenomenon. Empirical results on real-world OO software systems uncover some underlying evolution characteristics which give a better understanding of the complexity of the evolution of object-oriented software systems and are also important inspirations to software evolution modeling.