How do Code Smell Co-occurrences Removal Impact Internal Quality Attributes? A Developers’ Perspective

This website contains complementary data to the submitted paper.

Code smells are poor code structures that might harm the software quality and evolution. However, recent work has shown that only individual occurrences of smells may not be enough to assess the real impact that these smells can bring on systems. In this context,the co-occurrences of code smells, i.e., occurrences of more than one code smell in the same class or same method, can be better indicators of design problems for software quality. Despite its importance as an indicator of design problems, we have little known about their impact of removing the co-occurrence of smells via software refactoring on internal quality attributes, such as coupling, cohesion,complexity, and inheritance. We aim at addressing this gap through a qualitative study with 14 developers. To this end, we analyze there factorings employed by developers during the removal of 60 codes mells co-occurrences, during 3 months in 5 closed-source projects. We observe (i) impact of code smells co-occurrences on internal quality attributes, (ii) developers’ perceptions during the removal of code smells co-occurrence via refactoring activities, (iii) which are the most harmful co-occurrences to internal quality attributes,and (iv) which are the most harmful co-occurrences from the developers’ perspective. Our findings indicate that: (i) the refactoring of some types of code smells co-occurrences (e.g., Dispersed Coupling–God Class) indicated improvement for the quality attributes, (ii)refactoring code smells co-occurrences according to the developers is difficult mainly due to the understanding of the code and complexity refactoring methods, (iii) developers still have insecurities regarding the identification and refactoring of code smells and their co-occurrences.

# Artefact Description
1 S1 Metrics Before Quality measurement with code smells co-occurrences
2 S1 Metrics After Quality measurement without code smells co-occurrences
3 S2 Metrics Before Quality measurement with code smells co-occurrences
4 S2 Metrics After Quality measurement without code smells co-occurrences
5 S3 Metrics Before Quality measurement with code smells co-occurrences
6 S3 Metrics After Quality measurement without code smells co-occurrences
7 S4 Metrics Before Quality measurement with code smells co-occurrences
8 S4 Metrics After Quality measurement without code smells co-occurrences
9 S5 Metrics Before Quality measurement with code smells co-occurrences
10 S5 Metrics After Quality measurement without code smells co-occurrences
11 Code smells detected S1 Code smells detected
12 Code smells detected S2 Code smells detected
13 Code smells detected S3 Code smells detected
14 Code smells detected S4 Code smells detected
15 Code smells detected S5 Code smells detected
16 Diary Template Diary used by developers
17 Analysis RQ2 RQ2
18 Qualitative Analysis RQ3 RQ3

Any question/suggestion please contact the authors of this work.

# Name E-mail
1 Júlio Martins juliomserafim@gmail.com
2 Carla Bezerra carlailane@gmail.com
3 Anderson Uchôa auchoa@inf.puc-rio.br
4 Alessandro Garcia afgarcia@inf.puc-rio.br