ABSTRACT
Architectural Technical Debt (ATD) is one of the leading Technical Debt (TD) that causes more impact in maintaining and evolving complex software systems. We conduct a Systematic Mapping Study (SMS) to discover the main aspects of identifying and monitoring ATD items to help determine what the community has been studying about it in the last ten years. We evaluated 70 studies dating from 2012 to 2022. We find out the main types of ATD, how to measure and monitor ATD, which techniques and methods stand out in this area, the most used tools, and directions on how to calculate the cost of paying for ATD items. The results of this mapping study can help identify points that still require investigations on identifying, monitoring, and calculating the effort to fix ATD items. Furthermore, we have proposed a roadmap to aid managing Architectural Technical Debt, which provides guidance for identifying and monitoring ATD items in software systems.
- Nicolli SR Alves, Thiago S Mendes, Manoel G de Mendonça, Rodrigo O Spínola, Forrest Shull, and Carolyn Seaman. 2016. Identification and management of technical debt: A systematic mapping study. Information and Software Technology 70 (2016), 100–121.Google ScholarDigital Library
- Terese Besker, Antonio Martini, and Jan Bosch. 2017. The pricey bill of technical debt: When and by whom will it be paid?. In 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 13–23.Google ScholarCross Ref
- Terese Besker, Antonio Martini, and Jan Bosch. 2018. Managing architectural technical debt: A unified model and systematic literature review. Journal of Systems and Software 135 (2018), 1–16.Google ScholarDigital Library
- Frederick P Brooks. 1974. The mythical man-month. Datamation 20, 12 (1974), 44–52.Google Scholar
- Nanette Brown, Yuanfang Cai, Yuepu Guo, Rick Kazman, Miryung Kim, Philippe Kruchten, Erin Lim, Alan MacCormack, Robert Nord, Ipek Ozkaya, 2010. Managing technical debt in software-reliant systems. In Proceedings of the FSE/SDP workshop on Future of software engineering research. 47–52.Google ScholarDigital Library
- Yuanfang Cai and Rick Kazman. 2019. DV8: automated architecture analysis tool suites. In 2019 IEEE/ACM international conference on technical debt (TechDebt). IEEE, 53–54.Google ScholarDigital Library
- Ward Cunningham. 1992. The WyCash Portfolio Management System. In Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications (Addendum) (Vancouver, British Columbia, Canada) (OOPSLA ’92). ACM, New York, NY, USA, 29–30. https://doi.org/10.1145/157709.157715Google ScholarDigital Library
- Bill Curtis, Jay Sappidi, and Alexandra Szynkarski. 2012. Estimating the principal of an application’s technical debt. IEEE software 29, 6 (2012), 34–42.Google Scholar
- Ulf Eliasson, Antonio Martini, Robert Kaufmann, and Sam Odeh. 2015. Identifying and visualizing Architectural Debt and its efficiency interest in the automotive domain: A case study. In 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD). IEEE, 33–40.Google ScholarCross Ref
- Qiong Feng, Yuanfang Cai, Rick Kazman, Di Cui, Ting Liu, and Hongzhou Fang. 2019. Active hotspot: an issue-oriented model to monitor software evolution and degradation. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 986–997.Google ScholarDigital Library
- Joseph L Fleiss, Bruce Levin, and Myunghee Cho Paik. 2013. Statistical methods for rates and proportions. john wiley & sons.Google Scholar
- Francesca Arcelli Fontana, Riccardo Roveda, and Marco Zanoni. 2016. Technical debt indexes provided by tools: a preliminary discussion. In 2016 IEEE 8th international workshop on managing technical debt (MTD). IEEE, 28–31.Google ScholarCross Ref
- Francesca Arcelli Fontana, Riccardo Roveda, and Marco Zanoni. 2016. Tool support for evaluating architectural debt of an existing system: An experience report. In Proceedings of the 31st Annual ACM Symposium on Applied Computing. 1347–1349.Google ScholarDigital Library
- Johannes Holvitie, Ville Leppänen, and Sami Hyrynsalmi. 2014. Technical debt and the effect of agile software development practices on it-an industry practitioner survey. In 2014 Sixth International Workshop on Managing Technical Debt. IEEE, 35–42.Google ScholarDigital Library
- Rick Kazman, Yuanfang Cai, Ran Mo, Qiong Feng, Lu Xiao, Serge Haziyev, Volodymyr Fedak, and Andriy Shapochka. 2015. A case study in locating the architectural roots of technical debt. In 2015 IEEE/ACM 37th IEEE international conference on software engineering, Vol. 2. IEEE, 179–188.Google ScholarCross Ref
- Barbara Kitchenham and Stuart Charters. 2007. Guidelines for performing systematic literature reviews in software engineering. (2007).Google Scholar
- Jens Knodel, Mikael Lindvall, Dirk Muthig, and Matthias Naab. 2006. Static evaluation of software architectures. In Conference on Software Maintenance and Reengineering (CSMR’06). IEEE, 10–pp.Google ScholarDigital Library
- Philippe Kruchten, Robert Nord, and Ipek Ozkaya. 2019. Managing Technical Debt: Reducing Friction in Software Development. Addison-Wesley Professional.Google Scholar
- Philippe Kruchten, Robert L Nord, and Ipek Ozkaya. 2012. Technical debt: From metaphor to theory and practice. Ieee software 29, 6 (2012), 18–21.Google ScholarDigital Library
- Zengyang Li, Paris Avgeriou, and Peng Liang. 2015. A systematic mapping study on technical debt and its management. Journal of Systems and Software 101 (2015), 193–220.Google ScholarDigital Library
- Zengyang Li, Peng Liang, and Paris Avgeriou. 2014. Architectural debt management in value-oriented architecting. In Economics-Driven Software Architecture. Elsevier, 183–204.Google Scholar
- Zengyang Li, Peng Liang, and Paris Avgeriou. 2015. Architectural technical debt identification based on architecture decisions and change scenarios. In 2015 12th Working IEEE/IFIP Conference on Software Architecture. IEEE, 65–74.Google ScholarDigital Library
- Zengyang Li, Peng Liang, Paris Avgeriou, Nicolas Guelfi, and Apostolos Ampatzoglou. 2014. An empirical investigation of modularity metrics for indicating architectural technical debt. In Proceedings of the 10th international ACM Sigsoft conference on Quality of software architectures. 119–128.Google ScholarDigital Library
- Antonio Martini, Terese Besker, and Jan Bosch. 2016. The introduction of technical debt tracking in large companies. In 2016 23rd Asia-Pacific Software Engineering Conference (APSEC). IEEE, 161–168.Google ScholarCross Ref
- Antonio Martini and Jan Bosch. 2016. An empirically developed method to aid decisions on architectural technical debt refactoring: AnaConDebt. In 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C). IEEE, 31–40.Google ScholarDigital Library
- Antonio Martini and Jan Bosch. 2017. On the interest of architectural technical debt: Uncovering the contagious debt phenomenon. Journal of Software: Evolution and Process 29, 10 (2017), e1877.Google ScholarCross Ref
- Antonio Martini, Jan Bosch, and Michel Chaudron. 2015. Investigating architectural technical debt accumulation and refactoring over time: A multiple-case study. Information and Software Technology 67 (2015), 237–253.Google ScholarDigital Library
- Antonio Martini, Francesca Arcelli Fontana, Andrea Biaggi, and Riccardo Roveda. 2018. Identifying and prioritizing architectural debt through architectural smells: a case study in a large software company. In Software Architecture: 12th European Conference on Software Architecture, ECSA 2018, Madrid, Spain, September 24–28, 2018, Proceedings 12. Springer, 320–335.Google ScholarCross Ref
- Antonio Martini, Erik Sikander, and Niel Madlani. 2018. A semi-automated framework for the identification and estimation of architectural technical debt: A comparative case-study on the modularization of a software component. Information and Software Technology 93 (2018), 264–279.Google ScholarDigital Library
- Jonathon Michael Golden. 2010. Transformation patterns for curing the human causes of technical debt. Cutter IT Journal 23, 10 (2010), 30.Google Scholar
- Boris Pérez, Darío Correal, and Hernán Astudillo. 2019. A proposed model-driven approach to manage architectural technical debt life cycle. In 2019 IEEE/ACM International Conference on Technical Debt (TechDebt). IEEE, 73–77.Google ScholarDigital Library
- Kai Petersen, Robert Feldt, Shahid Mujtaba, and Michael Mattsson. 2008. Systematic mapping studies in software engineering. In 12th International Conference on Evaluation and Assessment in Software Engineering (EASE) 12. 1–10.Google ScholarCross Ref
- Aniket Potdar and Emad Shihab. 2014. An exploratory study on self-admitted technical debt. In 2014 IEEE International Conference on Software Maintenance and Evolution. IEEE, 91–100.Google ScholarDigital Library
- P. Runeson, M. H"ost, A. Rainer, and B. Regnell. 2012. Case Study Research in Software Engineering: Guidelines and Examples. John Wiley Sons.Google ScholarDigital Library
- Carolyn Seaman and Yuepu Guo. 2011. Measuring and monitoring technical debt. In Advances in Computers. Vol. 82. Elsevier, 25–46.Google Scholar
- Tushar Sharma, Paramvir Singh, and Diomidis Spinellis. 2020. An empirical investigation on the relationship between design and architecture smells. Empirical Software Engineering 25, 5 (2020), 4020–4068.Google ScholarDigital Library
- Giancarlo Sierra, Ahmad Tahmid, Emad Shihab, and Nikolaos Tsantalis. 2019. Is self-admitted technical debt a good indicator of architectural divergences?. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 534–543.Google ScholarCross Ref
- Damian A Tamburri. 2019. Software architecture social debt: Managing the incommunicability factor. IEEE Transactions on Computational Social Systems 6, 1 (2019), 20–37.Google ScholarCross Ref
- Edith Tom, AybüKe Aurum, and Richard Vidgen. 2013. An exploration of technical debt. Journal of Systems and Software 86, 6 (2013), 1498–1516.Google ScholarDigital Library
- Roberto Verdecchia. 2018. Identifying architectural technical debt in android applications through automated compliance checking. In Proceedings of the 5th International Conference on Mobile Software Engineering and Systems. 35–36.Google ScholarDigital Library
- Roberto Verdecchia, Ivano Malavolta, and Patricia Lago. 2018. Architectural technical debt identification: The research landscape. In 2018 IEEE/ACM International Conference on Technical Debt (TechDebt). IEEE, 11–20.Google ScholarDigital Library
- Lu Xiao, Yuanfang Cai, Rick Kazman, Ran Mo, and Qiong Feng. 2016. Identifying and quantifying architectural debt. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). IEEE, 488–498.Google ScholarDigital Library
- Andrzej Zalewski. 2017. Risk Appetite in Architectural Decision-Making. In 2017 IEEE International Conference on Software Architecture Workshops (ICSAW). IEEE, 149–152.Google Scholar
Index Terms
- Architectural Technical Debt - A Systematic Mapping Study
Recommendations
A proposed model-driven approach to manage architectural technical debt life cycle
TechDebt '19: Proceedings of the Second International Conference on Technical DebtArchitectural Technical Debt (ATD) is a metaphor used to describe consciously decisions taken by software architects to accomplish short-term goals but possibly negatively affecting the long-term health of the system. However, difficulties arise when ...
Investigating Architectural Technical Debt accumulation and refactoring over time
Display Omitted We provide a taxonomy of the causes for Architectural Technical Debt accumulation.Crisis model: shows the increasing accumulation of Architectural Technical Debt.Phases model: shows when Architectural Technical Debt is accumulated and ...
Architectural Technical Debt Identification Based on Architecture Decisions and Change Scenarios
WICSA '15: Proceedings of the 2015 12th Working IEEE/IFIP Conference on Software ArchitectureArchitectural technical debt (ATD) is incurred by design decisions that intentionally or unintentionally compromise system-wide quality attributes, particularly maintainability and evolvability. ATD is harmful to the system's long-term health, thus it ...
Comments