For a better experience, click the Compatibility Mode icon above to turn off Compatibility Mode, which is only for viewing older websites.

Yuanfang Cai Receives NSF Grant to Improve How Software Defects are Discovered and Resolved

July 21, 2015

Yuanfang Cai, PhD, an associate professor in the College of Computing & Informatics (CCI) at Drexel University, is the recipient of a three-year grant from the National Science Foundation (NSF) for her project titled “Finding and Fixing Architectural Hotspots: An Economics-Based Decision Support Approach” (see project abstract below). This is a medium-sized project in collaboration with University of Hawaii Professor Rick Kazman, PhD. The total of the project is $865,000 and the Drexel University share is $504,289. This grant was awarded via NSF’s Division of Computing and Communication Foundations (CCF).

While Cai’s broad research area is in software engineering, her specific interests include software architecture modeling and analysis, software economics, software evolution and modularity.  Her recent work on architecture debt detection and quantification has been adopted by multiple major software development organizations.

Cai was recently selected as one of last year's top stories in the 2014 President's Report for her software architecture analysis tool, known as Titan, and her subsequent work with Drexel technology accelerator Drexel Ventures.

She received her doctorate and master of science degree in computer science from the University of Virginia, and a bachelor of science degree in computer science from Xidian University.

Project Abstract
Recent research has revealed strong correlations between error-proneness and change-proneness in source code files and software architecture decisions. That is, even though a software system may have hundreds of buggy files, these files always form just a few architecturally connected groups: architecture hotspots. Hotspots exhibit architectural flaws that propagate errors among source files. This phenomenon has been observed over numerous projects, both open source and industrial, regardless of their domain, age, or programming language. The implication is that it is impossible to reduce error or change rates in complex software systems without fixing the architecture problems that cause these errors to propagate. The objective of the research proposed here is to guide the identification of high-maintenance architecture problems, quantitatively characterize their consequences in terms of software quality and productivity, and create business cases to justify their refactoring. The end goal is to reduce long-term software maintenance costs through strategic architecture improvement.

The key to this research is to automatically extract architecture hotspots, and to quantify their economic consequences in terms of increased bug-fixing effort or reduced ability to deliver features. This quantification involves building models that leverage information broadly available in software projects—on bugs, changes, and commits—so that an architect can plan refactorings to the hotspots and confidently estimate the costs and benefits of such refactorings. This research will produce direct impact through the PIs' extensive national and international academic and industrial collaborations. It will fundamentally change how software defects are discovered, examined, and handled: instead of examining hundreds of defective files, each one in isolation, the analyst only needs to examine a few architecture hotspots detected by the proposed approach, fixing numerous defects simultaneously by removing their architecture roots, thus providing substantial savings in maintenance costs. The proposed decision-support approach has the potential to change the management of the software industry by providing an empirical basis for the pricing and risk analysis of software architecture decisions. The proposed architecture hotspot detection approach will influence numerous software engineering research areas, and will have significant impact on software design education by providing tool-support for the teaching of software architecture and design analysis.