Contracts: specifying behavioral compositions in object-oriented systems

  • Authors:
  • Richard Helm;Ian M. Holland;Dipayan Gangopadhyay

  • Affiliations:
  • I.B.M. Thomas J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY;College of Computer Science, Northeastern University, 360 Huntington Ave., Boston MA;I.B.M. Thomas J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY

  • Venue:
  • OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
  • Year:
  • 1990

Quantified Score

Hi-index 0.06

Visualization

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.