Software architecture is generally recognized as the most critical determinant in achieving the functional and quality attribute requirements of a software system. Poor architecture can be the root cause of quality problems such as bug-proneness and related maintenance difficulties. Software practitioners need to identify architectural flaws and make informed decisions so that they can correct such flaws and fundamentally improve software quality. However, in the past there was no systematic way to model, analyze, and monitor the architecture of a software system with respect to addressing maintenance quality concerns. Consequently, there was a serious gap between software architecture and maintenance quality.;This dissertation offers a methodology to bridge the gap between software architecture and maintenance quality problems. Our proposed methodology consists of three parts: (1) a new architecture model, called the DRSpace model, which simultaneously captures the modular structure and maintenance ''penalties" of a software system; (2) an Architecture Root detection algorithm that automatically identifies the most problematic design spaces, aggregating bug-prone files in a software system; and (3) a formal definition of Architectural Debt and an approach that automatically identifies such debts, and quantifies the ''costs" and ''interest rates" of such debts. Our studies have shown that this methodology has great potential in helping software practitioners identify and understand the architectural root causes of bug-proneness and related high maintenance costs. Ultimately this supports informed refactoring decisions to fundamentally improve software maintenance quality.
展开▼