ACM Home Page
Please provide us with feedback. Feedback
Drivers for software refactoring decisions
Full text PdfPdf (422 KB)
Source International Symposium on Empirical Software Engineering archive
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering table of contents
Rio de Janeiro, Brazil
SESSION: Architecture and refactoring table of contents
Pages: 297 - 306  
Year of Publication: 2006
ISBN:1-59593-218-6
Authors
Mika V. Mäntylä  Helsinki University of Technology
Casper Lassenius  Helsinki University of Technology
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 21,   Downloads (12 Months): 94,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1159733.1159778
What is a DOI?

ABSTRACT

This paper presents an empirical study of drivers for software refactoring decisions. We studied the refactoring decisions made by 37 students evaluating ten methods of a purposefully constructed Java program. The decision rationales reported by the evaluators were coded to identify the drivers behind the decisions. The identified drivers were categorized into Structure, Documentation, Visual Representation, and General drivers. The evaluators had conflicting opinions both regarding the internal quality of the methods and refactoring decisions. Complex code problems were detected only by experienced evaluators. Using regression analysis, we looked at the predictive value of drivers explaining the refactoring decisions. The most salient driver leading to a favourable refactoring decision was method size. This study provides information of the refactoring decisions and helps form a basis for creating code problem detectors. By comparing automatic detection and the identified drivers we gained understanding of code problems that are difficult or impossible to detect automatically, for example Poor Algorithm. Issues detected only by experienced developers, and code problems for which the human eye surpasses automatic detection indicate good areas for developer education.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Arnold,R.S., "Software restructuring," Proceedings of the IEEE, vol. 77, no. 4, 1989, pp. 607--617.
 
2
 
3
Fowler,M., Refactoring: Improving the Design of Existing Code, Boston: Addison-Wesley, 2000.
 
4
 
5
 
6
 
7
 
8
Lehman,M.M., "On Understanding Laws, Evolution, and Conservation in the Large-Program Life Cycle," The Journal of Systems and Software, vol. 1, 1980, pp. 213--221.
 
9
Mäntylä,M.V., "An experiment on subjective evolvability evaluation of object-oriented software: explaining factors and interrater agreement," in International Symposium on Empirical Software Engineering, 2005, pp. 277--286.
 
10
 
11
 
12
Miles,M.B. and Huberman,M.A., Qualitative Data Analysis, Thousand Oaks, California, USA: Sage Publications, 1994.
 
13
Moilanen,T. and Roponen,S., Kvalitativiisen aineiston analyysi Atlas.ti-ohjelman avulla, Helsinki, Finland: Kuluttajatutkimuskeskus, 1994.
 
14
 
15
 
16
 
17
 
18
 
19


Collaborative Colleagues:
Mika V. Mäntylä: colleagues
Casper Lassenius: colleagues