ACM Home Page
Please provide us with feedback. Feedback
Behavioral contracts and behavioral subtyping
Full text PdfPdf (95 KB)
Source Foundations of Software Engineering archive
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering table of contents
Vienna, Austria
Session: Components table of contents
Pages: 229 - 236  
Year of Publication: 2001
ISBN:1-58113-390-1
Also published in ...
Authors
Robert Bruce Findler  Rice University
Mario Latendresse  Rice University
Matthias Felleisen  Rice University
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
CEPIS : Council of European Professional Informatics Societies
VIENUT : Vienna University of Technology
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 41,   Citation Count: 9
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/503209.503240
What is a DOI?

ABSTRACT

Component-based software manufacturing has the potential to bring division-of-labor benefits to the world of software engineering. In order to make a market of software components viable, however, producers and consumers must agree on enforceable software contracts. In this paper, we show how to enforce contracts if components are manufactured from class and interface hierarchies. In particular, we focus on one style of contract: pre- and post-conditions. Programmers annotate class and interface methods with pre- and post-conditions and the run-time system checks these conditions during evaluation. These contracts guarantee that methods are called properly and provide appropriate results. In procedural languages, the use of pre- and post-condition contracts is well-established and studies have demonstrated its value. In object-oriented languages, however, assigning blame for pre- and post-condition failures poses subtle and complex problems. Specifically, assigning blame for malformed class and interface hierarchies is so difficult that none of the existing contract monitoring tools correctly assign blame for these failures. In this paper, we show how to overcome these problems in the context of Java. Our work is based on the notion of behavioral subtyping.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
Detlefs, D. L., K. Rustan, M. Leino, G. Nelson and J. B. Saxe. Extended static checking. Technical Report 158, Compaq SRC Research Report, 1998.
 
4
 
5
 
6
7
 
8
 
9
Gomes, B., D. Stoutamire, B. Vaysman and H. Klawitter. A Language Manual for Sather 1.1, August 1996.
 
10
11
 
12
 
13
Kolling, M. and J. Rosenberg. Blue: Language Specification, version 0.94, 1997.
 
14
 
15
Liskov, B. H. and J. Wing. Behavioral subtyping using invariants and constraints. Technical Report CMU CS-99-156, School of Computer Science, Carnegie Mellon University, July 1999.
16
 
17
Luckham, D. C. and F. von Henke. An overview of Anna, a specification language for Ada. In IEEE Software, volume 2, pages 9-23, March 1985.
 
18
Man Machine Systems. Design by contract for Java using jmsassert. http://www.mmsindia.com/DBCForJava.html, 2000.
 
19
McIlroy, M. D. Mass produced software components. In Naur, P. and B. Randell, editors, Report on a Conference of the NATO Science Committee, pages 138-150, 1968.
 
20
 
21
 
22
Milner, R. A theory of type polymorphism in programming. Journal of Computer Systems Science, 17:348-375, 1978.
23
 
24
 
25
 
26
Szyperski, C. Component Software. Addison-Wesley, 1998.

CITED BY  9


REVIEW

"Friedrich D. Dominicus : Reviewer"

The topic of this paper is contracts in object-oriented languages, especially in languages with behavioral subtyping. The authors describe how problematic it can be to identify the offender in contract violations, and then offer a suggestion on ho  more...

Collaborative Colleagues:
Robert Bruce Findler: colleagues
Mario Latendresse: colleagues
Matthias Felleisen: colleagues