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

Uložené v:
Podrobná bibliografia
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