Abstract Details

<< Back to Schedule

10/13/2015  |   4:00 PM - 4:45 PM   |  Pacific II

Finding and Fixing the Architectural Roots of Bugginess

Existing research has shown that files that were buggy in the past are also likely to be buggy in the future, making history an effective predictor of bug location. But this effectiveness also implies that buggy files are seldom truly fixed, otherwise history would not be a good predictor. Our research has revealed that, in most cases, buggy files seldom exist alone; hundreds of buggy files can be observed to be connected by just a few architectural “roots”. Roots are created by implementation flaws that introduce unwanted relations between files and these relations cause clusters of files to be buggy. We call these clusters architecture hotspots. The objective of our research is: to locate these flawed files by reverse engineering source code; and to identify the design flaws that cause bugs to arise, propagate, and persist. In our research we identify and categorize such design flaws and seek remedies to them via refactoring to remove the flaws. Furthermore, using this identification, we can track the growth of hotspots over time, determine which ones are causing the most damage to a project, and rank these hotspots based on their maintenance costs. We can then build business cases to justify the cost-effectiveness of such refactoring activities. Our ultimate objective is to reduce maintenance costs through strategic design improvement. Our approach leverages a novel software representation, called the Design Rule Space (DRSpace), that can model structural and evolutionary dependency relations simultaneously, and model software architecture as multiple overlapping design spaces. In this talk we will describe DRSpaces, show how they can provide unique insight into software structure, helping to identify areas of the software that present future modifiability, maintainability, and security problems.

Presentation:
This presentation has not yet been uploaded.

Handouts:
No handouts have been uploaded.

Rick Kazman (Primary Presenter), SEI/CMU and University of Hawaii, kazman@hawaii.edu;
Rick Kazman is a Professor at the University of Hawaii and a Principal Researcher at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. Kazman has created several highly influential methods and tools for architecture analysis, including the SAAM (Software Architecture Analysis Method), the ATAM (Architecture Tradeoff Analysis Method), the CBAM (Cost-Benefit Analysis Method) and the Dali and Titan tools. He is the author of over 150 peer-reviewed papers, and co-author of several books, including Software Architecture in Practice, Evaluating Software Architectures: Methods and Case Studies, and Ultra-Large-Scale Systems: The Software Challenge of the Future.

2013 Sponsors: IEEE and IEEE Computer Society