Seminars & Colloquia

Barbara Ryder

Computer Science, Rutgers University

"Helping Programmers Debug Code Using Semantic Change Impact Analysis"

Wednesday February 20, 2008 09:30 AM
Location: 3211, EB2 NCSU Centennial Campus
(Visitor parking instructions)

 

Abstract: 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 will present 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 now is publicly available from the Prolangs website (http://prolangs.rutgers.edu/). We also will discuss experiences with our newer tool JUnit/CIA and the Crisp module in Chianti. 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. We also will present a new heuristic for ranking the likelihood that a part of the edit might be failure-inducing, thus directing the exploration of intermediate program versions. Initial empirical results will be reported.

Short Bio: Barbara G. Ryder received an A.B. degree in Applied Mathematics from Brown University in 1969, a MS degree in Computer Science from Stanford University in 1971, and a Ph.D in Computer Science from Rutgers University in 1982. Dr. Ryder is a Professor of Computer Science at Rutgers University. Before becoming an academic, she worked from 1971-1976 at AT&T Bell Laboratories in Murray Hill, NJ. Dr. Ryder's research interests focus on static and dynamic program analyses for object-oriented systems, to use in practical software tools.

Dr. Ryder was selected as a Fellow of the ACM in 1998 and received the ACM SIGPLAN Distinguished Service Award in 2001. She was selected as a CRA-W Distinguished Professor in 2004. She received the Rutgers Graduate School Teaching Award in 2007, a Rutgers University Leader in Diversity Award in 2006, and the Professor of the Year for Excellence in Teaching from the Rutgers Computer Science Graduate Student Society in 2003. She was Chair of the Federated Conference on Research in Computing (FCRC) in 2003 and served as a Member of the Board of Directors of the Computer Research Association (1998-2001). Dr. Ryder is an ACM Council Member at Large (2000-2008) and has served in positions of leadership on the ACM SIGPLAN Executive Committee (1989-1999).

Dr. Ryder is an editorial board member of IEEE Transactions on Software Engineering and Software, Practice and Experience. She has served on many program and conference committees for conferences sponsored by ACM SIGPLAN and ACM SIGSOFT. She has been an active panelist in the CRA Workshops on Academic Careers for Women.

Host: Annie Anton, Computer Science, North Carolina State University


Back to Seminar Listings
Back to Colloquia Home Page