Sie befinden Sich nicht im Netzwerk der Universität Paderborn. Der Zugriff auf elektronische Ressourcen ist gegebenenfalls nur via VPN oder Shibboleth (DFN-AAI) möglich. mehr Informationen...
ACM transactions on software engineering and methodology, 2016-08, Vol.25 (3), p.1-53
2016

Details

Autor(en) / Beteiligte
Titel
Multi-Criteria Code Refactoring Using Search-Based Software Engineering: An Industrial Case Study
Ist Teil von
  • ACM transactions on software engineering and methodology, 2016-08, Vol.25 (3), p.1-53
Ort / Verlag
ACM
Erscheinungsjahr
2016
Link zum Volltext
Quelle
ACM Digital Library
Beschreibungen/Notizen
  • 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.
Sprache
Englisch
Identifikatoren
ISSN: 1049-331X
eISSN: 1557-7392
DOI: 10.1145/2932631
Titel-ID: cdi_proquest_miscellaneous_1855383331

Weiterführende Literatur

Empfehlungen zum selben Thema automatisch vorgeschlagen von bX