Module-Based Large-Scale Software Evolution Based on Complex Networks

Tao Chen,Qing Gu,Shusen Wang,Xiaoan Chen,Daoxu Chen
DOI: https://doi.org/10.1109/cit.2008.4594776
2008-01-01
Abstract:Large-scale software systems usually consist of a huge number of modules, and have a series of releases along with these modules. This can be seen as software evolution. In recent years, researchers have put forward several models of software evolution by employing the theory of complex networks. In this paper we put forward a refined model of software evolution based on the BA model: module-based evolution. We theoretically prove that the power-law degree distribution can be held in our model. We also build a tool to construct and analyze the class diagrams of JDK (Java Development Kits) evolved from version 1.2 to 1.6. The class diagrams can be seen as complex networks under evolution. We apply the module-based evolution model to these complex networks and simulate the evolution of key network features such as average clustering coefficient and average path length. Compared with real networks, our model can precisely describe the evolution of these features, and be used to help developers understand the characteristics of large-scale software evolution.
What problem does this paper attempt to address?