Assessing Refactoring Instances and the Maintainability Benefits of Them from Version Archives

For the development of high quality software, process quality assessment should be applied into development organization. So far, several process quality assessment methodologies are proposed and applied into a lot of organizations. In this paper, we propose an approach to assess instances of refactoring that is one of the key processes for quality improvement. The proposed approach can be done semi-automatically by investigating version archives in a configuration management system. We applied our proposed method to the Columba project which is an open source software project. The result of our preliminary case study shows that the frequency of defect introduction tends to decrease in the term after frequent refactoring.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  Harald C. Gall,et al.  On the relation of refactorings and software defect prediction , 2008, MSR '08.

[3]  Eleni Stroulia,et al.  Refactoring Detection based on UMLDiff Change-Facts Queries , 2006, 2006 13th Working Conference on Reverse Engineering.

[4]  Stephan Diehl,et al.  Identifying Refactorings from Source-Code Changes , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[5]  Miryung Kim,et al.  An empirical investigation into the role of API-level refactorings during software evolution , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[6]  Hajimu Iida,et al.  Project Replayer with Email Analysis - Revealing Contexts in Software Development , 2006, 2006 13th Asia Pacific Software Engineering Conference (APSEC'06).

[7]  Premkumar T. Devanbu,et al.  Fair and balanced?: bias in bug-fix datasets , 2009, ESEC/FSE '09.

[8]  Stuart Anderson,et al.  Requirements Evolution from Process to Product Oriented Management , 2001, PROFES.

[9]  Andrew P. Black,et al.  Gathering refactoring data: a comparison of four methods , 2008, WRT '08.

[10]  Premkumar T. Devanbu,et al.  The missing links: bugs and bug-fix commits , 2010, FSE '10.

[11]  Andreas Zeller,et al.  When do changes induce fixes? , 2005, ACM SIGSOFT Softw. Eng. Notes.

[12]  Hajimu Iida,et al.  Analysis of Bug Fixing Processes Using Program Slicing Metrics , 2010, PROFES.

[13]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.