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 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.
@ARTICLE{Politowski20-IST-BlobAndSpaghetti,
AUTHOR = {Cristiano Politowski and Foutse Khomh and Simone Romano and
Giuseppe Scanniello and F�bio 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>,
Rubrique : <b>mauvaises pratiques</b>, Journal: <b>IST</b>},
PUBLISHER = {Elsevier},
URL = {http://www.ptidej.net/publications/documents/IST20a.doc.pdf},
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� 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.}
}
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":["F�bio"],"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>, Rubrique : <b>mauvaises pratiques</b>, Journal: <b>IST</b>","publisher":"Elsevier","url":"http://www.ptidej.net/publications/documents/IST20a.doc.pdf","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� 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.","bibtex":"@ARTICLE{Politowski20-IST-BlobAndSpaghetti,\r\n AUTHOR = {Cristiano Politowski and Foutse Khomh and Simone Romano and \r\n Giuseppe Scanniello and F�bio 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>, \r\n Rubrique : <b>mauvaises pratiques</b>, Journal: <b>IST</b>},\r\n PUBLISHER = {Elsevier},\r\n URL = {http://www.ptidej.net/publications/documents/IST20a.doc.pdf},\r\n ABSTRACT = {Context. Several studies investigated the impact of \r\n anti-patterns (i.e., poor solutions to recurring design problems) \r\n during maintenance activities and reported that anti-patterns \r\n significantly affect the developers' effort required to edit files. \r\n However, before developers edit files, they must understand the \r\n source code of the systems. This source code must be easy to \r\n understand by developers. Objective. In this work, we provide a \r\n complete assessment of the impact of two instances of two \r\n anti-patterns, Blob or Spaghetti Code, on program comprehension. \r\n Method. We analyze the impact of these two anti-patterns through \r\n three empirical studies conducted at Polytechnique Montr� al (Canada) \r\n with 24 participants; at Carlton University (Canada) with 30 \r\n participants; and at University Basilicata (Italy) with 79 \r\n participants. Results. We collect data from 372 tasks obtained thanks \r\n to 133 different participants from the three universities. We use \r\n three metrics to assess the developers' comprehension of the source \r\n code: (1) the duration to complete each task; (2) their percentage of \r\n correct answers; and, (3) the NASA task load index for their effort. \r\n Conclusions. We report that, although single occurrences of Blob or \r\n Spaghetti code anti-patterns have little effect on code \r\n comprehension, two occurrences of either Blob or Spaghetti Code \r\n significantly increases the developers' time spent in their tasks, \r\n reduce their percentage of correct answers, and increase their \r\n effort. Hence, we recommend that developers act on both \r\n 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>","Rubrique : <b>mauvaises pratiques</b>","Journal: <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>","rubrique : <b>mauvaises pratiques</b>","journal: <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"]}