On the Relation between Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Concerns

  • Vinícius Soares PUC-Rio
  • Anderson Oliveira PUC-Rio
  • Juliana Alves Pereira PUC-Rio
  • Ana Carla Bibano PUC-Rio
  • Alessandro Garcia PUC-Rio
  • Paulo Roberto Farah UFPR / UDESC
  • Silvia Regina Vergilio UFPR
  • Marcelo Schots UERJ
  • Caio Silva PUC-Rio
  • Daniel Coutinho PUC-Rio
  • Daniel Oliveira PUC-Rio
  • Anderson Uchôa PUC-Rio

Resumo


Developers need to consistently improve the internal structural quality of a program to address its maintainability and possibly other non-functional concerns. Refactoring is the main practice to improve code quality. Typical refactoring factors, such as their complexity and explicitness (i.e., their self-affirmation), may influence its effectiveness in improving key internal code attributes, such as enhancing cohesion or reducing its coupling, complexity and size. However, we still lack an understanding of whether such concerns and factors play a role on improving the code structural quality. Thus, this paper investigates the relationship between complexity, explicitness and effectiveness of refactorings and non-functional concerns in four projects. We study four non-functional concerns, namely maintainability, security, performance, and robustness. Our findings reveal that complex refactorings indeed have an impactful effect on the code structure, either improving or reducing the code structural quality. We also found that both self-affirmed refactorings and non-functional concerns are usually accompanied by complex refactorings, but tend to have a negative effect on code structural quality. Our findings can: (i) help researchers to improve the design of empirical studies and refactoring-related tools, and (ii) warn practitioners on which circumstances their refactorings may cause a negative impact on code quality.
Palavras-chave: self-affirmed refactorings, internal quality attributes, refactoring, non-functional concerns
Publicado
21/10/2020
SOARES, Vinícius et al. On the Relation between Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Concerns. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 34. , 2020, Natal. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 .