[PAST EVENT] Bridging the Gap between Software Architecture and Quality

February 24, 2016
8am - 9am
Location
McGlothlin-Street Hall, Room 020
251 Jamestown Rd
Williamsburg, VA 23185Map this location
Wednesday, February 24, 8am-9am, McCl 020
Lu Xiao, Drexel University

Title: Bridging the Gap between Software Architecture and Quality

Abstract: On one hand, software architecture plays critical roles throughout the entire life cycle of a software project. Poor software architecture can lead to maintenance nightmares. On the other hand, software error-proneness, incurring high maintenance costs, has been a prevailing quality problem seen in all kinds of software projects. However, there remains a gap between software architecture and quality---we lack an approach that can directly and automatically analyze the relationship between software architecture and quality. Due to this gap, many important questions are not well addressed: What makes errors in a project hard to eradicate? Is software architecture responsible for the high error-rates? What are the problems in the architecture? How much are the architecture problems costing in a project? Whether and when to fix these problems to reduce the maintenance costs?

In this talk, I will introduce our approach in bridging the gap between software architecture and quality (in terms of error-proneness and high maintenance costs). This approach contains three parts: (1) a novel architecture insight, the DRSpace model, which represents software architecture as multiple overlapping design spaces; (2) an architecture root detection algorithm that automatically captures the most problematic design spaces from the DRSpace model; (3) a formal definition of architecture debt and an approach to automatically identify such debts, quantify and model the growing trend of the maintenance costs incurred by such debts. The study of dozens of software systems shows that the majority of error-prone files in a project are usually concentrated in only a few architecture roots, making errors hard to eradicate. These roots contain recurring architecture flaws---modularity violations, unhealthy inheritance, unstable interfaces, and cyclic dependencies---that could be the root causes of high maintenance costs. The files identified in architectural debts generate and grow significant amounts of maintenance efforts over time. The developers can't reduce the over-all error-proneness of a project without paying off the debts first. Our approach has the potential to identify refactoring opportunities, and support decision makings such as whether, when, and where to refactor in software projects.

Bio: Lu Xiao is a Ph.D student in the Computer Science Department at the College of Computing and Informatics at Drexel University, supervised by Dr. Yuanfang Cai. Her research interests lie in the area of software engineering, with specific foci on software architecture, software maintenance, and software quality. Her work, titled "Detecting and Preventing the Architectural Roots of Bugs", won the 1st Prize at the inter-disciplinary Grand Finals of the ACM Student Research Competition in 2015. She received the bachelor's degree from Beijing University of Posts and Telecommunications in 2009. {{https://www.cs.drexel.edu/~lx52/LuXiao/, Here is her website.}}