Technical debt occurs in many different forms across software artifacts. One such form is connected to software architectures where debt emerges in the form of structural anti-patterns across architecture elements, namely, architecture smells. As defined in the literature, ``Architecture smells are recurrent architectural decisions that negatively impact internal system quality", thus increasing technical debt. In this paper, we aim at exploring whether there exist manifestations of architectural technical debt beyond decreased code or architectural quality, namely, whether there is a relation between architecture smells (which primarily reflect structural characteristics) and the occurrence of concurrency bugs (which primarily manifest at runtime). We study 125 releases of 5 large data-intensive software systems to reveal that (1) several architecture smells may in fact indicate the presence of concurrency problems likely to manifest at runtime but (2) smells are not correlated with concurrency in general -- rather, for specific concurrency bugs they must be combined with an accompanying articulation of specific project characteristics such as project distribution. As an example, a cyclic dependency could be present in the code, but the specific execution-flow could be never executed at runtime.

Andrew Tamburri, D., ARCELLI FONTANA, F., Roveda, R., Lenarduzzi, V. (2023). Architecture Smells vs. Concurrency Bugs: an Exploratory Study and Negative Results [Altro] [10.48550/arXiv.2303.17862].

Architecture Smells vs. Concurrency Bugs: an Exploratory Study and Negative Results

Francesca Arcelli Fontana
Secondo
;
Riccardo Roveda
Penultimo
;
2023

Abstract

Technical debt occurs in many different forms across software artifacts. One such form is connected to software architectures where debt emerges in the form of structural anti-patterns across architecture elements, namely, architecture smells. As defined in the literature, ``Architecture smells are recurrent architectural decisions that negatively impact internal system quality", thus increasing technical debt. In this paper, we aim at exploring whether there exist manifestations of architectural technical debt beyond decreased code or architectural quality, namely, whether there is a relation between architecture smells (which primarily reflect structural characteristics) and the occurrence of concurrency bugs (which primarily manifest at runtime). We study 125 releases of 5 large data-intensive software systems to reveal that (1) several architecture smells may in fact indicate the presence of concurrency problems likely to manifest at runtime but (2) smells are not correlated with concurrency in general -- rather, for specific concurrency bugs they must be combined with an accompanying articulation of specific project characteristics such as project distribution. As an example, a cyclic dependency could be present in the code, but the specific execution-flow could be never executed at runtime.
Altro
Computer Science; Software Engineering; Computer Science; Software Engineering;
English
31-mar-2023
2023
1
28
http://arxiv.org/abs/2303.17862v1
Preprint
Andrew Tamburri, D., ARCELLI FONTANA, F., Roveda, R., Lenarduzzi, V. (2023). Architecture Smells vs. Concurrency Bugs: an Exploratory Study and Negative Results [Altro] [10.48550/arXiv.2303.17862].
open
File in questo prodotto:
File Dimensione Formato  
Tamburri-2303-arxiv-preprint.pdf

accesso aperto

Tipologia di allegato: Submitted Version (Pre-print)
Licenza: Creative Commons
Dimensione 462.44 kB
Formato Adobe PDF
462.44 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/511280
Citazioni
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
Social impact