Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution
The stability and evolution of the structure of consecutive versions of a series of software architecture graphs are analysed using the theory of complex networks. Brief comparisons are drawn between the scale-free behaviour and second order phase transitions. On this basis a software design metric Icc is proposed. This software metric is used to quantify the evolution of the stability vs. maintainability of the software through various releases. It is demonstrated that the classes in the software graph are acquiring more out-going calls than incoming calls as the software ages. Three examples of software applications where maintainability and continuous refactoring are an inherent part of their development process are presented, in addition to a Sun Java2 framework where growth and backward compatibility are the more important factors for the development. Further to this a projected future evolution of the software structure and maintainability is calculated. Suggestions for future applications to software engineering and the natural sciences are briefly presented.
complexity scale-free software metric software measurement lehmans laws directed network power law