Early identification of incompatibilities in multi-component upgrades

Download: PDF.

“Early identification of incompatibilities in multi-component upgrades” by Stephen McCamant and Michael D. Ernst. In ECOOP 2004 — Object-Oriented Programming, 18th European Conference, (Oslo, Norway), June 2004, pp. 440-464.
An extended version appeared as “Predicting problems caused by component upgrades” by Stephen McCamant and Michael D. Ernst. MIT Laboratory for Computer Science technical report 941, (Cambridge, MA), Mar. 2004. Revision of first author's Master's thesis.

Abstract

Previous work proposed a technique for predicting problems resulting from replacing one version of a software component by another. The technique reports, before performing the replacement or integrating the new component into a system, whether the upgrade could be problematic for that particular system. This paper extends the technique to make it more applicable to real-world upgrades. First, we extend the theoretical framework to handle more complex upgrades, including procedures that share state, callbacks, and simultaneous upgrades of multiple components. The old model is a special case of our new one. Second, we show how to handle four real-world situations that were not addressed by previous work: non-local state, non-determinism, distinguishing old from new incompatibilities, and lack of test suites. Third, we present a case study in which we upgrade the Linux C library, for 48 Unix programs. Our implementation identified real incompatibilities among versions of the C library that affected some of the programs, and it approved the upgrades for other programs that were unaffected by the changes.

Download: PDF.

BibTeX entry:

@inproceedings{McCamantE2004,
   author = {Stephen McCamant and Michael D. Ernst},
   title = {Early identification of incompatibilities in multi-component
	upgrades},
   booktitle = {ECOOP 2004 --- Object-Oriented Programming, 18th European
	Conference},
   pages = {440--464},
   address = {Oslo, Norway},
   month = jun,
   year = {2004}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.