A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension
Cristiano Politowski, Foutse Khomh, Simone Romano, Giuseppe, Scanniello, Fabio Petrillo, Yann-Ga\"el Gu\'eh\'eneuc, Abdou Maiga

TL;DR
This large-scale empirical study investigates how multiple instances of Blob and Spaghetti Code anti-patterns negatively impact developers' understanding, increasing effort and decreasing accuracy, thus emphasizing the importance of refactoring these anti-patterns.
Contribution
The study provides comprehensive empirical evidence on the detrimental effects of multiple anti-pattern occurrences on program comprehension, highlighting the need for refactoring strategies.
Findings
Multiple anti-patterns significantly increase task duration.
Two occurrences reduce correctness in comprehension tasks.
Effort, measured by NASA TLX, increases with anti-pattern frequency.
Abstract
Context: Several studies investigated the impact of anti-patterns (i.e., "poor" solutions to recurring design problems) during maintenance activities and reported that anti-patterns significantly affect the developers' effort required to edit files. However, before developers edit files, they must understand the source code of the systems. This source code must be easy to understand by developers. Objective: In this work, we provide a complete assessment of the impact of two instances of two anti-patterns, Blob or Spaghetti Code, on program comprehension. Method: We analyze the impact of these two anti-patterns through three empirical studies conducted at Polytechnique Montr\'eal (Canada) with 24 participants; at Carlton University (Canada) with 30 participants; and at University Basilicata (Italy) with 79 participants. Results: We collect data from 372 tasks obtained thanks to 133…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
