Abstract
We are investigating a component-based approach for formal design of distributed systems. In this paper, we introduce the framework we use for specification, composition and communication and we apply it to an example that highlights the different aspects of a compositional design, including top-down and bottom-up phases, proofs of composition, refinement proofs, proofs of program texts, and component reuse.
This work is supported by a grant from the Air Force Office of Scientific Research.
Chapter PDF
Similar content being viewed by others
Keywords
References
M. Abadi and L. Lamport. Composing specifications. ACM Transactions on Programming Languages and Systems, 15(1):73–132, Jan. 1993.
M. Abadi and L. Lamport. Conjoining specifications. ACM Transactions on Programming Languages and Systems, 17(3):507–534, May 1995.
R. Back. Refinement calculus, Part I: Sequential nondeterministic programs. In REX Workshop on Stepwise Refinement of Distributed Systems, volume 430 of Lecture Notes in Computer Science, pages 42–66. Springer-Verlag, 1989.
R. Back. Refinement calculus, Part II: Parallel and reactive programs. In REX Workshop on Stepwise Refinement of Distributed Systems, volume 430 of Lecture Notes in Computer Science, pages 67–93. Springer-Verlag, 1989.
K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.
K. M. Chandy and B. A. Sanders. Predicate transformers for reasoning about concurrent computation. Science of Computer Programming, 24:129–148, 1995.
K. M. Chandy and B. A. Sanders. Reasoning about program composition. Technical Report 96-035, University of Florida, Department of Computer and Information Science and Engineering, 1996.
D. Chappell. Understanding ActiveX and OLE. Microsoft Press, 1996.
M. Charpentier. Assistance à la Répartition de Systèmes Réactifs. PhD thesis, Institut National Polytechnique de Toulouse, France, Nov. 1997.
M. Charpentier and K. M. Chandy. Examples of program composition illustrating the use of universal properties. In J. Rolim, editor, International workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA’99), volume 1586 of Lecture Notes in Computer Science, pages 1215–1227. Springer-Verlag, Apr. 1999.
M. Charpentier and K. M. Chandy. Towards a compositional approach to the design and verification of distributed systems. Technical Report CS-TR-99-02, California Institute of Technology, Jan. 1999. 29 pages.
M. Charpentier, M. Filali, P. Mauran, G. Padiou, and P. Quéinnec. Abstracting communication to reason about distributed algorithms. In Ö. Babaoğlu and K. Marzullo, editors, Tenth International Workshop on Distributed Algorithms (WDAG’96), volume 1151 of Lecture Notes in Computer Science, pages 89–104. Springer-Verlag, October 1996.
M. Charpentier, M. Filali, P. Mauran, G. Padiou, and P. Quéinnec. Tailoring Unity to distributed program design. In J. Rolim, editor, International workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA’98), volume 1388 of Lecture Notes in Computer Science, pages 820–832. Springer-Verlag, April 1998.
P. Collette. Composition of assumption-commitment specifications in a Unity style. Science of Computer Programming, 23:107–125, 1994.
P. Collette. Design of Compositional Proof Systems Based on Assumption-Commitment Specifications. Application to Unity. Doctoral thesis, Faculté des Sciences Appliquées, Université Catholique de Louvain, June 1994.
P. Gardiner and C. Morgan. Data refinement of predicate transformers. Theoretical Computer Science, 87:143–162, 1991.
D. Garlan. Higher-order connectors. In Proceedings of Workshop on Compositional Software Architectures, Monterey, California, Jan. 1998.
R. Helm, I. M. Holland, and D. Gangopadhyay. Contracts: Specifying behavioral compositions in object-oriented systems. In European Conference on Object-Oriented Programming/ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, volume 25/10, pages 169–180, 1990.
C. Jones. Tentative steps toward a development method for interfering programs. ACM Transactions on Programming Languages and Systems, 5(4):596–619, 1983.
J. R. Kiniry. CDL: A component description language. In Proceedings of the COOTS’ 99 Advanced Topics Workshop on Validating the Composition/Execution of Component-Based Systems, 1999.
S. Lam and A. Shankar. Specifying modules to satisfy interfaces-a state transition approach. Distributed Computing, 6(1):39–63, July 1992.
S. Lam and A. Shankar. A theory of interfaces and modules 1: Composition theorem. IEEE Transactions on Software Engineering, 20(1):55–71, Jan. 1994.
R. Manohar and P. Sivilotti. Composing processes using modified rely-guarantee specifications. Technical Report CS-TR-96-22, California Institute of Technology, 1996.
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., 2nd edition, 1988.
B. Meyer. Applying design by contract. IEEE Computer, Oct. 1992.
R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML (Revised). The MIT Press, 1997.
J. Misra. A logic for concurrent programming: Progress. Journal of Computer and Software Engineering, 3(2):273–300, 1995.
J. Misra. A logic for concurrent programming: Safety. Journal of Computer and Software Engineering, 3(2):239–272, 1995.
O. Nierstrasz, S. Gibbs, and D. Tsichritzis. Component-oriented software development. Communications of the ACM, 35(9):160–165, Sept. 1992.
O. Nierstrasz and T. Meijler. Requirements for a composition language. In ECOOP’94 Workshop on Models and Languages for Coordination of Parallelism and Distribution, pages 147–161. Springer-Verlag, 1995.
O. Nierstrasz and D. Tsichritzis, editors. Object-Oriented Software Composition. Prentice-Hall, Inc., 1995.
Object Management Group (OMG). The Common Object Request Broker: Architecture and Specification (CORBA), revision 2.0. Object Management Group (OMG), 2.0 edition.
L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lecture Notes in Computer Science. Springer-Verlag, 1994.
B. A. Sanders. Eliminating the substitution axiom from Unity logic. Formal Aspects of Computing, 3(2):189–205, April-June 1991.
B. A. Sanders. Data refinement of mixed specification: A generalization of Unity. Acta Informatica, 35(2):91–129, 1998.
N. Shankar. Lazy compositional verification. In Compositionality: The Significant Difference. International Symposium, COMPOS’97, volume 1536 of Lecture Notes in Computer Science. Springer-Verlag, 1998.
P. A. G. Sivilotti. A Method for the Specification, Composition, and Testing of Distributed Object Systems. PhD thesis, California Institute of Technology, 256–80 Caltech, Pasadena, California 91125, Dec. 1997.
Sun Microsystems, Inc. JavaBeans API specification, version 1.01. Technical report, Sun Microsystems, Inc., July 1997.
C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Publishing Company, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Charpentier, M., Chandy, K.M. (1999). Towards a Compositional Approach to the Design and Verification of Distributed Systems. In: Wing, J.M., Woodcock, J., Davies, J. (eds) FM’99 — Formal Methods. FM 1999. Lecture Notes in Computer Science, vol 1708. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48119-2_32
Download citation
DOI: https://doi.org/10.1007/3-540-48119-2_32
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66587-8
Online ISBN: 978-3-540-48119-5
eBook Packages: Springer Book Archive