On the Evolution of Reactive Components: A Process-Algebraic Approach

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.

[1]  Xinxin Liu,et al.  Compositionality through an Operational Semantics of Contexts , 1990, J. Log. Comput..

[2]  K. Larsen Context-dependent bisimulation between processes , 1986 .

[3]  Kim G. Larsen,et al.  Ideal Specification Formalism + Expressivity + Compositionality + Decidability + Testability + , 1990, CONCUR.

[4]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[5]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[6]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[7]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[8]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[9]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[10]  D. J. Walker,et al.  Bisimulations and divergence , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[11]  Rance Cleaveland,et al.  A Preorder for Partial Process Specifications , 1990, CONCUR.