ABSTRACT
Technical debt is a metaphor describing situations where developers accept sacrifices in one dimension of development (e.g. software quality) in order to optimize another dimension (e.g. implementing necessary features before a deadline). Approaches, such as code smell detection, have been developed to identify particular kinds of debt, e.g. design debt. What has not yet been understood is the impact design debt has on the quality of a software product. Answering this question is important for understanding how growing debt affects a software product and how it slows down development, e.g. though introducing rework such as fixing bugs. In this case study we investigate how design debt, in the form of god classes, affects the maintainability and correctness of software products by studying two sample applications of a small-size software development company. The results show that god classes are changed more often and contain more defects than non-god classes. This result complements findings of earlier research and suggests that technical debt has a negative impact on software quality, and should therefore be identified and managed closely in the development process.
- Jan Schumacher, Nico Zazworka, Forrest Shull, Carolyn Seaman, and Michele Shaw. 2010. Building empirical support for automated code smell detection. In Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM '10). ACM, New York, NY, USA Google ScholarDigital Library
- Olbrich, S. M., Cruzes, D. S., Sjoberg, D. I. K. 2010. Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems. Software Maintenance, ICSM 2010, pp. 1--10, Timisoara. Google ScholarDigital Library
- Olbrich, S., Cruzes, D., Basili, V., Zazworka, N. (2009). The evolution and impact of code smells: A case study of two open source systems. Empirical Software Engineering and Measurement, 2009. ESEM 2009. 3rd International Symposium on, 390--400. Google ScholarDigital Library
- Lanza, M., Marinescu, R. 2006. Object-oriented metrics in practice. Springer. Google ScholarDigital Library
- Marinescu, R. 2004. Detection Strategies: Metrics-Based Rules for Detecting Design Flaws. In Proceedings of the 20th IEEE international Conference on Software Maintenance (September 11 - 14, 2004). ICSM. IEEE Computer Society, Washington, DC, 350--359. Google ScholarDigital Library
- Fowler, M., Beck, K. 1999. Refactoring: improving the design of existing code. Addison Wesley. Google ScholarDigital Library
- http://c2.com/xp/CodeSmell.html, last retrieved Jan 27, 2011.Google Scholar
- Foutse Khomh, Massimiliano Di Penta, and Yann-Gael Gueheneuc. 2009. An Exploratory Study of the Impact of Code Smells on Software Change-proneness. In Proceedings of the 2009 16th Working Conference on Reverse Engineering (WCRE '09). IEEE Computer Society, Washington, DC, USA, 75--84. Google ScholarDigital Library
- Wei Li and Raed Shatnawi. 2007. An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. J. Syst. Softw. 80, 7 (July 2007), 1120--1128. Google ScholarDigital Library
- Nanette Brown, Yuanfang Cai, Yuepu Guo, Rick Kazman, Miryung Kim, Philippe Kruchten, Erin Lim, Alan MacCormack, Robert Nord, Ipek Ozkaya, Raghvinder Sangwan, Carolyn Seaman, Kevin Sullivan, and Nico Zazworka. 2010. Managing technical debt in software-reliant systems. In Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10). ACM, New York, NY, USA, 47--52. Google ScholarDigital Library
- Thode Jr., H. C.: Testing for Normality. Marcel Dekker, New York, 2002.Google ScholarCross Ref
Index Terms
- Investigating the impact of design debt on software quality
Recommendations
Prioritizing design debt investment opportunities
MTD '11: Proceedings of the 2nd Workshop on Managing Technical DebtTechnical debt is the technical work developers owe a system, typically caused by speeding up development, e.g. before a software release. Approaches, such as code smell detection, have been developed to identify particular kinds of debt, e.g. design ...
Technical debt resulting from architectural degradation and code smells: a systematic mapping study
Poor design choices, bad coding practices, or the need to produce software quickly can stand behind technical debt. Unfortunately, manually identifying and managing technical debt gets more difficult as the software matures. Recent research offers ...
Investigating how Agile Software Practitioners Repay Technical Debt in Software Projects
SBQS '22: Proceedings of the XXI Brazilian Symposium on Software QualityContext: The adoption of agile methodologies can bring benefits to software projects, but such methodologies are also prone to technical debt (TD) accumulation. Knowing the practices used for repaying debt items and practice avoidance reasons (PARs) ...
Comments