A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob
A Large Scale Empirical Study of the Impact of Spaghetti Code and ? Blob Anti-patterns on Program Comprehension a < b c d e Cristiano Politowski , , Foutse Khomh , Simone Romano , Giuseppe Scanniello , Fabio Petrillo , a f Yann-Gaël Guéhéneuc and Abdou Maiga aConcordia University, Montreal, Quebec, Canada bPolytechnique Montréal, Montreal, Quebec, Canada cUniversity of Bari, Bari, Italy dUniversity of Basilicata, Potenza, Italy eUniversité du Québec à Chicoutimi, Chicoutimi, Quebec, Canada fUniversité Félix Houphouet Boigny, Abidjan, Ivory Coast ARTICLEINFO Abstract Keywords: Context: Several studies investigated the impact of anti-patterns (i.e., “poor” solutions to recurring Anti-patterns design problems) during maintenance activities and reported that anti-patterns significantly affect the Blob developers’ effort required to edit files. However, before developers edit files, they must understand Spaghetti Code the source code of the systems. This source code must be easy to understand by developers. Program Comprehension Objective: In this work, we provide a complete assessment of the impact of two instances of two Java 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éal (Canada) with 24 participants; at Carlton University (Canada) with 30 par- ticipants; and at University Basilicata (Italy) with 79 participants. Results: We collect data from 372 tasks obtained thanks to 133 different participants from the three universities. We use three metrics to assess the developers’ comprehension of the source code: (1) the duration to complete each task; (2) their percentage of correct answers; and, (3) the NASA task load index for their effort.
[Show full text]