Recommendation System for Software Refactoring Using Innovization and Interactive Dynamic Optimization

Topics: Software engineering, Code refactoring, Software development Pages: 7 (5164 words) Published: October 10, 2014
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 optimization) [9] to analyze and explore the Pareto front interactively with the

developers. Our innovization algorithm starts by finding the most frequent refactoring pattern/operations between the set of nondominated refactoring solutions. 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. This feedback is then used to update the ranking of the suggested refactorings. After a number of

introduced code changes, a local search [1] is executed to update and adapt the set of refactoring solutions suggested by NSGA-II. We implemented our proposed approach and evaluated it on four open source systems, as well as one industrial system provided by our industrial partner.

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 nondominated 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...


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

Please join StudyMode to read the full document

You May Also Find These Documents Helpful

  • Bi Software Package Recommendation Essay
  • Essay about Railway Route Optimization System
  • Dynamic Systems theory Research Paper
  • Recommendations for the Riordan HRIS System Research Paper
  • Interactive physiology Muscular system Essay
  • Railway Route Optimization System Research Paper
  • Essay on Production Planning Optimization Using Goal Programming Method
  • Software Essay

Become a StudyMode Member

Sign Up - It's Free