Preview

Recommendation System for Software Refactoring Using Innovization and Interactive Dynamic Optimization

Better Essays
Open Document
Open Document
5164 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
Recommendation System for Software Refactoring Using Innovization and Interactive Dynamic Optimization
Recommendation System for Software Refactoring Using
Innovization and Interactive Dynamic Optimization
Wiem Mkaouer, Marouane
Kessentini, Slim Bechikh

Kalyanmoy Deb

Mel Ó Cinnéide

Michigan State University, MI, USA

University College Dublin, Ireland

kdeb@egr.msu.edu

mel.ocinneide@ucd.ie

University of Michigan, MI, USA

firstname@umich.edu
ABSTRACT

manually [2][3]. The developers identify which refactoring type to apply and where. Thus, the manual refactoring process can be a tedious task for developers. In the second category of refactoring studies [4][5][6], most of the proposed approaches generate as output a long sequence of refactorings that can be applied by developers to improve the quality of systems by fixing, for example, code smells [2]. Here the developers have to accept the entire solution in spite of the fact that they prefer, in general, stepwise interactive approaches where they have total control of the refactorings being applied. Few studies consider the suggestion of refactoring operations based on interaction between the developer and the refactoring tool.
We propose a novel interactive recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers based on their feedback and introduced code changes. Our approach starts by finding upfront a set of refactoring solutions using a multi-objective evolutionary algorithm NSGA-II, proposed by Deb [7], to improve software quality, reduce the number of refactorings and increase semantic coherence. The output of NSGA-II is a set of non-dominated refactoring solutions that find a good trade-off between these three objectives. One of the challenges when adapting a multiobjective technique to a software engineering problem is how to select the best solution from the set of non-dominated ones, called the Pareto front [8]. To this end, we propose, for the first time, the use of innovization (innovation through



References: [1] Basseur, M. Liefooghe, A. Le, K. and Burke, E. K. 2012. The efficiency of indicator-based local search for multi6 7

You May Also Find These Documents Helpful

Related Topics