1 / 1

Improving the Reliability of Refactoring Engines

Improving the Reliability of Refactoring Engines. Jordan Ebel, Milos Gligoric, Darko Marinov. MOTIVATION. RELATED WORK.

calum
Télécharger la présentation

Improving the Reliability of Refactoring Engines

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

More Related