10 likes | 186 Views
Improving the Reliability of Refactoring Engines. Jordan Ebel, Milos Gligoric, Darko Marinov. MOTIVATION. RELATED WORK.
E N D
Improving the Reliability of Refactoring Engines Jordan Ebel, Milos Gligoric, Darko Marinov MOTIVATION RELATED WORK Refactorings applied to computer code are alterations performed to the code that are not intended to change the program’s behavior. However, bugs exist in refactoring engines that can affect a program’s behavior. Eliminating bugs in refactoring engines is very important to help programmers develop reliable, bug free code. Previous research regarding refactorings has determined that refactorings are performed at a high frequency in large projects.1 In addition, previous research indicates that a small amount of refactorings preserve program behavior as expected. There is clearly a need for accurate and effective refactoring engines. REFACTORING ENGINES • Refactoring engines are used to apply refactorings to computer code. Common refactorings include: • Rename • Move • Extract • It is crucial for the refactoring engine to be free from bugs so the refactorings do not modify the program’s behavior. To write reliable programs, it is very important for programmers to have tools, such as refactoring engines, that do not introduce bugs into the code. Percentage of software maintenance changes that were refactorings and the number of lines of code for each project.1 PROGRESS • The method of identifying bugs in the refactoring engine of Eclipse has already found bugs in multiple refactorings: • Rename field • Rename method • Extract method • Encapsulate field • Current research is in automatically applying refactorings to large projects. public interface EncapsulateField{ public static final int F = 1; } public interface EncapsulateField { private static final int F = 1; public static int getF() { return F; } } ACKNOWLEDGEMENTS REFERENCES • Milos Gligoric • Professor Darko Marinov • P.U.R.E. committee • [1] G. Soares, B. Catao, C. Varjao, S. Aguiar, R. Gheyi, and T. Massoni. “Analyzing Refactorings on Software Repositories.” In Brazilian Symposium on Software Engineering, pages 164–173, 2011. Department of Computer Science University of Illinois at Urbana-Champaign