University of Massachusetts Amherst

Computer Science Distinguished Lecture Series: Barbara Ryder

Barbara G. Ryder

Rutgers University

Division of Computer and Information Sciences

Faculty Host:Lori Clarke

"Helping Programmers Debug Code Using Semantic Change Impact Analysis*"

Small changes can have major and non-local effects in object-oriented languages, due to the use of subtyping and dynamic dispatch. This complicates life for maintenance programmers who need to fix bugs or add enhancements to systems originally written by others. Change impact analysis provides feedback on the semantic impact of an edit, that is a set of program changes. This analysis can be used to determine the set of tests associated with a program that are affected by a set of changes. Moreover, if a test fails, the subset of changes possibly responsible for the failure can be identified, as well as a subset of changes that can be incorporated safely without affecting any existing test.

This talk on our research will cover change impact analysis, presenting the algorithms and empirical results obtained with Chianti, our Change Impact Analysis Tool. Chianti is implemented as an Eclipse plug-in, and will be publicly available soon. We also will discuss experiences with our newer tools JUnit/CIA and Crisp. JUnit/CIA links change impact analysis with unit testing (in the JUnit system) to identify those parts of an edit most likely to have contributed to a worsening test outcome, by classifying the changes according to the outcomes of the tests they affect. Crisp forms intermediate versions of a program by adding a partial edit to the original program version, allowing incremental exploration of the effects of an edit.

*This is joint research with Dr. Frank Tip of the IBM T.J. Watson Research Center and graduate students Xiaoxia Ren, Max Stoerzer, Ophelia Chesley and Fenil Shah under the support of NSF grant CCR-0204410 and with partial support from IBM Research. Relevant publications include papers at PASTE?01, OOPSLA?04, ICSM?05, FSE?06 and IEEE TSE (in press).

Barbara Ryder