Nothing Special   »   [go: up one dir, main page]

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 2016 Publication 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.
[2]
C. Y. Baldwin and K. B. Clark. Design Rules, Vol. 1: The Power of Modularity. MIT Press, 2000.
[3]
L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, 3rd edition, 2012.
[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.
[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.
[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.
[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.
[8]
B. Curtis, J. Sappidi, and A. Szynkarski. Estimating the principal of an application's technical debt. IEEE Software, 29(6):34--42, 2012.
[9]
E. da S. Maldonado and E. Shihab. Detecting and quantifying different types of self-admitted technical debt. SIGSOFT Softw. Eng. Notes, Apr. 2015.
[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.
[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.
[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.
[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.
[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.
[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.
[16]
R. Kazman and S. J. Carriere. Playing detective: Reconstructing software architecture from available evidence. Automated Software Engineering, 6(2):107--138, Apr. 1999.
[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.
[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.
[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.
[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.
[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.
[22]
R. Mo, J. Garcia, Y. Cai, and N. Medvidovic. Mapping architectural decay instances to dependency models, 2013.
[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.
[24]
L. Peters. Technical debt: The ultimate antipattern - the biggest costs may be hidden, widespread, and long term, 2014.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2024)A systematic review of refactoring opportunities by software antipattern detectionAutomated Software Engineering10.1007/s10515-024-00443-y31:2Online publication date: 15-May-2024
  • (2024)The Nature of Technical Debt in the Development of Descriptive Models for MBSEINCOSE International Symposium10.1002/iis2.1316034:1(516-526)Online publication date: 7-Sep-2024
  • (2023)Architectural Technical Debt - A Systematic Mapping StudyProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613399(196-205)Online publication date: 25-Sep-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. software architecture
  2. software quality
  3. technical debt

Qualifiers

  • Research-article

Funding Sources

  • Department of Defense

Conference

ICSE '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)174
  • Downloads (Last 6 weeks)32
Reflects downloads up to 23 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A systematic review of refactoring opportunities by software antipattern detectionAutomated Software Engineering10.1007/s10515-024-00443-y31:2Online publication date: 15-May-2024
  • (2024)The Nature of Technical Debt in the Development of Descriptive Models for MBSEINCOSE International Symposium10.1002/iis2.1316034:1(516-526)Online publication date: 7-Sep-2024
  • (2023)Architectural Technical Debt - A Systematic Mapping StudyProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613399(196-205)Online publication date: 25-Sep-2023
  • (2023)Simulating Software Evolution to Evaluate the Reliability of Early Decision-making among Design Alternatives toward MaintainabilityACM Transactions on Software Engineering and Methodology10.1145/356993132:3(1-38)Online publication date: 26-Apr-2023
  • (2023)An architectural technical debt index based on machine learning and architectural smellsIEEE Transactions on Software Engineering10.1109/TSE.2023.3286179(1-27)Online publication date: 2023
  • (2023)Evaluating the Impact of Possible Dependencies on Architecture-Level MaintainabilityIEEE Transactions on Software Engineering10.1109/TSE.2022.317128849:3(1064-1085)Online publication date: 1-Mar-2023
  • (2023)On the Relationship Between Organizational Structure Patterns and Architecture in Agile TeamsIEEE Transactions on Software Engineering10.1109/TSE.2022.315041549:1(325-347)Online publication date: 1-Jan-2023
  • (2023)Dependency Facade: The Coupling and Conflicts between Android Framework and Its CustomizationProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00144(1674-1686)Online publication date: 14-May-2023
  • (2023)Identifying Anti-Patterns in Distributed Systems With Heterogeneous Dependencies2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C57050.2023.00035(116-120)Online publication date: Mar-2023
  • (2023)Software design analysis and technical debt management based on design rule theoryInformation and Software Technology10.1016/j.infsof.2023.107322164(107322)Online publication date: Dec-2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media