Bridging the Gap between Software Architecture and Quality
|Event Date:||February 8, 2018|
|Speaker Affiliation:||Asst. Professor, School of Systems and Enterprises
Stevens Institute of Technology
|Type:||Computer Engineering Seminar
|Contact Name:||Professor Xiaokang Qiu
|School or Program:||Electrical and Computer Engineering
Software architecture plays critical roles throughout the entire life cycle of a software project. Poor software architecture can lead to quality problems, such as error-proneness and high maintenance costs. 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 my work 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 model, the DRSpace model, that represents software architecture as multiple overlapping spaces; (2) an architecture root detection algorithm that automatically captures the most problematic 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 architecturally connected 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. Our approach can identify architectural debts that 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.
Lu Xiao is an Assistant Professor in the School of Systems and Enterprises at Stevens Institute of Technology. Her research focuses on software architecture, software evolution and maintenance. In particular, she is interested in modeling and analyzing software architecture and its evolution for addressing separate concerns of stakeholders, such as maintenance quality and performance problems. She earned her PhD in Computer Science at Drexel University in 2016, advised by Dr. Yuanfang Cai. Visit her website at: http://personal.stevens.edu/~lxiao6/