A Case Study in Locating the Architectural Roots of Technical Debt

Abstract

Our recent research has shown that, in large-scale software systems, defective files seldom exist alone. They are usually architecturally connected, and their architectural structures exhibit significant design flaws which propagate bugginess among files. We call these flawed structures the architecture roots, a type of technical debt that incurs high maintenance penalties. Removing the architecture roots of bugginess requires refactoring, but the benefits of refactoring have historically been difficult for architects to quantify or justify. In this paper, we present a case study of identifying and quantifying such architecture debts in a large-scale industrial software project. Our approach is to model and analyze software architecture as a set of design rule spaces (DRSpaces). Using data extracted from the project s development artifacts, we were able to identify the files implicated in architecture flaws and suggest refactorings based on removing these flaws. Then we built economic models of the before and (predicted) after states, which gave the organization confidence that doing the refactorings made business sense, in terms of a handsome return on investment.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 16, 2015
Accession Number
ADA614220

Entities

People

  • Andriy Shapochka
  • Lu Xiao
  • Qiong Feng
  • Ran Mo
  • Rick Kazman
  • Serge Haziyev
  • Volodymyr Fedak
  • Yuanfang Cai

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Business Administration
  • Case Studies
  • Computer Programs
  • Control Systems
  • Detection
  • Economic Analysis
  • Economic Models
  • Engineering
  • Hierarchies
  • Investments
  • Lessons Learned
  • Maintenance
  • Maintenance Costs
  • Software Design
  • Software Development
  • Standards
  • Technical Debt

Fields of Study

  • Computer science
  • Engineering

Readers

  • Aerospace Propulsion Engineering.
  • Life Cycle Cost Analysis
  • Parallel and Distributed Computing.

Technology Areas

  • Space