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

Refactoring is a widely adopted practice for improving code comprehension and for removing severe structural problems in a project. When refactorings affect the system architecture, they are called architectural refactorings. Unfortunately, developers usually do not know when and how they should apply refactorings to remove architectural problems. Nevertheless, they might be more susceptible to applying architectural refactoring if they rely on code smells and code refactoring – two concepts that they usually deal with through their routine programming activities. To investigate if smells can serve as indicators of architectural refactoring opportunities, we conducted a retrospective study over the commit history of 50 software projects. We analyzed 52,667 refactored elements to investigate if they had architectural problems that could have been indicated by automatically-detected smells. We considered purely structural refactorings to identify elements that were likely to have architectural problems. We found that the proportion of refactored elements without smells is much lower than those refactored with smells. By analyzing the latter, we concluded that smells can be used as indicators of architectural refactoring opportunities when the affected source code is deteriorated, i.e., the code hosting two or more smells. For example, when God Class or Complex Class appear together with other smells, they are indicators of architectural refactoring opportunities. In general, smells that often co-occurred with other smells (67.53%) are indicators of architectural refactoring opportunities in most cases (88.53% of refactored elements). Our study also enables us to derive a catalog with patterns of smells that indicate refactoring opportunities to remove specific types of architectural problems. These patterns can guide developers and make them more susceptible to apply architectural refactorings.

Mon 13 Jul

Displayed time zone: (UTC) Coordinated Universal Time change

16:30 - 17:30
Session 2: QualityResearch / Tool Demonstration at ICPC
Chair(s): Gemma Catolino Delft University of Technology
16:30
12m
Paper
How Does Incomplete Composite Refactoring Affect Internal Quality Attributes?
Research
Ana Carla Bibiano PUC-Rio, Vinícius Soares PUC-Rio, Daniel Coutinho PUC-Rio, Eduardo Fernandes PUC-Rio, João Lucas Correia Federal University of Alagoas, Kleber Tarcísio UFCG, Anderson Oliveira PUC-Rio, Alessandro Garcia PUC-Rio, Rohit Gheyi Federal University of Campina Grande, Márcio Ribeiro Federal University of Alagoas, Brazil, Baldoino Fonseca , Caio Barbosa UFAL, Daniel Oliveira PUC-Rio
Media Attached
16:42
12m
Paper
An Empirical Study of Quick Remedy Commits
Research
Fengcai Wen , Csaba Nagy Software Institute - USI, Lugano, Switzerland, Michele Lanza Universita della Svizzera italiana (USI), Gabriele Bavota Università della Svizzera italiana
Pre-print Media Attached
16:54
12m
Paper
When Are Smells Indicators of Architectural Refactoring Opportunities? A Study of 50 Software Projects
Research
Leonardo Da Silva Sousa Carnegie Mellon University, USA, Willian Oizumi PUC-Rio, Alessandro Garcia PUC-Rio, Anderson Oliveira PUC-Rio, Diego Cedrim Pontifical Catholic University of Rio de Janeiro, Carlos Lucena
Pre-print Media Attached
17:06
12m
Paper
Refactoring Android-specific Energy Smells: A Plugin for Android Studio
Tool Demonstration
Emanuele Iannone University of Salerno, Fabiano Pecorelli University of Salerno, Dario Di Nucci Tilburg University, Fabio Palomba University of Salerno, Andrea De Lucia University of Salerno
Media Attached
17:18
12m
Paper
BugVis: Commit Slicing for Defect Visualisation
Tool Demonstration
David Bowes Lancaster University, Jean Petric Lancaster University, Tracy Hall Lancaster University
Media Attached