TY - JOUR
T1 - Evolution patterns of software-architecture smells
T2 - An empirical study of intra- and inter-version smells
AU - Gnoyke, Philipp
AU - Schulze, Sandro
AU - Krüger, Jacob
PY - 2024/11
Y1 - 2024/11
N2 - Architecture smells are a widely established concept to describe symptoms of software degradation by measuring perceived violations of software-design principles. As such, architecture smells can help developers assess and understand the architectural quality of their software system. However, research has rarely been concerned with how architecture smells evolve and whether they actually foster software degradation during a system's evolution. Building on our previous work in this direction, we present extended techniques for measuring architecture smells, novel visualizations, as well as an empirical study of how architecture smells evolve and what typical patterns they exhibit in 485 releases of 14 open-source systems. Among others, the results of our study indicate that especially cyclic dependencies on the class-level are prone to becoming highly complex over time, with one of the reasons being the continued merging of smells, most often resulting in tangled multi-hubs. Moreover, we found unstable dependencies to mostly grow slowly over time, whereas hub-like dependencies remain rather stable during a system's evolution. These findings are valuable for practitioners to identify and tackle system degeneration, as well as for researchers to scope new research on managing architecture smells and technical debt.
AB - Architecture smells are a widely established concept to describe symptoms of software degradation by measuring perceived violations of software-design principles. As such, architecture smells can help developers assess and understand the architectural quality of their software system. However, research has rarely been concerned with how architecture smells evolve and whether they actually foster software degradation during a system's evolution. Building on our previous work in this direction, we present extended techniques for measuring architecture smells, novel visualizations, as well as an empirical study of how architecture smells evolve and what typical patterns they exhibit in 485 releases of 14 open-source systems. Among others, the results of our study indicate that especially cyclic dependencies on the class-level are prone to becoming highly complex over time, with one of the reasons being the continued merging of smells, most often resulting in tangled multi-hubs. Moreover, we found unstable dependencies to mostly grow slowly over time, whereas hub-like dependencies remain rather stable during a system's evolution. These findings are valuable for practitioners to identify and tackle system degeneration, as well as for researchers to scope new research on managing architecture smells and technical debt.
KW - Software quality
KW - Technical debt
KW - Architecture smells
KW - Cyclic dependencies
KW - Empirical study
KW - Evolutionary analysis
UR - http://www.scopus.com/inward/record.url?scp=85201284981&partnerID=8YFLogxK
U2 - 10.1016/j.jss.2024.112170
DO - 10.1016/j.jss.2024.112170
M3 - Article
SN - 0164-1212
VL - 217
JO - Journal of Systems and Software
JF - Journal of Systems and Software
M1 - 112170
ER -