skip to main content
10.1145/97945.97967acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free access

Contracts: specifying behavioral compositions in object-oriented systems

Published: 01 September 1990 Publication History

Abstract

Behavioral compositions, groups of interdependent objects cooperating to accomplish tasks, are an important feature of object-oriented systems. This paper introduces Contracts, a new technique for specifying behavioral compositions and the obligations on participating objects. Refinement and composition of contracts allows for the creation of large grain abstractions based on behavior, orthogonal to those provided by existing class constructs. Using contracts thus provides a basis and vocabulary for Interaction-Oriented design which greatly facilitates the early identification, abstraction and reuse of patterns of behavior in programs. Contracts differ from previous work in that they capture explicitly and abstractly the behavioral dependencies amongst cooperating objects. By explicitly stating these dependencies, contract also provide an effective aid for program understanding and reuse.

References

[1]
Apple Computer Inc. Macintosh Programmers Workshop Pascal 3.0 Reference. Cupertino, California, 1989.
[2]
Kent Beck and Ward Cunningham. A laboratory for teaching object oriented thinking. In Object- Oriented Programming Systems, Languages and Applications Conference, pages 1-6, ACM, New Orleans, LA, 1989.
[3]
Grady Booch. Object-Oriented Design. Benjamin/Cummings Publishing Comapany, Redwood City, California, 1991.
[4]
Grady Booch. Object-oriented development. IEEE Transactions on Software Engineering, SE-12(2), Feb. 1986.
[5]
Roy H. Campbell, Vincent F. Russo, and Gary Johnston. Choices: the design of a multi-processor operating system. In Usenix C+~ Workshop, pages 109-123, Santa Fe, New Mexico, November 1987.
[6]
L. Peter Deutsch. Design reuse and frameworks in the smalltalk-80 system. In Ted J. Biggerstaff and Alan J. Perlis, editors, Software Reusability. Volume 1I. Applications and Experience, ACM, 1989.
[7]
M. Evangelist, N. Francez, and S. Katz. Multiparty interactions for interprocess communication and synchronization. IEEE Transactions on Software Engineering, 15(11):1417-1426, November 1989.
[8]
N. Francez, B. Hailpern, and Gadi Taubenfeld. Script: a communication abstraction mechanism, and its verification. Science of Computer Programming, 6(1):35-88, 1986.
[9]
D. Gangopadhyay and A.R. Helm. A Model-Driven Approach for the Reuse of Classes from Domain Specific Object-Oriented Class Repositories. Technical Report RC14510, IBM Research Division, March 1989.
[10]
Richard Helm and Inn Holland. An Interaction Oriented approach to design using contracts. Technical Report In preparation, IBM Research Division, 1990.
[11]
H. Jarvinen, R. Kurki-Suonio, M. Sakkinen, and K. Systa. Object-oriented specification of reactive systems. In international Conference on Software Engineering, pages 63-71, Nice, France, 1990.
[12]
Ralph E. Johnson and Brian Foote. Designing reusable classes. Journal of Object.Oriented Programming, 1(2):22-35, June/July 1988.
[13]
Glenn E. Krasner and Stephen T. Pope. A cookbook for using the model-view controller user interface paradigm in smalltalk-80. Journal of Object-Oriented Programming, 26-49, August/Spetember 1988.
[14]
Karl Lieberherr. Object-oriented programming with class dictionaries. Journal on Lisp and Symbolic Computation, 1 (2):185-212, 1988.
[15]
Karl J. Lieberherr and Inn Holland. Assuring good style for object-oriented programs. 1EEE Software, 38-48, September 1989.
[16]
Karl J. Lieberherr and Inn Holland. Tools for preventive software maintenance. In Conference on Software Maintenance, pages 2-13, IEEE Press, Miami Beach, Florida, October 16-19, 1989.
[17]
Karl J. Lieberherr and Arthur J. Riel. Demeter: a CASE study of software growth through parameterized classes. Journal of Object-Oriented Programming, 1(3):8-22, August, September 1988. A shorter version of this paper was presented at the l Oth International Conference on Software Engineering, Singapore, April 1988, IEEE Press, pages 254-264.
[18]
Mark A. Linton, John M. Vlissides, and Paul R. Calder. Composing user interfaces with interviews. IEEE Computer Magazine, 8-22, February 1989.
[19]
Bertrand Meyer. Object-Oriented Software Construction. Series in Computer Science, Prentice Hall International, 1988.
[20]
M. B. Rosson and J. M. Carroll. Deliberated Evolution: Stalking the View Matcher in Design Space. Technical Report Submitted for Publication, IBM Research Division, 1990.
[21]
Ashwin Shah, 3ung Hamel, and Renee Borsari. Dsm: an object-relationship modeling language. In Object- Oriented Programming Systems, Languages and Applications Conference, pages 191-202, ACM, New Orleans, LA, 1989.
[22]
David Tanezer, Murthy Gaati, and Sunil Podar. Objectoriented software reuse: the yoyo problem. Journal of Object-Oriented Programming, 2(3):30-36, September/Octt~ber 1989.
[23]
John M. Vlissides and Mark A. Linton. Unidraw: a framework for building domain-specific graphical editors. In A CM/SIGGRAPHfSIGCHI User Interyace Software Technologies Conference, ACM, Williamsburg, VA, Febl'uary 1989.
[24]
Anthony I. Wasserman. An object-oriented structured design rrLethod for code generation. A CM/SIGSOFT, Software Engineering Notes, 14(1), Jaauary 1989.
[25]
Rebecca Wirfs-Brock and Ralph E. Johnson. A survey of current research in object-oriented design. Communication,~ o} the ACM, 1990 To Appear.
[26]
Rebecca Wirfs-Brock and Brian Wilkerson. Objectoriented design: a responsibility-driven approach, in Object-Griented Programming Systems, Languages and Applicat:;ons Conference, pages 71-76, ACM, New Orleans, Lit, 1989.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA/ECOOP '90: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
September 1990
336 pages
ISBN:0897914112
DOI:10.1145/97945
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1990

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)178
  • Downloads (Last 6 weeks)27
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media