Publication | Closed Access
Recommendation system for software refactoring using innovization and interactive dynamic optimization
91
Citations
17
References
2014
Year
Unknown Venue
Software MaintenanceEngineeringIndustrial EngineeringNovel Recommendation ToolSoftware EngineeringSoftware AnalysisAutomated Software EngineeringInformation RetrievalSoftware AspectSoftware PracticeSearch-based Software EngineeringSoftware MiningSoftware Re-engineeringDesignComputer ScienceRecommendation SystemSoftware DesignCode RefactoringRefinement TechniqueProgram AnalysisSoftware TestingInteractive Dynamic OptimizationSemantic CoherenceHeuristic Search
We propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of non-dominated refactoring solutions using NSGA-II to improve software quality, reduce the number of refactorings and increase semantic coherence. The generated non-dominated refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the suggested refactorings are ranked and suggested to the developer one by one. The developer can approve, modify or reject each suggested refactoring, and this feedback is used to update the ranking of the suggested refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of refactoring solutions suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic refactoring approach performed significantly better than three other search-based refactoring techniques, manual refactorings, and one refactoring tool not based on heuristic search.
| Year | Citations | |
|---|---|---|
Page 1
Page 1