Supporting software evolution analysis with historical dependencies and defect information

More than 90% of the cost of software is due to maintenance and evolution. Understanding the evolution of large software systems is a complex problem, which requires the use of various techniques and the support of tools. Several software evolution approaches put the emphasis on structural entities such as packages, classes and structural relationships. However, software evolution is not only about the history of software artifacts, but it also includes other types of data such as problem reports, mailing list archives etc. We propose an approach which focuses on historical dependencies and defects. We claim that they play an important role in software evolution and they are complementary to techniques based on structural information. We use historical dependencies and defect information to learn about a software system and detect potential problems in the source code. Moreover, based on design flaws detected in the source code, we predict the location of future bugs to focus maintenance activities on the buggy parts of the system. We validated our defect prediction by comparing it with the actual defects reported in the bug tracking system.

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

[2]  Michele Lanza,et al.  Reverse Engineering with Logical Coupling , 2006, 2006 13th Working Conference on Reverse Engineering.

[3]  Stéphane Ducasse,et al.  Yesterday's Weather: guiding early reverse engineering efforts by summarizing the evolution of changes , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

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

[5]  Harald C. Gall,et al.  Journal of Software Maintenance and Evolution: Research and Practice Visualizing Feature Evolution of Large-scale Software Based on Problem and Modification Report Data , 2022 .

[6]  Stéphane Ducasse,et al.  Characterizing the evolution of class hierarchies , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[7]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[8]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[9]  Michele Lanza,et al.  Software bugs and evolution: a visual approach to uncover their relationship , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

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

[11]  Martin Pinzger,et al.  "A Bug's Life" Visualizing a Bug Database , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[12]  Michele Lanza,et al.  Applying the evolution radar to PostgreSQL , 2006, MSR '06.

[13]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[14]  Serge Demeyer,et al.  FAMIX 2. 1-the FAMOOS information exchange model , 1999 .

[15]  Tom Mens,et al.  Future trends in software evolution metrics , 2001, IWPSE '01.

[16]  Harald C. Gall,et al.  Improving evolvability through refactoring , 2005, ACM SIGSOFT Softw. Eng. Notes.

[17]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[18]  George Winter,et al.  A bug’s life: MRSA has become a key election issue. But what is the truth behind the headlines? Biomedical scientist George Winter explains , 2005 .

[19]  A. Zeller,et al.  Predicting Defects for Eclipse , 2007, Third International Workshop on Predictor Models in Software Engineering (PROMISE'07: ICSE Workshops 2007).

[20]  Harald C. Gall,et al.  Visualizing multiple evolution metrics , 2005, SoftVis '05.

[21]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[22]  Michele Lanza,et al.  A Flexible Framework to Support Collaborative Software Evolution Analysis , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[23]  Harald C. Gall,et al.  Visualizing software release histories: the use of color and third dimension , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).