arrow
Return

Multi-Criteria Code Refactoring Using Search-Based Software Engineering: An Industrial Case Study

delete2016-06-30
delete107
PRE
AI
A
Ali Ouni *
M
Marouane Kessentini
H
Houari Sahraoui
K
Kalyanmoy Deb
DOI:10.1145/2932631delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
One of the most widely used techniques to improve the quality of existing software systems is refactoring-the process of improving the design of existing code by changing its internal structure without altering its external behavior. While it is important to suggest refactorings that improve the quality and structure of the system, many other criteria are also important to consider, such as reducing the number of code changes, preserving the semantics of the software design and not only its behavior, and maintaining consistency with the previously applied refactorings. In this article, we propose a multi-objective search-based approach for automating the recommendation of refactorings. The process aims at finding the optimal sequence of refactorings that (i) improves the quality by minimizing the number of design defects, (ii) minimizes code changes required to fix those defects, (iii) preserves design semantics, and (iv) maximizes the consistency with the previously code changes. We evaluated the efficiency of our approach using a benchmark of six open-source systems, 11 different types of refactorings (move method, move field, pull up method, pull up field, push down method, push down field, inline class, move class, extract class, extract method, and extract interface) and six commonly occurring design defect types (blob, spaghetti code, functional decomposition, data class, shotgun surgery, and feature envy) through an empirical study conducted with experts. In addition, we performed an industrial validation of our technique, with 10 software engineers, on a large project provided by our industrial partner. We found that the proposed refactorings succeed in preserving the design coherence of the code, with an acceptable level of code change score while reusing knowledge from recorded refactorings applied in the past to similar contexts.
Keywords:
Search-based software engineering
refactoring
software maintenance
multi-objective optimization
software evolution
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
Papers:
1.2K
Citations:
3.4K

Organization

U
University of Michigan Dearborn
Scholars:
253
Papers: 207
Citations: 1.1K
U
universite de montreal
Scholars:
4.6W
Papers: 3.8W
Citations: 46
O
osaka university
Scholars:
2.6W
Papers: 1.9W
Citations: 30
U
university of michigan system
Scholars:
9.1W
Papers: 8.6W
Citations: 133
researcher View more organizations
Cited Papers

Cited Papers

On the nature of bladder sensation: The concept of sensory modulation
err2011-06-09
err0
PREAI
errS.G. De Wachter; R. Heeringa; G.A. van Koeveringe; J.I. Gillespie
errShare
errSave
Renal Function in Patients with Cystic Fibrosis
err2008-12-03
err0
PREAI
errMordechay Aladjem; Danny Lotan; Hayim Boichis; Sarah Orda; Daniel Katznelson
errShare
errSave
Hypoxia inhibits human bladder smooth muscle cell proliferation: A potential mechanism of bladder dysfunction
err2004-06-07
err0
PREAI
errD.J. Galvin; R.W.G. Watson; A. O'Neill; R.N.T. Coffey; C. Taylor; J.I. Gillespie; J.M. Fitzpatrick
errShare
errSave
errShare
errSave
Improving Software Modularization via Automated Analysis of Latent Topics and Dependencies
err2014-02-20
err88
errOAAI
errBavota, Gabriele; Gethers, Malcom; Oliveto, Rocco; Poshyvanyk, Denys; De Lucia, Andrea
errShare
errSave
errShare
errSave
Inhaled nitric oxide as a screening vasodilator agent in primary pulmonary hypertension
err1996-12-01
err0
PREAI
errO. Sitbon; F. Brenot; A. Denjean; A. Bergeron; F. Parent; R. Azarian; P. Hervé; B. Raffestin; G. Simonneau
errShare
errSave
researcher View more