Logo do repositório
 
Publicação

PHP code smells in web apps

dc.contributor.authorRio, Américo
dc.contributor.authorAbreu, Fernando Brito e
dc.contributor.institutionNOVA Information Management School (NOVA IMS)
dc.contributor.pblElsevier
dc.date.accessioned2023-03-13T22:26:35Z
dc.date.available2023-03-13T22:26:35Z
dc.date.issued2023-06-01
dc.descriptionRio, A., & Abreu, F. B. E. (2023). PHP code smells in web apps: Evolution, survival and anomalies. Journal of Systems and Software, 200, 1-23. [111644]. https://doi.org/10.1016/j.jss.2023.111644 ---%ABS2%
dc.description.abstractAbstract Context: Code smells are symptoms of poor design, leading to future problems, such as reduced maintainability. Therefore, it becomes necessary to understand their evolution and how long they stay in code. This paper presents a longitudinal study on the evolution and survival of code smells (CS) for web apps built with PHP, the most widely used server-side programming language in web development and seldom studied. Objectives: We aimed to discover how CS evolve and what is their survival/lifespan in typical PHP web apps. Does CS survival depend on their scope or app life period? Are there sudden variations (anomalies) in the density of CS through the evolution of web apps? Method: We analyzed the evolution of 18 CS in 12 PHP web applications and compared it with changes in app and team size. We characterized the distribution of CS and used survival analysis techniques to study CS’ lifespan. We specialized the survival studies into localized (specific location) and scattered CS (spanning multiple classes/methods) categories. We further split the observations for each web app into two consecutive time frames. As for the CS evolution anomalies, we standardized their detection criteria. Results: The CS density trend along the evolution of PHP web apps is mostly stable, with variations, and correlates with the developer’s numbers. We identified the smells that survived the most. CS live an average of about 37% of the life of the applications, almost 4 years on average in our study; around 61% of CS introduced are removed. Most applications have different survival times for localized and scattered CS, and localized CS have a shorter life. The CS survival time is shorter and more CS are introduced and removed in the first half of the life of the applications. We found anomalies in the evolution of 5 apps and show how a graphical representation of sudden variations found in the evolution of CS unveils the story of a development project. Conclusion: CS stay a long time in code. The removal rate is low and did not change substantially in recent years. An effort should be made to avoid this bad behavior and change the CS density trend to decrease.en
dc.description.versionpublishersversion
dc.description.versionpublished
dc.format.extent23
dc.format.extent2681755
dc.identifier.doi10.1016/j.jss.2023.111644
dc.identifier.issn0164-1212
dc.identifier.otherPURE: 55515073
dc.identifier.otherPURE UUID: e023dc34-f481-44a4-930c-3f3413365beb
dc.identifier.othercrossref: 10.1016/j.jss.2023.111644
dc.identifier.otherScopus: 85149306575
dc.identifier.otherWOS: 000962128500001
dc.identifier.urihttp://hdl.handle.net/10362/150482
dc.identifier.urlhttps://github.com/studydatacs/servercs
dc.identifier.urlhttps://doi.org/10.5281/zenodo.7626150
dc.identifier.urlhttps://www.scopus.com/pages/publications/85149306575
dc.identifier.urlhttps://www.webofscience.com/wos/woscc/full-record/WOS:000962128500001
dc.identifier.urlhttps://linkinghub.elsevier.com/retrieve/pii/S0164121223000390
dc.language.isoeng
dc.peerreviewedyes
dc.subjectCode smells
dc.subjectPHP
dc.subjectSoftware evolution
dc.subjectSurvival
dc.subjectWeb apps
dc.subjectSoftware
dc.subjectInformation Systems
dc.subjectHardware and Architecture
dc.titlePHP code smells in web appsen
dc.title.subtitleEvolution, survival and anomaliesen
dc.typejournal article
degois.publication.firstPage1
degois.publication.issueJune
degois.publication.lastPage23
degois.publication.titleJournal of Systems and Software
degois.publication.volume200
dspace.entity.typePublication
rcaap.rightsopenAccess

Ficheiros

Principais
A mostrar 1 - 1 de 1
A carregar...
Miniatura
Nome:
PHP_code_smells_web_apps_Evolution_survival_anomalies.pdf
Tamanho:
2.56 MB
Formato:
Adobe Portable Document Format