Ciência_Iscte
Publicações
Descrição Detalhada da Publicação
Causal inference of server- and client-side code smells in web apps evolution
Título Documento
Causal inference of server- and client-side code smells in web apps evolution
Ano (publicação definitiva)
2023
Língua
Inglês
País
--
Mais Informação
--
Web of Science®
Esta publicação não está indexada na Web of Science®
Scopus
Esta publicação não está indexada na Scopus
Google Scholar
Esta publicação não está indexada no Overton
Abstract/Resumo
Abstract Context: Web apps are heterogeneous in their architecture (split into client and server sides) and the development languages used, so we need to consider CS covering that diversity. Furthermore, the literature provides little evidence for the claim that CS is a symptom of poor design, leading to future problems in
web apps.
Objective: To study the evolution and inner relationship of CS in web apps on the server- and client-sides, and their impact of CS (from server and client-sides) on maintainability (web app issues and bugs) and app "time to release."
Method: We collected and analyzed 18 server-side, and 12 client-side code smells (aka web smells) from 12 typical PHP web apps, summing 811 releases.
Additionally, we collected metrics, maintenance issues, reported bugs, and release dates. We used several methodologies to devise causality relationships among the considered irregular time series, such as Granger-causality and Information Transfer Entropy(TE) with CS from previous releases (lag 1 to 4).
Results: CS evolution primary trends: server-side: slowly decrease; clientembed: decrease; client-JavaScript: increase. Most significant TE(lag1) between CS groups: CS client-side CS groups to server-side; after client-embed to clientJavaScript; On TE(lag2) is client-embed to server and JS. Individual client-side CS contributes more to issues’ evolution, followed by server-side CS. Almost all CS contribute to bugs’ evolution, especially in lag1; We found statistical evidence of causal inference between CS and time to release(TTR) for almost all the individual.
CS. All CS groups contribute to issues, bugs, and TTR; JavaScript CS can cause more issues, (server)PHP and JavaScript CS can cause more bugs, and the time to release (delays) is more impacted by the density of client embed CS.
Conclusions: There is evidence of statistical inference between client- and server-side code smells and from the code smells to web app.
Agradecimentos/Acknowledgements
--
Palavras-chave
English