A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension. Politowski, C., Khomh, F., Romano, S., Scanniello, G., Petrillo, F., Gu�h�neuc, Y., & Maiga, A. Information and Software Technology (IST), 122:106278, Elsevier, June, 2020. 17 pages.
Paper abstract bibtex \textbfContext. 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. \textbfObjective. 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. \textbfMethod. 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. \textbfResults. 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. \textbfConclusions. 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.
@ARTICLE{Politowski20-IST-BlobAndSpaghetti,
AUTHOR = {Cristiano Politowski and Foutse Khomh and Simone Romano and
Giuseppe Scanniello and Fabio Petrillo and Yann-Ga�l Gu�h�neuc and
Abdou Maiga},
JOURNAL = {Information and Software Technology (IST)},
TITLE = {A Large Scale Empirical Study of the Impact of Spaghetti
Code and Blob Anti-patterns on Program Comprehension},
YEAR = {2020},
MONTH = {June},
NOTE = {17 pages.},
OPTNUMBER = {},
PAGES = {106278},
VOLUME = {122},
EDITOR = {G�nther Ruhe},
KEYWORDS = {Topic: <b>Code and design smells</b>, Venue: <b>IST</b>},
PUBLISHER = {Elsevier},
URL = {http://www.ptidej.net/publications/documents/IST20a.doc.pdf},
ABSTRACT = {\textbf{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. \textbf{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.
\textbf{Method.} We analyze the impact of these two anti-patterns
through three empirical studies conducted at Polytechnique Montr{\'e}
al (Canada) with 24 participants; at Carlton University (Canada) with
30 participants; and at University Basilicata (Italy) with 79
participants. \textbf{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. \textbf{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.}
}
Downloads: 0
{"_id":"XEckb4GWDSCBuy66n","bibbaseid":"politowski-khomh-romano-scanniello-petrillo-guhneuc-maiga-alargescaleempiricalstudyoftheimpactofspaghetticodeandblobantipatternsonprogramcomprehension-2020","authorIDs":["AfJhKcg96muyPdu7S"],"author_short":["Politowski, C.","Khomh, F.","Romano, S.","Scanniello, G.","Petrillo, F.","Gu�h�neuc, Y.","Maiga, A."],"bibdata":{"bibtype":"article","type":"article","author":[{"firstnames":["Cristiano"],"propositions":[],"lastnames":["Politowski"],"suffixes":[]},{"firstnames":["Foutse"],"propositions":[],"lastnames":["Khomh"],"suffixes":[]},{"firstnames":["Simone"],"propositions":[],"lastnames":["Romano"],"suffixes":[]},{"firstnames":["Giuseppe"],"propositions":[],"lastnames":["Scanniello"],"suffixes":[]},{"firstnames":["Fabio"],"propositions":[],"lastnames":["Petrillo"],"suffixes":[]},{"firstnames":["Yann-Ga�l"],"propositions":[],"lastnames":["Gu�h�neuc"],"suffixes":[]},{"firstnames":["Abdou"],"propositions":[],"lastnames":["Maiga"],"suffixes":[]}],"journal":"Information and Software Technology (IST)","title":"A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension","year":"2020","month":"June","note":"17 pages.","optnumber":"","pages":"106278","volume":"122","editor":[{"firstnames":["G�nther"],"propositions":[],"lastnames":["Ruhe"],"suffixes":[]}],"keywords":"Topic: <b>Code and design smells</b>, Venue: <b>IST</b>","publisher":"Elsevier","url":"http://www.ptidej.net/publications/documents/IST20a.doc.pdf","abstract":"\\textbfContext. 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. \\textbfObjective. 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. \\textbfMethod. 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. \\textbfResults. 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. \\textbfConclusions. 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.","bibtex":"@ARTICLE{Politowski20-IST-BlobAndSpaghetti,\r\n AUTHOR = {Cristiano Politowski and Foutse Khomh and Simone Romano and \r\n Giuseppe Scanniello and Fabio Petrillo and Yann-Ga�l Gu�h�neuc and \r\n Abdou Maiga},\r\n JOURNAL = {Information and Software Technology (IST)},\r\n TITLE = {A Large Scale Empirical Study of the Impact of Spaghetti \r\n Code and Blob Anti-patterns on Program Comprehension},\r\n YEAR = {2020},\r\n MONTH = {June},\r\n NOTE = {17 pages.},\r\n OPTNUMBER = {},\r\n PAGES = {106278},\r\n VOLUME = {122},\r\n EDITOR = {G�nther Ruhe},\r\n KEYWORDS = {Topic: <b>Code and design smells</b>, Venue: <b>IST</b>},\r\n PUBLISHER = {Elsevier},\r\n URL = {http://www.ptidej.net/publications/documents/IST20a.doc.pdf},\r\n ABSTRACT = {\\textbf{Context.} Several studies investigated the \r\n impact of anti-patterns (i.e., poor solutions to recurring design \r\n problems) during maintenance activities and reported that \r\n anti-patterns significantly affect the developers' effort required to \r\n edit files. However, before developers edit files, they must \r\n understand the source code of the systems. This source code must be \r\n easy to understand by developers. \\textbf{Objective.} In this work, \r\n we provide a complete assessment of the impact of two instances of \r\n two anti-patterns, Blob or Spaghetti Code, on program comprehension. \r\n \\textbf{Method.} We analyze the impact of these two anti-patterns \r\n through three empirical studies conducted at Polytechnique Montr{\\'e} \r\n al (Canada) with 24 participants; at Carlton University (Canada) with \r\n 30 participants; and at University Basilicata (Italy) with 79 \r\n participants. \\textbf{Results.} We collect data from 372 tasks \r\n obtained thanks to 133 different participants from the three \r\n universities. We use three metrics to assess the developers' \r\n comprehension of the source code: (1) the duration to complete each \r\n task; (2) their percentage of correct answers; and, (3) the NASA task \r\n load index for their effort. \\textbf{Conclusions.} We report that, \r\n although single occurrences of Blob or Spaghetti code anti-patterns \r\n have little effect on code comprehension, two occurrences of either \r\n Blob or Spaghetti Code significantly increases the developers' time \r\n spent in their tasks, reduce their percentage of correct answers, and \r\n increase their effort. Hence, we recommend that developers act on \r\n both anti-patterns, which should be refactored out of the source code \r\n whenever possible. We also recommend further studies on combinations \r\n of anti-patterns rather than on single anti-patterns one at a time.}\r\n}\r\n\r\n","author_short":["Politowski, C.","Khomh, F.","Romano, S.","Scanniello, G.","Petrillo, F.","Gu�h�neuc, Y.","Maiga, A."],"editor_short":["Ruhe, G."],"key":"Politowski20-IST-BlobAndSpaghetti","id":"Politowski20-IST-BlobAndSpaghetti","bibbaseid":"politowski-khomh-romano-scanniello-petrillo-guhneuc-maiga-alargescaleempiricalstudyoftheimpactofspaghetticodeandblobantipatternsonprogramcomprehension-2020","role":"author","urls":{"Paper":"http://www.ptidej.net/publications/documents/IST20a.doc.pdf"},"keyword":["Topic: <b>Code and design smells</b>","Venue: <b>IST</b>"],"metadata":{"authorlinks":{"gu�h�neuc, y":"https://bibbase.org/show?bib=http%3A%2F%2Fwww.yann-gael.gueheneuc.net%2FWork%2FPublications%2FBiblio%2Fcomplete-bibliography.bib&msg=embed"}},"downloads":0},"bibtype":"article","biburl":"http://www.yann-gael.gueheneuc.net/Work/Publications/Biblio/complete-bibliography.bib","creationDate":"2020-09-16T17:55:32.066Z","downloads":0,"keywords":["topic: <b>code and design smells</b>","venue: <b>ist</b>"],"search_terms":["large","scale","empirical","study","impact","spaghetti","code","blob","anti","patterns","program","comprehension","politowski","khomh","romano","scanniello","petrillo","gu�h�neuc","maiga"],"title":"A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension","year":2020,"dataSources":["8vn5MSGYWB4fAx9Z4","KfXmPhaoCuAwjS2aX","SCHo5ZZkXuxNNaMME","cy4HQkWZAA34xFEsF","HGSdZxjT9bHyLwMDX"]}