[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

On the relation between architectural smells and source code changes

Published: 18 January 2022 Publication History

Abstract

Although architectural smells are one of the most studied type of architectural technical debt, their impact on maintenance effort has not been thoroughly investigated. Studying this impact would help to understand how much technical debt interest is being paid due to the existence of architecture smells and how this interest can be calculated. This work is a first attempt to address this issue by investigating the relation between architecture smells and source code changes. Specifically, we study whether the frequency and size of changes are correlated with the presence of a selected set of architectural smells. We detect architectural smells using the Arcan tool, which detects architectural smells by building a dependency graph of the system analyzed and then looking for the typical structures of the architectural smells. The findings, based on a case study of 31 open‐source Java systems, show that 87% of the analyzed commits present more changes in artifacts with at least one smell, and the likelihood of changing increases with the number of smells. Moreover, there is also evidence to confirm that change frequency increases after the introduction of a smell and that the size of changes is also larger in smelly artifacts. These findings hold true especially in Medium–Large and Large artifacts.

Graphical Abstract

Allegedly, architectural smells (ASs) increase the effort necessary for developers to efficiently maintain and evolve their software. In this work, we mine, from over 30 Java projects and their software repositories, the AS affecting the projects and how source code files changed over time. Findings show that the presence of an AS in a software artifact correlates with an increased code churn and change frequency in the smelly files in contrast to non‐smelly files.

References

[1]
Garcia J, Popescu D, Edwards G, Medvidovic N. Identifying architectural bad smells. In: 2009 13th Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR; 2009; Kaiserslautern, Germany:255‐258.
[2]
Lippert M, Roock S. Refactoring in Large Software Projects: Performing Complex Restructurings Successfully: John Wiley & Sons, Inc; 2006. http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470858923.html
[3]
Avgeriou P, Kruchten P, Ozkaya I, Seaman C. Managing technical debt in software engineering (Dagstuhl Seminar 16162). Dagstuhl Rep. 2016;6(4):110‐138. http://drops.dagstuhl.de/opus/volltexte/2016/6693
[4]
Verdecchia R, Malavolta I, Lago P. Architectural technical debt identification: the research landscape. In: 2018 ACM/IEEE International Conference on Technical Debt. Gothenburg, Sweden; 2018:11‐20. http://www.ivanomalavolta.com/files/papers/TechDebt_2018.pdf
[5]
Fontana FA, Pigazzini I, Roveda R, Zanoni M. Automatic detection of instability architectural smells. In: Proceedings ‐ 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016; 2016; Raleigh, NC, USA:433‐437.
[6]
Oyetoyan TD, Falleri JR, Dietrich J, Jezek K. Circular dependencies and change‐proneness: an empirical study. In: 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2015 ‐ Proceedings. Institute of Electrical and Electronics Engineers Inc.; 2015; Montreal, QC, Canada:241‐250.
[7]
Le DM, Behnamghader P, Garcia J, Link D, Shahbazian A, Medvidovic N. An empirical study of architectural change in open‐source software systems. In: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories; 2015; Florence, Italy:235‐245.
[8]
Neri D, Soldani J, Zimmermann O, Brogi A. Design principles, architectural smells and refactorings for microservices: a multivocal review. SICS Softw‐Intens Cyber‐Phys Syst. 2019:35:3‐15.
[9]
Arcelli Fontana F, Lenarduzzi V, Roveda R, Taibi D. The Journal of Systems and Software Are architectural smells independent from code smells? An empirical study. J Syst Softw. 2019;154:139‐156. https://doi.org/10.1016/j.jss.2019.04.066
[10]
Sjoberg DIK, Yamashita A, Anda BCD, Mockus A, Dyba T. Quantifying the effect of code smells on maintenance effort. IEEE Trans Softw Eng. 2013;39(8):1144‐1156.
[11]
Olbrich S, Cruzes DS, Basili V, Zazworka N. The evolution and impact of code smells: a case study of two open source systems. In: 2009 3rd International Symposium on Empirical Software Engineering and Measurement, ESEM 2009; 2009; Lake Buena Vista, FL, USA:390‐400.
[12]
El‐Emam K. A methodology for validating software product metrics. Technical Report NRC 44142, Nat'l Research Council of Canada; 2000.
[13]
Mockus A, Votta LG. Identifying reasons for software changes using historic databases. In: Conference on Software Maintenance. IEEE; 2000; San Jose, CA, USA:120‐130.
[14]
Sas D, Avgeriou P, Arcelli Fontana F. Investigating instability architectural smells evolution: an exploratory case study. In: 35th International Conference on Software Maintenance and Evolution. IEEE; 2019; Cleveland, OH, USA:557‐567. https://ieeexplore.ieee.org/document/8919109/
[15]
Le DM, Link D, Shahbazian A, Medvidovic N. An empirical study of architectural decay in open‐source software. In: Proceedings ‐ 2018 IEEE 15th International Conference on Software Architecture, ICSA 2018. IEEE; 2018; Seattle, WA, USA:176‐185. https://ieeexplore.ieee.org/document/8417151/
[16]
Khomh F, Penta MD, Guéhéneuc YG, Antoniol G. An exploratory study of the impact of antipatterns on class change‐ and fault‐proneness. Empir Softw Eng. 2012;17(3):243‐275.
[17]
Jaafar F, Guéhéneuc YG, Hamel S, Khomh F, Zulkernine M. Evaluating the impact of design pattern and anti‐pattern dependencies on changes and faults. Empir Softw Eng. 2016;21(3):896‐931.
[18]
Sharma T, Singh P, Spinellis D. An empirical investigation on the relationship between design and architecture smells. Empir Softw Eng. 2020;25(5):4020‐4068. https://doi.org/10.1007/s10664-020-09847-2
[19]
Aniche M, Bavota G, Treude C, Gerosa MA, van Deursen A. Code smells for Model‐View‐Controller architectures. Empir Softw Eng. 2018;23(4):2121‐2157.
[20]
Khomh F, Di Penta M, Guéhéneuc YG. An exploratory study of the impact of code smells on software change‐proneness. In: Proceedings ‐ Working Conference on Reverse Engineering, WCRE; 2009; Lille, France:75‐84.
[21]
Runeson P, Höst M, Rainer A, Regnell B. Case Study Research in Software Engineering ‐ Guidelines and examples. John Wiley & Sons, Inc; 2012.
[22]
van Solingen R, Basili V, Caldiera G, Rombach HD. Goal Question Metric (GQM) Approach. Encyclopedia of Software Engineering. 2nd edition. Wiley; 2002.
[23]
Nagappan N, Ball T. Using software dependencies and churn metrics to predict field failures: an empirical case study. In: First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007); 2007; Madrid, Spain:364‐373.
[24]
Kouroshfar E, Mirakhorli M, Bagheri H, Xiao L, Malek S, Cai Y. A study on the role of software architecture in the evolution and quality of software. In: IEEE International Working Conference on Mining Software Repositories. IEEE Computer Society; 2015; Florence, Italy:246‐257.
[25]
Arcelli Fontana F, Avgeriou P, Pigazzini I, Roveda R. A study on architectural smells prediction. In: 2019 45th Euromicro Conference on Software Engineering and Advanced Applications (SEAA); 2019; Kallithea, Greece:333‐337.
[26]
Elish MO, Al‐Khiaty MAR. A suite of metrics for quantifying historical changes to predict future change‐prone classes in object‐oriented software. J Softw Evol Process. 2013;25(5):407‐437. http://doi.wiley.com/10.1002/smr.1549
[27]
Arvanitou EM, Ampatzoglou A, Chatzigeorgiou A, Avgeriou P. A Method for Assessing Class Change Proneness. In: Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering (EASE'17). Association for Computing Machinery, New York, NY, USA; 2017:186‐195. https://doi.org/10.1145/3084226.3084239
[28]
Zhang J, Sagar S, Shihab E. The evolution of mobile apps: an exploratory study. In: Proceedings of the 2013 International Workshop on Software Development Lifecycle for Mobile (DeMobile 2013). Association for Computing Machinery, New York, NY, USA; 2013:1‐8. https://doi.org/10.1145/2501553.2501554
[29]
Martin RC, Grenning J, Brown S. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall; 2018.
[30]
Martin R. OO Design Quality Metrics. Qual Eng. 1994;8(4):537‐542.
[31]
Fontana FA, Ferme V, Zanoni M, Yamashita A. Automatic metric thresholds derivation for code smell detection. In: International Workshop on Emerging Trends in Software Metrics, WETSoM; 2015; Florence, Italy:44‐53.
[32]
Martini A, Fontana FA, Biaggi A, Roveda R. Identifying and prioritizing architectural debt through architectural smells: a case study in a large software company. European Conference on Software Architecture. Cham: Springer; 2018:320‐335. http://link.springer.com/10.1007/978-3-030-00761-4_21
[33]
Arcelli Fontana F, Locatelli F, Pigazzini I, Mereghetti P. An Architectural Smell Evaluation in an Industrial Context. (c): 68–74; 2020.
[34]
El Emam K, Benlarbi S, Goel N, et al. The confounding effect of class size on the validity of object‐oriented metrics IEEE Transactions on Software Engineering, 27 (2001). IEEE Trans Softw Eng. 2001;27(7):630‐650. http://ieeexplore.ieee.org/document/935855/
[35]
Zhou Y, Leung H, Xu B. Examining the potentially confounding effect of class size on the associations between object‐oriented metrics and change‐proneness. IEEE Trans Softw Eng. 2009;35(5):607‐623.
[36]
Sheskin DJ. Handbook of Parametric and Nonparametric Statistical Procedures. 5th ed. Chapman & Hall/CRC; 2007.
[37]
Nugroho A, Visser J, Kuipers T. An empirical model of technical debt and interest. In: Proceedings ‐ International Conference on Software Engineering. New York, New York, USA: ACM Press; 2011:1‐8. http://portal.acm.org/citation.cfm?doid=1985362.1985364
[38]
Ampatzoglou A, Michailidis A, Sarikyriakidis C, Ampatzoglou A, Chatzigeorgiou A, Avgeriou P. A framework for managing interest in technical debt: An industrial validation. In: Proceedings ‐ International Conference on Software Engineering. Gothenburg, Sweden; 2018:115‐124.

Cited By

View all
  • (2023)Understanding the relationship between Technical Debt, New Code Cost and Rework Cost in Open-Source Software Projects: An Empirical StudyProceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering10.1145/3593434.3593490(247-252)Online publication date: 14-Jun-2023
  • (2023)Impact of Architectural Smells on Software Performance: an Exploratory StudyProceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering10.1145/3593434.3593442(22-31)Online publication date: 14-Jun-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Software: Evolution and Process
Journal of Software: Evolution and Process  Volume 34, Issue 1
January 2022
103 pages
ISSN:2047-7473
EISSN:2047-7481
DOI:10.1002/smr.v34.1
Issue’s Table of Contents
This is an open access article under the terms of the Creative Commons Attribution‐NonCommercial License, which permits use, distribution and reproduction in any medium, provided the original work is properly cited and is not used for commercial purposes.

Publisher

John Wiley & Sons, Inc.

United States

Publication History

Published: 18 January 2022

Author Tags

  1. architectural smells
  2. architectural technical debt
  3. empirical study
  4. software repository mining
  5. technical debt
  6. technical debt interest

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Understanding the relationship between Technical Debt, New Code Cost and Rework Cost in Open-Source Software Projects: An Empirical StudyProceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering10.1145/3593434.3593490(247-252)Online publication date: 14-Jun-2023
  • (2023)Impact of Architectural Smells on Software Performance: an Exploratory StudyProceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering10.1145/3593434.3593442(22-31)Online publication date: 14-Jun-2023

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media