A large scale empirical study of the impact of Spaghetti Code and Blob anti-patterns on program comprehension
Uložené v:
| Názov: | A large scale empirical study of the impact of Spaghetti Code and Blob anti-patterns on program comprehension |
|---|---|
| Autori: | Politowski, Cristiano, Khomh, Foutse, Romano, Simone, Scanniello, Giuseppe, Petrillo, Fabio, Guéhéneuc, Yann-Gaël, Maiga, Abdou |
| Rok vydania: | 2020 |
| Zbierka: | Université du Québec à Chicoutimi (UQAC): Constellation |
| Predmety: | Informatique, anti-patterns, blob, Spaghetti code, program comprehension, Java |
| Popis: | 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. |
| Druh dokumentu: | article in journal/newspaper |
| Popis súboru: | application/pdf |
| Jazyk: | English |
| Relation: | https://constellation.uqac.ca/id/eprint/6227/; http://dx.doi.org/doi:10.1016/j.infsof.2020.106278; https://constellation.uqac.ca/id/eprint/6227/1/2020Politowski.pdf |
| DOI: | 10.1016/j.infsof.2020.106278 |
| Dostupnosť: | https://constellation.uqac.ca/id/eprint/6227/1/2020Politowski.pdf https://doi.org/10.1016/j.infsof.2020.106278 |
| Rights: | cc_by_nc_nd |
| Prístupové číslo: | edsbas.8AD945 |
| Databáza: | BASE |
| FullText | Text: Availability: 0 CustomLinks: – Url: https://constellation.uqac.ca/id/eprint/6227/1/2020Politowski.pdf# Name: EDS - BASE (s4221598) Category: fullText Text: View record from BASE – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Politowski%20C Name: ISI Category: fullText Text: Nájsť tento článok vo Web of Science Icon: https://imagesrvr.epnet.com/ls/20docs.gif MouseOverText: Nájsť tento článok vo Web of Science |
|---|---|
| Header | DbId: edsbas DbLabel: BASE An: edsbas.8AD945 RelevancyScore: 894 AccessLevel: 3 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 893.994323730469 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: A large scale empirical study of the impact of Spaghetti Code and Blob anti-patterns on program comprehension – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Politowski%2C+Cristiano%22">Politowski, Cristiano</searchLink><br /><searchLink fieldCode="AR" term="%22Khomh%2C+Foutse%22">Khomh, Foutse</searchLink><br /><searchLink fieldCode="AR" term="%22Romano%2C+Simone%22">Romano, Simone</searchLink><br /><searchLink fieldCode="AR" term="%22Scanniello%2C+Giuseppe%22">Scanniello, Giuseppe</searchLink><br /><searchLink fieldCode="AR" term="%22Petrillo%2C+Fabio%22">Petrillo, Fabio</searchLink><br /><searchLink fieldCode="AR" term="%22Guéhéneuc%2C+Yann-Gaël%22">Guéhéneuc, Yann-Gaël</searchLink><br /><searchLink fieldCode="AR" term="%22Maiga%2C+Abdou%22">Maiga, Abdou</searchLink> – Name: DatePubCY Label: Publication Year Group: Date Data: 2020 – Name: Subset Label: Collection Group: HoldingsInfo Data: Université du Québec à Chicoutimi (UQAC): Constellation – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22Informatique%22">Informatique</searchLink><br /><searchLink fieldCode="DE" term="%22anti-patterns%22">anti-patterns</searchLink><br /><searchLink fieldCode="DE" term="%22blob%22">blob</searchLink><br /><searchLink fieldCode="DE" term="%22Spaghetti+code%22">Spaghetti code</searchLink><br /><searchLink fieldCode="DE" term="%22program+comprehension%22">program comprehension</searchLink><br /><searchLink fieldCode="DE" term="%22Java%22">Java</searchLink> – Name: Abstract Label: Description Group: Ab Data: 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. – Name: TypeDocument Label: Document Type Group: TypDoc Data: article in journal/newspaper – Name: Format Label: File Description Group: SrcInfo Data: application/pdf – Name: Language Label: Language Group: Lang Data: English – Name: NoteTitleSource Label: Relation Group: SrcInfo Data: https://constellation.uqac.ca/id/eprint/6227/; http://dx.doi.org/doi:10.1016/j.infsof.2020.106278; https://constellation.uqac.ca/id/eprint/6227/1/2020Politowski.pdf – Name: DOI Label: DOI Group: ID Data: 10.1016/j.infsof.2020.106278 – Name: URL Label: Availability Group: URL Data: https://constellation.uqac.ca/id/eprint/6227/1/2020Politowski.pdf<br />https://doi.org/10.1016/j.infsof.2020.106278 – Name: Copyright Label: Rights Group: Cpyrght Data: cc_by_nc_nd – Name: AN Label: Accession Number Group: ID Data: edsbas.8AD945 |
| PLink | https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.8AD945 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1016/j.infsof.2020.106278 Languages: – Text: English Subjects: – SubjectFull: Informatique Type: general – SubjectFull: anti-patterns Type: general – SubjectFull: blob Type: general – SubjectFull: Spaghetti code Type: general – SubjectFull: program comprehension Type: general – SubjectFull: Java Type: general Titles: – TitleFull: A large scale empirical study of the impact of Spaghetti Code and Blob anti-patterns on program comprehension Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Politowski, Cristiano – PersonEntity: Name: NameFull: Khomh, Foutse – PersonEntity: Name: NameFull: Romano, Simone – PersonEntity: Name: NameFull: Scanniello, Giuseppe – PersonEntity: Name: NameFull: Petrillo, Fabio – PersonEntity: Name: NameFull: Guéhéneuc, Yann-Gaël – PersonEntity: Name: NameFull: Maiga, Abdou IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 01 Type: published Y: 2020 Identifiers: – Type: issn-locals Value: edsbas – Type: issn-locals Value: edsbas.oa |
| ResultId | 1 |
Nájsť tento článok vo Web of Science