Exploring the Relation Between Co-changes and Architectural Smells
Autor: | Paris Avgeriou, Darius Sas, Ruben Scheedler, Ronald Kruizinga |
---|---|
Přispěvatelé: | Software Engineering |
Jazyk: | angličtina |
Rok vydání: | 2020 |
Předmět: |
Java
Relation (database) business.industry Computer science Maintainability 020207 software engineering 02 engineering and technology 020202 computer hardware & architecture Empirical research Open source 0202 electrical engineering electronic engineering information engineering Statistical analysis Software engineering business computer Reliability (statistics) Statistical hypothesis testing computer.programming_language |
Zdroj: | SN Computer Science SN Computer Science, 2:13 |
ISSN: | 2661-8907 |
Popis: | The interplay between Maintainability and Reliability can be particularly complex and different kinds of trade-offs may arise when developers try to optimise for either one of these two qualities. To further understand how Maintainability and Reliability influence each other, we perform an empirical study using architectural smells and source code file co-changes as proxies for these two qualities, respectively. The study is designed using an exploratory multiple-case case study following well-know guidelines and using fourteen open source Java projects. Three different research questions are identified and investigated through statistical analysis. Co-changes are detected by using both a state-of-the-art algorithm and a novel approach. The three architectural smells selected are among the most important from the literature and are detected using open source tools. The results show that 50% of co-changes eventually end up taking part in an architectural smell. Moreover, statistical tests indicate that in 50% of the projects, files and packages taking part in smells are more likely to co-change than non-smelly files. Finally, co-changes were also found to appear before smells 90% of the times a smell and a co-change appear in the same file pair. Our findings show that Reliability is indirectly affected by low levels of Maintainability even at the architectural level. This is because low-quality components require more frequent changes by the developers, increasing chances to eventually introduce faults. |
Databáze: | OpenAIRE |
Externí odkaz: |