2014 · 72 citations · 25 references
ComputingComputer ScienceDesign AutomationRecommender SystemsSoftware EngineeringReverse EngineeringSoftware RefactoringSoftware ReuseSoftware TestingStatic Code AnalysisAutomated RefactoringExploratory Case StudyProgram ComprehensionProgram Comprehension For RefactoringRefactoringRefactoring DetectionRefactoring Opportunity DetectionSimilarity Measures
Extract Method is a key refactoring for improving program comprehension. However, recent empirical research shows that refactoring tools designed to automate Extract Methods are often underused. To tackle this issue, we propose a novel approach to identify and rank Extract Method refactoring opportunities that are directly automated by IDE-based refactoring tools. Our approach aims to recommend new methods that hide structural dependencies that are rarely used by the remaining statements in the original method. We conducted an exploratory study to experiment and define the best strategies to compute the dependencies and the similarity measures used by the proposed approach. We also evaluated our approach in a sample of 81 extract method opportunities generated for JUnit and JHotDraw, achieving a precision of 48% (JUnit) and 38% (JHotDraw).
25
Refactoring object-oriented frameworks
William F. Opdyke · 1992 · 1K citations
Mining metrics to predict component failures
Nachiappan Nagappan, Thomas Ball, Andreas Zeller · 2006 · 779 citations