Stepwise Refinement of Communicating Systems

The action system formalism [6] is a state-based approach to distributed computing. In this paper, it is shown how the action system formalism may be used to describe systems that communicate with their environment through synchronised value-passing. Definitions and rules are presented for refining and decomposing such action systems into distributed implementations in which internal communication is also based on synchronised value-passing. An important feature of the composition rule is that parallel components of a distributed system may be refined independently of the rest of the system. Specification and refinement is similar to the refinement calculus approach [4, 26, 28]. The theoretical basis for communication and distribution is Hoare's CSP [16]. Use of the refinement and decomposition rules is illustrated by the design of an unordered buffer, and then of a distributed message-passing system.

[1]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[2]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[3]  Rob T. Udink,et al.  Two Fully Abstract Models for UNITY , 1993, CONCUR.

[4]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[5]  Jim Woodcock,et al.  Refinement of State-Based Concurrent Systems , 1990, VDM Europe.

[6]  Bengt Jonsson,et al.  On Decomposing and Refining Specifications of Distributed Systems , 1989, REX Workshop.

[7]  Carroll Morgan,et al.  The Refinement Calculus , 1994, NATO ASI PDC.

[8]  Michael J. Butler Refinement and Decomposition of Value-Passing Action Systems , 1993, CONCUR.

[9]  Pierre Collette,et al.  Composition of Assumption-Commitment Specifications in a UNITY Style , 1994, Sci. Comput. Program..

[10]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[11]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[12]  Ralph-Johan Back,et al.  Decentralization of Process Nets with Centralized Control , 1983, PODC.

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

[14]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[15]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[16]  O. Ore Theory of Graphs , 1962 .

[17]  Michael Goldsmith,et al.  Programming in occam 2 , 1985, Prentice Hall international series in computer science.

[18]  A. W. Roscoe Unbounded Non-Determinism in CSP , 1993, J. Log. Comput..

[19]  Ira R. Forman,et al.  Interacting processes: a multiparty approach to coordinated distributed programming , 1996 .

[20]  W. H. J. Feijen,et al.  Beauty Is Our Business: A Birthday Salute to Edsger W.Dijkstra , 1990 .

[21]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[22]  Ralph-Johan Back Refinement of Parallel and Reactive Programs , 1992, NATO ASI PDC.

[23]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[24]  Carroll Morgan,et al.  Of wp and CSP , 1990 .

[25]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[26]  C. A. R. Hoare,et al.  Data Refinement Refined , 1986, ESOP.

[27]  Michael J. Butler A CSP approach to action systems , 1992 .

[28]  Ralph-Johan Back,et al.  Correctness preserving program refinements: Proof theory and applications , 1980 .

[29]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[30]  Nancy A. Lynch Multivalued Possibilities Mappings , 1989, REX Workshop.

[31]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[32]  Ernst-Rüdiger Olderog,et al.  Towards a Design Calculus for Communicationg Programs , 1991, CONCUR.

[33]  A. W. Roscoe,et al.  Unbounded Nondeterminism in CSP , 1989, Mathematical Foundations of Programming Semantics.

[34]  Brian A. Wichmann,et al.  Ada - language and methodology , 1987, Prentice Hall International Series in Computer Science.