Design Rule Spaces: A New Model for Representing and Analyzing Software Architecture

Yuanfang Cai, Lu Xiao, Rick Kazman, Ran Mo, Qiong Feng

Research output: Contribution to journalArticlepeer-review

25 Scopus citations

Abstract

In this paper, we propose an architecture model called Design Rule Space (DRSpace). We model the architecture of a software system as multiple overlapping DRSpaces, reflecting the fact that any complex software system must contain multiple aspects, features, patterns, etc. We show that this model provides new ways to analyze software quality. In particular, we introduce an Architecture Root detection algorithm that captures DRSpaces containing large numbers of a project's bug-prone files, which are called Architecture Roots (ArchRoots). After investigating ArchRoots calculated from 15 open source projects, the following observations become clear: from 35 to 91 percent of a project's most bug-prone files can be captured by just 5 ArchRoots, meaning that bug-prone files are likely to be architecturally connected. Furthermore, these ArchRoots tend to live in the system for significant periods of time, serving as the major source of bug-proneness and high maintainability costs. Moreover, each ArchRoot reveals multiple architectural flaws that propagate bugs among files and this will incur high maintenance costs over time. The implication of our study is that the quality, in terms of bug-proneness, of a large, complex software project cannot be fundamentally improved without first fixing its architectural flaws.

Original languageEnglish
Article number8268667
Pages (from-to)657-682
Number of pages26
JournalIEEE Transactions on Software Engineering
Volume45
Issue number7
DOIs
StatePublished - 1 Jul 2019

Keywords

  • Software architecture
  • bug localization
  • code smells
  • defect prediction
  • reverse-engineering
  • technical debt

Fingerprint

Dive into the research topics of 'Design Rule Spaces: A New Model for Representing and Analyzing Software Architecture'. Together they form a unique fingerprint.

Cite this