How Does Incomplete Composite Refactoring Affect Internal Quality Attributes?
Program refactoring consists of code changes applied to improve the internal structure of a program and, as a consequence, its comprehensibility. Recent studies indicate that developers often perform composite refactorings, i.e., a set of two or more interrelated single refactorings. Recent studies also recommend certain patterns of composite refactorings to fully remove poor code structures, i.e, code smells, thus further improving the program comprehension. However, other recent studies report that composite refactorings often fail to fully remove code smells. Given their failure to achieve this purpose, these composite refactorings are considered incomplete, i.e, they are not able to entirely remove a smelly structure. Unfortunately, there is no study providing an in-depth analysis of the incompleteness nature of many composites and their possibly partial impact on improving, maybe decreasing, internal quality attributes. This paper identifies the most common forms of incomplete composites, and their effect on quality attributes, such as coupling and cohesion, which are known to have an impact on program comprehension. We analyzed 353 incomplete composite refactorings in 5 software projects, two common code smells (Feature Envy and God Class), and four internal quality attributes. Our results reveal that incomplete composite refactorings with at least one Extract Method are often (71%) applied without Move Methods on smelly classes. We have also found that most incomplete composite refactorings (58%) tended to at least maintain the internal structural quality of smelly classes, thereby not causing more harm to program comprehension. We also discuss the implications of our findings to the research and practice of composite refactoring.
Mon 13 Jul Times are displayed in time zone: (UTC) Coordinated Universal Time change
|16:30 - 16:42|
Ana Carla BibianoPUC-Rio, Vinícius SoaresPUC-Rio, Daniel CoutinhoPUC-Rio, Eduardo FernandesPUC-Rio, João Lucas CorreiaFederal University of Alagoas, Kleber TarcísioUFCG, Anderson OliveiraPUC-Rio, Alessandro GarciaPUC-Rio, Rohit GheyiFederal University of Campina Grande, Márcio RibeiroFederal University of Alagoas, Brazil, Baldoino Fonseca, Caio BarbosaUFAL, Daniel OliveiraPUC-RioMedia Attached
|16:42 - 16:54|
Fengcai Wen, Csaba NagySoftware Institute - USI, Lugano, Switzerland, Michele LanzaUniversita della Svizzera italiana (USI), Gabriele BavotaUniversità della Svizzera italianaPre-print Media Attached
|16:54 - 17:06|
When Are Smells Indicators of Architectural Refactoring Opportunities? A Study of 50 Software Projects
Leonardo Da Silva SousaCarnegie Mellon University, USA, Willian OizumiPUC-Rio, Alessandro GarciaPUC-Rio, Anderson OliveiraPUC-Rio, Diego CedrimPontifical Catholic University of Rio de Janeiro, Carlos LucenaPre-print Media Attached
|17:06 - 17:18|
Emanuele IannoneUniversity of Salerno, Fabiano PecorelliUniversity of Salerno, Dario Di NucciTilburg University, Fabio PalombaUniversity of Salerno, Andrea De LuciaUniversity of SalernoMedia Attached
|17:18 - 17:30|