Visualization for Software Evolution Based on Logical Coupling and Module Coupling

In large scale software projects, developers make much software during long term. The source codes of software are frequently revised in the projects. The source codes evolve to become complex. Measurements of software complexity have been proposed, such as module coupling and logical coupling. In the case of the module coupling, even if developers copy pieces of source codes to a new module, the module coupling can not detect relationship between the pieces of the source codes although the pieces of the two modules have strong coupling. On the other hand, in the logical coupling, if two modules are accidentally revised at same time by a same developer, the logical coupling will judge strong coupling between the two modules although the modules have no relation. Therefore, we proposed a visualization technique and software complexity metrics for software evolution. A basic idea is that modules including strong module coupling should have strong logical coupling. If a gap between a set of modules including strong module couplings and a set of modules including strong logical couplings is large, the software complexity will be large. In addition, our visualization technique helps developers understand changes of software complexity. As a result of experiments in open source projects, we confirmed that the proposed metrics and visualization technique were able to detect high risky project with many bugs.

[1]  Stan Matwin,et al.  Mining the maintenance history of a legacy software system , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[2]  Juan Fernández-Ramil,et al.  Users and Developers: An Agent-Based Simulation of Open Source Software Evolution , 2006, SPW/ProSim.

[3]  Andreas Zeller,et al.  Mining version histories to guide software changes , 2005, Proceedings. 26th International Conference on Software Engineering.

[4]  W. J. Langford Statistical Methods , 1959, Nature.

[5]  Gail C. Murphy,et al.  Predicting source code changes by mining change history , 2004, IEEE Transactions on Software Engineering.

[6]  Juan Fernández-Ramil,et al.  Agent-based simulation of open source evolution , 2006, Softw. Process. Improv. Pract..

[7]  Michele Lanza,et al.  White Coats: Web-Visualization of Evolving Software in 3D , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[8]  Christoph Wysseier,et al.  Visualizing Feature Interaction in 3-D , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[9]  Michele Lanza,et al.  The evolution radar: visualizing integrated logical coupling information , 2006, MSR '06.

[10]  Ni Lar Thein,et al.  To Visualize the Coupling among Modules , 2005, 6th Asia-Pacific Symposium on Information and Telecommunication Technologies.

[11]  Harald C. Gall,et al.  CVS release history data for detecting logical couplings , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[12]  Michele Lanza,et al.  The evolution matrix: recovering software evolution using software visualization techniques , 2001, IWPSE '01.

[13]  Hongfang Liu,et al.  Building effective defect-prediction models in practice , 2005, IEEE Software.