Collaborative Research: SHF: Small: Technical Debt Management in Dynamic and Distributed Systems
University Of Hawaii, Honolulu
Investigators
Abstract
The vast and ever-evolving software industry is rapidly adopting distributed computing paradigms. These paradigms are supported by robust cloud-based infrastructures and by newer programming languages and frameworks. While this brings many benefits, it also brings new problems. The most pressing issue is that—as with traditional monolithic systems—the structure of this modern software also decays from an accumulation of implementation shortcuts, a form of technical debt. This situation is pervasive throughout the software industry. Such debt grows, largely unnoticed, until it impacts software stability, maintenance costs, and, ultimately, the financial performance of a company. But few projects pay down the debt, because they have no way to pinpoint it, monitor it, visualize it, or quantify it, especially for modern distributed (e.g., microservice-based) systems, or systems built using dynamic languages where dependencies are implicit and diverse. The critical issue facing the software industry is: how to effectively measure the complexity and risk of these contemporary software systems and how to pinpoint the sources of their design debt? Given the implicit and distributed nature of these modern systems, existing complexity measures and anti-patterns defined for traditional monolithic systems no longer fit. This project will address this challenge through the following thrusts. The first thrust creates a unified model to capture heterogeneous and distributed entities and relations, using various techniques such as type inference. The second thrust empirically explores and defines a set of anti-patterns that capture architecture/design debts for dynamically typed and distributed systems, building on the unified model created in the first thrust. The third thrust explores and formally defines complexity metrics suitable for these contemporary systems. These new anti-patterns and metrics will be defined based on fundamental principles of software design, and empirically validated using a large number of open source and industrial projects. This project addresses pressing and widespread issues in the enormous and rapidly changing software industry, and will enable designers and managers to visualize their design debt, to quantify the impact of such debt, and to make informed decisions to improve the value of their products. This project has the potential to deliver significant industrial impact: improving the software products and development processes that drive US economy. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
View original record on NSF Award Search →