Formalizing lightweight verification of software component composition

Download: PDF, PostScript.

“Formalizing lightweight verification of software component composition” by Stephen McCamant and Michael D. Ernst. In SAVCBS 2004: Specification and Verification of Component-Based Systems, (Newport Beach, CA, USA), October 31-November 1, 2004, pp. 47-54.


Software errors often occur at the interfaces between separately developed components. Incompatibilities are an especially acute problem when upgrading software components, as new versions may be accidentally incompatible with old ones. As an inexpensive mechanism to detect many such problems, previous work proposed a technique that adapts methods from formal verification to use component abstractions that can be automatically generated from implementations. The technique reports, before performing the replacement or integrating the new component into a system, whether the upgrade might be problematic for that particular system. The technique is based on a rich model of components that support internal state, callbacks, and simultaneous upgrades of multiple components, and component abstractions may contain arbitrary logical properties including unbounded-state ones.

This paper motivates this (somewhat non-standard) approach to component verification. The paper also refines the formal model of components, provides a formal model of software system safety, gives an algorithm for constructing a consistency condition, proves that the algorithm's result guarantees system safety in the case of a single-component upgrade, and gives a proof outline of the algorithm's correctness in the case of an arbitrary upgrade.

Download: PDF, PostScript.

BibTeX entry:

   author = {Stephen McCamant and Michael D. Ernst},
   title = {Formalizing lightweight verification of software component
   booktitle = {SAVCBS 2004: Specification and Verification of
	Component-Based Systems},
   pages = {47--54},
   address = {Newport Beach, CA, USA},
   month = {October~31--November~1,},
   year = {2004}

(This webpage was created with bibtex2web.)

Back to Program Analysis Group publications.