TY - JOUR
T1 - Design Rule Spaces
T2 - A New Model for Representing and Analyzing Software Architecture
AU - Cai, Yuanfang
AU - Xiao, Lu
AU - Kazman, Rick
AU - Mo, Ran
AU - Feng, Qiong
N1 - Publisher Copyright:
© 1976-2012 IEEE.
PY - 2019/7/1
Y1 - 2019/7/1
N2 - 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.
AB - 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.
KW - Software architecture
KW - bug localization
KW - code smells
KW - defect prediction
KW - reverse-engineering
KW - technical debt
UR - http://www.scopus.com/inward/record.url?scp=85041003076&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85041003076&partnerID=8YFLogxK
U2 - 10.1109/TSE.2018.2797899
DO - 10.1109/TSE.2018.2797899
M3 - Article
AN - SCOPUS:85041003076
SN - 0098-5589
VL - 45
SP - 657
EP - 682
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 7
M1 - 8268667
ER -