Evaluating the Extended Refactoring Guidelines

Wafa Basit, Fakhar Lodhi, Muhammad Usman Bhatti · 2012

Refactoring is a process that improves the internal structure of a program without changing its externally observable behavior. On the contrary, in many cases refactoring support for java outputs semantically non-equivalent code after refactoring. Also, the research on refactoring has mostly focused on restructuring a class, its parent and child classes only. However, refactoring will not be complete without updating other components in the program that may be impacted because of this change. In particular, clients and test classes associated with the restructured classes may be affected by this change and hence must be updated accordingly. In this work, we have identified the exact nature of changes required in these effected components and the elements contained in them. Using this information we have developed extended refactoring guidelines that address semantic violations of program behavior during refactoring. We also report our findings from an experiment performed to judge the usability and effectiveness of the extended guidelines for Move Method refactoring.

Read the paper · More papers on PaperTik