A common problem in library-based programming is the downward compatibility problem: will a program using an existing version of a library continue to function correctly with an upgraded version? As a step toward addressing this problem for libraries of reactive components we develop a theory that equips components with interface languages characterizing the interaction patterns user applications may engage in with the component. We then show how these languages may be used to build upgrade specifications from components and their interface languages. Intuitively, upgrade specifications explicitly describe requirements an (improved) implementation of a component must satisfy and are intended for use by library developers. Under certain reasonable assumptions about the contexts components are to be used in we show that our upgrade specifications are complete in the sense that every correct upgrade of a component is related in a precise manner to its upgrade specification. In particular, these results hold if the language being used to develop contexts is CSP or CCS.
In REF , contexts are used to build upgrade specification from components and their interface languages.
On the Evolution of Reactive Components -- A Process-Algebraic Approach
FASE
Computer Science