Predicting Problems Caused by Component Upgrades
Stephen McCamant

I'll describe a new, automatic technique to assess whether replacing a component of a software system by a purportedly compatible component may change the behavior of the system. The technique operates before integrating the new component into the system or running system tests, permitting quicker and cheaper identification of problems, and takes into account the system's particular use of the component. No formal specifications are required, permitting detection of problems due either to errors in the component or to errors in the system.

The technique generates an operational abstraction for the old component in the context of the system and generates an operational abstraction for the new component in the context of its test suite (an operational abstraction is a set of program properties that generalizes over observed run-time behavior). If automated logical comparison indicates that the new component does not make all the guarantees that the old one did, then the upgrade may affect system behavior and should not be performed without further scrutiny. In case studies, the technique identified several incompatibilities among software components.

Back to the Programming Systems Graduate Zeminar.


Last updated: Fri Jul 11 12:15:37 EDT 2003