Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Multi-criteria code refactoring using search-based software engineering: an industrial case study
Ouni A., Kessentini M., Sahraoui H., Inoue K., Deb K.  ACM Transactions on Software Engineering and Methodology 25 (3): Article No. 23, 2016. Type: Article
Date Reviewed: May 11 2017

According to the authors, code refactoring aims at “improving the design of existing code by changing its internal structure without [modifying] its external behavior.” The decisions of where the software should be refactored and which refactorings should be applied are not trivial, and some approaches have emerged aimed at automating this decision.

Search-based techniques define the refactoring problem as an optimization problem, where the goal is to automatically find a refactoring solution that optimizes one or several objectives. This paper proposes a multi-criteria search-based refactoring solution that considers four objectives: minimizing the number or design defects, minimizing the number of code changes, preserving the semantic coherence of the program with respect to the domain semantics, and maximizing the consistency with the history of previously applied code changes.

It is a quite long and dense paper mainly oriented toward researchers in the field. The first part is devoted to explaining how the refactoring process has been modeled as a multi-objective problem, and several interesting metrics are proposed to measure design coherence. Then, the adaptation of the NSGA-II multi-objective search technique for its application to the refactoring problem is detailed. After that, the experiment that was carried out to evaluate the feasibility and efficiency of the approach is described.

Evidence suggests that this solution outperforms other approaches, is useful for software engineers in real-world settings, and has a bigger impact on the improvement of the design quality of the system than other existing approaches. An industrial case study was also performed to evaluate the efficiency of the refactoring tool in practice, demonstrating that the tool can provide similar refactorings to the ones that can be manually suggested, and in a faster way.

It is a methodologically sound work and a step forward toward the automation of refactoring, with practical utility in real-world projects.

Reviewer:  Angelica de Antonio Review #: CR145270 (1707-0466)
Bookmark and Share
 
Software Engineering (D.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Software Engineering": Date
Coding-data portability in systematic literature reviews: a W3C’s open annotation approach
Díaz O., Medina H., Anfurrutia F.  EASE 2019 (Proceedings of the Evaluation and Assessment on Software Engineering, Copenhagen, Denmark,  Apr 15-17, 2019) 178-187, 2019. Type: Proceedings
Apr 9 2021
Automotive systems and software engineering: state of the art and future trends
Dajsuren Y., van den Brand M.,  Springer International Publishing, New York, NY, 2019. 367 pp. Type: Book (978-3-030121-56-3)
Nov 4 2020
 Engineering resilient collective adaptive systems by self-stabilisation
Viroli M., Audrito G., Beal J., Damiani F., Pianini D.  ACM Transactions on Modeling and Computer Simulation 28(2): 1-28, 2018. Type: Article
Jul 8 2020
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2021 ThinkLoud, Inc.
Terms of Use
| Privacy Policy