Extract Method Refactoring: Challenges, Opportunities, and Recent Application
Refactoring is a critical task in software maintenance and is usually performed to enforce better design and coding practices, while coping with design defects. The Extract Method refactoring is widely used for merging duplicate code fragments into a single new method. Several studies attempted to recommend Extract Method refactoring opportunities using different techniques, including program slicing, program dependency graph analysis, change history analysis, structural similarity, and feature extraction. However, irrespective of the method, most of the existing approaches interfere with the developer’s workflow: they require the developer to stop coding and analyze the suggested opportunities and consider all refactoring suggestions in the entire project without focusing on the development context. To increase the adoption of the Extract Method refactoring, in this tutorial, we aim to show the effectiveness of machine learning and deep learning algorithms for its recommendation while maintaining the workflow of the developer. Finally, we demonstrate case study on how Extract Method technique can be used to address the aforementioned challenges by making the predictions of Extract Method refactoring more practical, and actionable.
Mon 10 OctDisplayed time zone: Eastern Time (US & Canada) change
15:30 - 17:00
|Extract Method Refactoring: Challenges, Opportunities, and Recent Application|
Eman Abdullah AlOmar Stevens Institute of Technology, Mohamed Wiem Mkaouer Rochester Institute of Technology, Le Nguyen Rochester Institute of Technology