Working Papers
Causal inference of server- and client-side code smells in web apps evolution
José Américo Alves Sustelo Rio (Rio, J.); Fernando Brito e Abreu (Brito e Abreu, F.); Diana Mendes (Mendes, D. A.);
Document Title
Causal inference of server- and client-side code smells in web apps evolution
Year (definitive publication)
2023
Language
English
Country
--
More Information
--
Web of Science®

This publication is not indexed in Web of Science®

Scopus

This publication is not indexed in Scopus

Google Scholar

Times Cited: 0

(Last checked: 2024-08-02 14:28)

View record in Google Scholar

This publication is not indexed in Overton

Abstract
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.
Acknowledgements
--
Keywords