skip to main content
10.1145/2884781.2884822acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Public Access

Identifying and quantifying architectural debt

Published:14 May 2016Publication History

ABSTRACT

Our prior work showed that the majority of error-prone source files in a software system are architecturally connected. Flawed architectural relations propagate defects among these files and accumulate high maintenance costs over time, just like debts accumulate interest. We model groups of architecturally connected files that accumulate high maintenance costs as architectural debts. To quantify such debts, we formally define architectural debt, and show how to automatically identify debts, quantify their maintenance costs, and model these costs over time. We describe a novel history coupling probability matrix for this purpose, and identify architecture debts using 4 patterns of architectural flaws shown to correlate with reduced software quality. We evaluate our approach on 7 large-scale open source projects, and show that a significant portion of total project maintenance effort is consumed by paying interest on architectural debts. The top 5 architectural debts, covering a small portion (8% to 25%) of each project's error-prone files, capture a significant portion (20% to 61%) of each project's maintenance effort. Finally, we show that our approach reveals how architectural issues evolve into debts over time.

References

  1. N. S. Alves, L. F. Ribeiro, V. Caires, T. S. Mendes, and R. O. Spinola. Towards an ontology of terms on technical debt. In Managing Technical Debt (MTD), 2014 Sixth International Workshop on, pages 1--7. IEEE, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. C. Y. Baldwin and K. B. Clark. Design Rules, Vol. 1: The Power of Modularity. MIT Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, 3rd edition, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. Beck and S. Diehl. Evaluating the impact of software evolution on software clustering. In Proc. 17th Working Conference on Reverse Engineering, pages 99--108, Oct. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Brondum and L. Zhu. Visualising architectural dependencies. In Proceedings of the Third International Workshop on Managing Technical Debt, MTD '12, pages 7--14, Piscataway, NJ, USA, 2012. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. N. Brown, Y. Cai, Y. Guo, R. Kazman, M. Kim, P. Kruchten, E. Lim, A. MacCormack, R. Nord, I. Ozkaya, R. Sangwan, C. Seaman, K. Sullivan, and N. Zazworka. Managing technical debt in software-reliant systems. pages 47--52, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. W. Cunningham. The WyCash portfolio management system. In Addendum to Proc. 7th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 29--30, Oct. 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. Curtis, J. Sappidi, and A. Szynkarski. Estimating the principal of an application's technical debt. IEEE Software, 29(6):34--42, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. da S. Maldonado and E. Shihab. Detecting and quantifying different types of self-admitted technical debt. SIGSOFT Softw. Eng. Notes, Apr. 2015.Google ScholarGoogle ScholarCross RefCross Ref
  10. D. Falessi, P. Kruchten, R. L. Nord, and I. Ozkaya. Technical debt at the crossroads of research and practice: report on the fifth international workshop on managing technical debt. ACM SIGSOFT Software Engineering Notes, 39(2):31--33, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Gethers, B. Dit, H. Kagdi, and D. Poshyvanyk. Integrated impact analysis for managing software changes. In Proceedings of the 34th International Conference on Software Engineering, ICSE '12, pages 430--440, Piscataway, NJ, USA, 2012. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. T. Gîrba, S. Ducasse, A. Kuhn, R. Marinescu, and R. Daniel. Using concept analysis to detect co-change patterns. In Ninth International Workshop on Principles of Software Evolution: In Conjunction with the 6th ESEC/FSE Joint Meeting, IWPSE '07, pages 83--89, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. I. Griffith and C. Izurieta. Design pattern decay: The case for class grime. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM '14, pages 39:1--39:4, New York, NY, USA, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. H. Kagdi, M. Gethers, D. Poshyvanyk, and M. L. Collard. Blending conceptual and evolutionary couplings to support change impact analysis in source code. In Proc. 17th Working Conference on Reverse Engineering, pages 119--128, Oct. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Kazman, Y. Cai, R. Mo, Q. Feng, L. Xiao, S. Haziyevy, V. Fedaky, and A. Shapochkay. A case study in locating the architectural roots of technical debt. In Proc. 37th International Conference on Software Engineering, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Kazman and S. J. Carriere. Playing detective: Reconstructing software architecture from available evidence. Automated Software Engineering, 6(2):107--138, Apr. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. E. Kouroshfar. Studying the effect of co-change dispersion on software quality. In Software Engineering (ICSE), 2013 35th International Conference on, pages 1450--1452, May 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. E. Kouroshfar, M. Mirakhorli, H. Bagheri, L. Xiao, S. Malek, and Y. Cai. A study on the role of software architecture in the evolution and quality of software. In Proceedings of the 12th Working Conference on Mining Software Repositories, MSR '15, pages 246--257, Piscataway, NJ, USA, 2015. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Z. Li, P. Avgeriou, and P. Liang. A systematic mapping study on technical debt and its management. J. Syst. Softw., 101(C):193--220, Mar. 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Martini and J. Bosch. The danger of architectural technical debt: Contagious debt and vicious circles. In Software Architecture (WICSA), 2015 12th Working IEEE/IFIP Conference on, pages 1--10, May 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Mo, Y. Cai, R. Kazman, and L. Xiao. Hotspot patterns: The formal definition and automatic detection of architecture smells. In Proc. 15th Working IEEE/IFIP International Conference on Software Architecture, May 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. Mo, J. Garcia, Y. Cai, and N. Medvidovic. Mapping architectural decay instances to dependency models, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  23. M. Naedele, H.-M. Chen, R. Kazman, Y. Cai, L. Xiao, and C. A. Silva. Manufacturing execution systems: A vision for managing software development. Journal of Systems and Software, 101:59--68, Mar. 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. L. Peters. Technical debt: The ultimate antipattern - the biggest costs may be hidden, widespread, and long term, 2014.Google ScholarGoogle Scholar
  25. F. Shull, D. Falessi, C. Seaman, M. Diep, and L. Layman. Technical debt: Showing the way for better transfer of empirical results. In J. Münch and K. Schmid, editors, Perspectives on the Future of Software Engineering, pages 179--190. Springer Berlin Heidelberg, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  26. L. Xiao, Y. Cai, and R. Kazman. Design rule spaces: A new form of architecture insight. In Proc. 36th International Conference on Software Engineering, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. N. Zazworka, A. Vetro, C. Izurieta, S. Wong, Y. Cai, C. Seaman, and F. Shull. Comparing four approaches for technical debt identification. Software Quality Journal, pages 1--24, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. In Proc. 26th International Conference on Software Engineering, pages 563--572, May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Identifying and quantifying architectural debt

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ICSE '16: Proceedings of the 38th International Conference on Software Engineering
      May 2016
      1235 pages
      ISBN:9781450339001
      DOI:10.1145/2884781

      Copyright © 2016 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 14 May 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate276of1,856submissions,15%

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader