On the Influential Interactive Factors on Degrees of Design Decay: A Multi-Project Study

Daniel Coutinho, Anderson Uchôa, Caio Barbosa, Vinícius Soares, Alessandro Garcia, Marcelo Schots, Juliana Pereira, Wesley Klewerton Guez Assuncao

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Developers constantly perform code changes throughout the lifetime of a project. These changes may induce the introduction of design problems (design decay) over time, which may be reduced or accelerated by interacting with different factors (e.g., refactorings) that underlie each change. However, existing studies lack evidence about how these factors interact and influence design decay. Thus, this paper reports a study aimed at investigating whether and how (associations of) process and developer factors influence design decay. We studied seven software systems, containing an average of 45K commits in more than six years of project history. Design decay was characterized in terms of five internal quality attributes: cohesion, coupling, complexity, inheritance, and size. We observed and characterized 12 (sub-)factors and how they associate with design decay. To this end, we employed association rule mining. Moreover, we also differentiate between the associations found on modules with varying levels of decay. Process- and developer-related factors played a key role in discriminating these different levels of design decay. Then, we focused on analyzing the effects of potentially interacting factors regarding slightly- and largely-decayed modules. Finally, we observed diverging decay patterns in these modules. For example, individually, the developer-related sub-factor that represented first-time contributors, as well as the process-related one that represented the size of a change did not have negative effects on the changed classes. However, when analyzing specific factor interactions, we saw that changes in which both of these factors interacted tended to have a negative effect on the code, leading to decay.
Original languageEnglish
Title of host publicationInternational Conference on Software Analysis, Evolution and Reengineering (SANER) , Honolulu, HI, USA
Editors IEEE
Pages753-764
Number of pages12
ISBN (Electronic)9781665437868
DOIs
Publication statusPublished - 2022

Fields of science

  • 102 Computer Sciences
  • 102022 Software development

JKU Focus areas

  • Digital Transformation

Cite this