Constellation, le dépôt institutionnel de l'Université du Québec à Chicoutimi

A large scale empirical study of the impact of Spaghetti Code and Blob anti-patterns on program comprehension

Politowski Cristiano, Khomh Foutse, Romano Simone, Scanniello Giuseppe, Petrillo Fabio, Guéhéneuc Yann-Gaël et Maiga Abdou. (2020). A large scale empirical study of the impact of Spaghetti Code and Blob anti-patterns on program comprehension. Information and Software Technology, 122, p. 106278.

[thumbnail of 2020Politowski.pdf]
Prévisualisation
PDF - Version soumise
Disponible sous licence Creative Commons (CC-BY-NC-ND 2.5).

549kB

URL officielle: http://dx.doi.org/doi:10.1016/j.infsof.2020.106278

Résumé

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é al (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 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.

Conclusions We report that, although single occurrences of Blob or Spaghetti code anti-patterns have little effect on code comprehension, two occurrences of either Blob or Spaghetti Code significantly increases the developers’ time spent in their tasks, reduce their percentage of correct answers, and increase their effort. Hence, we recommend that developers act on both anti-patterns, which should be refactored out of the source code whenever possible. We also recommend further studies on combinations of anti-patterns rather than on single anti-patterns one at a time.

Type de document:Article publié dans une revue avec comité d'évaluation
ISSN:09505849
Volume:122
Pages:p. 106278
Version évaluée par les pairs:Non
Date:Juin 2020
Identifiant unique:10.1016/j.infsof.2020.106278
Sujets:Sciences naturelles et génie > Sciences mathématiques > Informatique
Département, module, service et unité de recherche:Départements et modules > Département d'informatique et de mathématique
Mots-clés:anti-patterns, blob, Spaghetti code, program comprehension, Java
Déposé le:11 févr. 2021 19:36
Dernière modification:11 févr. 2021 19:36
Afficher les statistiques de telechargements

Éditer le document (administrateurs uniquement)

Creative Commons LicenseSauf indication contraire, les documents archivés dans Constellation sont rendus disponibles selon les termes de la licence Creative Commons "Paternité, pas d'utilisation commerciale, pas de modification" 2.5 Canada.

Bibliothèque Paul-Émile-Boulet, UQAC
555, boulevard de l'Université
Chicoutimi (Québec)  CANADA G7H 2B1
418 545-5011, poste 5630