Contracts for ODP
- First Online:
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.
KeywordsODP objects contracts computational model formal techniques real time
Unable to display preview. Download preview PDF.
- [AL93]Martín Abadi and Leslie Lamport. Composing Specifications. ACM Transactions on Programming Languages and Systems. January 1993, Vol 15, Num 1, pages 73–132.Google Scholar
- [FNLL96]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.Google Scholar
- [LA94]Leslie Lamport. The Temporal Logic of Actions. Toplas. May 1994, Vol 16, Num 3, pages 872–923.Google Scholar
- [McK96]McKim, J.C., Jr. Programming by contract. Computer, 29(3):109–11, 1996.Google Scholar
- [Mey93]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.Google Scholar
- [RMO95]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.Google Scholar
- [SC95]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.Google Scholar
- [SHH92]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.Google Scholar
- [Ste90]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.Google Scholar