[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1109/ICSE-SEIP.2019.00026acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

A longitudinal study of identifying and paying down architecture debt

Published: 27 May 2019 Publication History

Abstract

Architecture debt is a form of technical debt that derives from the gap between the intended and the actual architecture design. In this study we measured architecture debt in two ways: 1) in terms of system-wide coupling measures, and 2) in terms of the number and severity of architecture flaws. In recent research it was shown that the amount of architecture debt has a huge impact on software maintainability and evolution. Consequently, reducing debt is expected to make software less costly and more amenable to change. This paper reports on a longitudinal study of a healthcare communications product created by BrightSquid Secure Communications Corp. This young company is facing the typical trade-off problem of desiring responsiveness to change requests, but wanting to avoid the ever-increasing effort that the accumulation of quick-and-dirty changes eventually incurs. In the first stage of the study, we analyzed the status of the "before" system, which showed the impacts of change requests. This initial study motivated a more in-depth analysis of architecture debt. The results of this debt analysis were used in the second stage of the work to motivate a comprehensive refactoring of the software system. The third stage was a follow-on architecture debt analysis which quantified the improvements realized. Using this quantitative evidence, augmented by qualitative evidence gathered from in-depth interviews with BrightSquid's architects, we present lessons learned about the costs and benefits of paying down architecture debt in practice.

References

[1]
A. Begel and T. Zimmermann. Analyze this! 145 questions for data scientists in software engineering. In 36th International Conference on Software Engineering, pages 12--23, 2014.
[2]
N. Brown, Y. Cai, 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. In FSE/SDP Workshop on the Future of Software Engineering Research at ACM SIGSOFT FSE-18, pages 47--52, 2010.
[3]
J. Carriere, R. Kazman, and I. Ozkaya. A cost-benefit framework for making architectural decisions in a business context. pages 149--157, 2010.
[4]
W. Cunningham. The WyCash portfolio management system. In Addendum to Proc. 7th, pages 29--30, Oct. 1992.
[5]
B. Curtis, J. Sappidi, and A. Szynkarski. Estimating the principal of an application's technical debt. volume 29, pages 34--42, 2012.
[6]
Q. Feng, R. Kazman, Y. Cai, R. Mo, and L. Xiao. An architecture-centric approach to security analysis. pages 221--230, 2016.
[7]
B. Fitzgerald and T. O'Kane. A longitudinal study of software process improvement. volume 16, pages 37--45, 1999.
[8]
S. J. Kabeer, M. Nayebi, G. Ruhe, C. Carlson, and F. Chew. Predicting the vector impact of change-an industrial case study at brightsquid. In International Symposium on Empirical Software Engineering and Measurement (ESEM), pages 131--140, 2017.
[9]
R. Kazman, Y. Cai, R. Mo, Q. Feng, L. Xiao, S. Haziyev, V. Fedak, and A. Shapochka. A case study in locating the architectural roots of technical debt. In 37th International Conference on Software Engineering, volume 2, pages 179--188, 2015.
[10]
M. Kim, D. Cai, and S. Kim. An empirical investigation into the role of API-level refactorings during software evolution. pages 151--160, 2011.
[11]
J. Li, N. B. Moe, and T. Dybå. Transition from a plan-driven process to scrum: a longitudinal case study on software quality. In International symposium on Empirical Software Engineering and Measurement, page 13, 2010.
[12]
A. MacCormack, J. Rusnak, and C. Baldwin. Exploring the duality between product and organizational architecture: A test of the mirroring hypothesis. Working Paper 08-039, Harvard Business School, 2008. http://www.hbs.edu/research/pdf/08-039.pdf.
[13]
A. MacCormack, J. Rusnak, and C. Y. Baldwin. Exploring the structure of complex software designs: An empirical study of open source and proprietary code. volume 52, pages 1015--1030. INFORMS, 2006.
[14]
A. Martini and J. Bosch. An empirically developed method to aid decisions on architectural technical debt refactoring: Anacondebt. In International Conference on Software Engineering Companion, pages 31--40, 2016.
[15]
R. Mo, Y. Cai, R. Kazman, and L. Xiao. Hotspot patterns: The formal definition and automatic detection of architecture smells. In 12th Working IEEE/IFIP Conference on Software Architecture (WICSA), pages 51--60, 2015.
[16]
R. Mo, Y. Cai, R. Kazman, L. Xiao, and Q. Feng. Decoupling level: a new metric for architectural maintenance complexity. In 38th International Conference on Software Engineering, pages 499--510, 2016.
[17]
R. Mo, W. Snipes, Y. Cai, S. Ramaswamy, R. Kazman, and M. Naedele. Experiences applying automated architecture analysis tool suites. In 33rd International Conference on Automated Software Engineering, pages 779--789, 2018.
[18]
M. Nayebi, L. Dicke, R. Ittyipe, C. Carlson, and G. Ruhe. ESSMArT way to manage user requests. arXiv preprint arXiv:1808.03796, 2018.
[19]
M. Nayebi, S. J. Kabeer, G. Ruhe, C. Carlson, and F. Chew. Hybrid labels are the new measure! volume 35, pages 54--57, 2018.
[20]
R. L. Nord, I. Ozkaya, P. Kruchten, and M. Gonzalez-Rojas. In search of a metric for managing architectural technical debt. In SConference on Software Architecture and European Conference on Software Architecture, pages 91--100, 2012.
[21]
P. Runeson, M. Host, A. Rainer, and B. Regnell. Case study research in software engineering: Guidelines and examples. John Wiley & Sons, 2012.
[22]
L. Xiao, Y. Cai, and R. Kazman. Design rule spaces: A new form of architecture insight. In 36th International Conference on Software Engineering, pages 967--977, 2014.
[23]
L. Xiao, Y. Cai, and R. Kazman. Titan: A toolset that connects software architecture with quality analysis. In International Symposium on Foundations of Software Engineering, pages 763--766, 2014.
[24]
L. Xiao, Y. Cai, R. Kazman, R. Mo, and Q. Feng. Identifying and quantifying architectural debt. In 38th International Conference on Software Engineering, pages 488--498, 2016.
[25]
N. Zazworka, A. Vetro, C. Izurieta, S. Wong, Y. Cai, C. Seaman, and F. Shull. Comparing four approaches for technical debt identification. pages 1--24, 2013.

Cited By

View all
  • (2024)M-score: An Empirically Derived Software Modularity MetricProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686697(382-392)Online publication date: 24-Oct-2024
  • (2020)Software development data for architecture analysisProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice10.1145/3377813.3381357(231-232)Online publication date: 27-Jun-2020
  • (2019)DV8Proceedings of the Second International Conference on Technical Debt10.1109/TechDebt.2019.00015(53-54)Online publication date: 26-May-2019

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE-SEIP '19: Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice
May 2019
339 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 27 May 2019

Check for updates

Author Tags

  1. architecture debt
  2. cost-benefit analysis
  3. longitudinal study
  4. refactoring

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)M-score: An Empirically Derived Software Modularity MetricProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686697(382-392)Online publication date: 24-Oct-2024
  • (2020)Software development data for architecture analysisProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice10.1145/3377813.3381357(231-232)Online publication date: 27-Jun-2020
  • (2019)DV8Proceedings of the Second International Conference on Technical Debt10.1109/TechDebt.2019.00015(53-54)Online publication date: 26-May-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media