Write a Blog >>
ICPC 2020
Mon 13 - Wed 15 July 2020
co-located with ICSE 2020
Mon 13 Jul 2020 16:30 - 16:42 at ICPC - Session 2: Quality Chair(s): Gemma Catolino

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

icpc-2020-research
16:30 - 17:30: Research - Session 2: Quality at ICPC
Chair(s): Gemma CatolinoDelft University of Technology
icpc-2020-research16:30 - 16:42
Paper
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-Rio
Media Attached
icpc-2020-research16:42 - 16:54
Paper
Fengcai Wen, Csaba NagySoftware Institute - USI, Lugano, Switzerland, Michele LanzaUniversita della Svizzera italiana (USI), Gabriele BavotaUniversità della Svizzera italiana
Pre-print Media Attached
icpc-2020-research16:54 - 17:06
Paper
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 Lucena
Pre-print Media Attached
icpc-2020-tool-demonstration17:06 - 17:18
Paper
Emanuele IannoneUniversity of Salerno, Fabiano PecorelliUniversity of Salerno, Dario Di NucciTilburg University, Fabio PalombaUniversity of Salerno, Andrea De LuciaUniversity of Salerno
Media Attached
icpc-2020-tool-demonstration17:18 - 17:30
Paper
David BowesLancaster University, Jean PetricLancaster University, Tracy HallLancaster University
Media Attached