Abstract
Contracts have been introduced to clarify the dependencies and relations between objects and thus to ease component reuse. In the OO design trajectory, contracts can be used at different levels of abstraction. We focus on a computational view of objects. We consider systems described as configurations of interacting objects and we deal with two types of communications: message passing and flows. In message passing, signals (from one object to another) are conveyed through the (implicit) underlying infrastructure. This form of interaction is suitable for client/server applications where no strong real time or ordering constraints are needed from the communication infrastructure. In contrast, in a flow type of communication, signals are conveyed through third party (binding) objects that may be explicitly called for in order to ensure specific QoS requirements needed by specific applications. We first define an abstract semantics of the behaviour of configurations of computational objects. Our semantics will be based on the observation of interactions. An Interaction takes place between two interfaces of two objects and may have one of two issues: success or failure. We introduce COC, a calculus of object contracts. In our setting, a contract is merely a process which observes and arbitrates the collective behaviour of configurations of objects. A contract observes objects and depending on the outcome of their interactions (success or failure) may identify and incriminate faulty objects. We also abstract from observers and define the concepts of satisfaction, realization and refinement.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Martín Abadi and Leslie Lamport. Composing Specifications. ACM Transactions on Programming Languages and Systems. January 1993, Vol 15, Num 1, pages 73–132.
Arnaud Février, Elie Najm, Guy Leduc, and Luc Léonard. Compositional specification of ODP binding objects. In Sixth IFIP/ICCC Conference on Information Network and Data Communication (Trondheim, Norway), 1996.
Leslie Lamport. The Temporal Logic of Actions. Toplas. May 1994, Vol 16, Num 3, pages 872–923.
McKim, J.C., Jr. Programming by contract. Computer, 29(3):109–11, 1996.
Bertrand Meyer. Systematic concurrent object-oriented programming. In C. Mingins, W. Haebich, J. Potter, and B. Meyer, editors, TOOLS Pacific '93. Prentice Hall, Englewood Cliffs, NJ, USA, 1993.
Open Distributed Processing Reference Model — parts 1,2,3,4. ISO 10746-1,2,3,4 or ITU-T X.901,2,3,4, ISO/IEC, 1995.
H.W. Schmidt and J. Chen. Reasoning about concurrent objects. In Asia Pacific Software Engineering Conference, pages 86–95. IEEE Comput. Soc. Press, 1995. ISBN: 0 8186 7171 8.
J.B. Stefani, L. Hazard, and F. Horn. Computational model for multimedia applications based on a synchronous programming language. Computer Communications, 15(2):114–128, 1992.
J.B. Stefani. Open distributed processing: The next target for the application of formal description techniques”. In Formal Description Techniques, volume III (Madrid Spain), 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Février, A., Najm, E., Stefani, J.B. (1997). Contracts for ODP. In: Bertran, M., Rus, T. (eds) Transformation-Based Reactive Systems Development. ARTS 1997. Lecture Notes in Computer Science, vol 1231. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63010-4_15
Download citation
DOI: https://doi.org/10.1007/3-540-63010-4_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63010-4
Online ISBN: 978-3-540-69058-0
eBook Packages: Springer Book Archive