Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
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 Methodology25 (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?
Other reviews under "Software Engineering": Date
Perspectives of system informatics: a comparative presentation of object-oriented programming with C++ and Java
Broy M. (ed), Zamulin A. (ed), Bjorner D., Springer-Verlag New York, Inc., Secaucus, NJ, 2002.  561, Type: Book (9783540430759)
Jul 3 2003
Relationship quality: the undervalued dimension of software quality
Russell B., Chatterjee S. Communications of the ACM 46(8): 85-89, 2003. Type: Article
Oct 14 2003
Executable JVM model for analytical reasoning: a study
Liu H., Moore J.  Interpreters, Virtual Machines and Emulators (Proceedings of the 2003 workshop, San Diego, California, Jun 12, 2003)15-23, 2003. Type: Proceedings
Sep 24 2003

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy