Abstract
Design by contract is a practical technique for developing code together with its (light-weight and executable) specification. It is synergistic with several XP practices, particularly unit testing and refactoring. This paper investigates this relationship and points out how it can be automated (at least in part).
Missing in the figures shown in this paper is some of the code, as well as part of the contract. Also, some assertions have been slightly simplified. The full set of programs, with additional intermediate steps not shown here, is available at http://www.faculty.idc.ac.il/yishai/xp-contracts.htm.
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
B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997.
R. Kramer. iContract—the Java design by contract tool. In Proc. Technology of Object-Oriented Languages and Systems, TOOLS-USA. IEEE Press, 1998.
R. Kramer. iContract home page. http://www.reliable-systems.com/tools/iContract/iContract.htm.
Parasoft Corp. Jcontract home page. http://www.parasoft.com/jsp/products/home.jsp?product=Jcontract.
Man Machine Systems. Design by contract tool for Java—JMSAssert. http://www.mmsindia.com/JMSAssert.html.
A. van Deursen and L. Moonen. The video store revisited: Thoughts on refactoring and testing. In M. Marchesi and G. Succi, editors, Proc. 3rd Int’l Conf. Extreme Programming and Agile Processes in Software Engineering, pages 71–76, 2002.
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 2000.
Y. A. Feldman and L. Gendler. Automatic discovery of software contracts. In progress.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Feldman, Y.A. (2003). Extreme Design by Contract. In: Marchesi, M., Succi, G. (eds) Extreme Programming and Agile Processes in Software Engineering. XP 2003. Lecture Notes in Computer Science, vol 2675. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44870-5_32
Download citation
DOI: https://doi.org/10.1007/3-540-44870-5_32
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40215-2
Online ISBN: 978-3-540-44870-9
eBook Packages: Springer Book Archive