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