Integrating Design by Contract Focusing Maximum Benefit

  • Jörg Preißinger
Part of the Lecture Notes in Electrical Engineering book series (LNEE, volume 6)

As mechanisms and tools that support the construction of bug-free software evolve, the complexity of software systems rises and the challenge to build dependable software, especially in the case of distributed systems, remains.

The remainder of the chapter is structured as follows. In the next section we compare related work and motivate our approach. In the third section we give a brief introduction to the programming language INSEL and the concepts of the distributed system MoDiS. The fourth section contains a short description of the DbC paradigm. In the fifth section we describe our integration of the contracts into the language INSEL and explain advantages and conclusions for other implementations. At the end we summarize the chapter and give a perspective on future work.


Runtime System Abstract Syntax Tree Private Method Dynamic Link Library Runtime Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    B. Meyer. Design by contract. In B. Meyer and M. D., editors, Advances in Object-Oriented Software Engineering. Prentice–Hall, Engewood Cliffs, NJ, 1992.Google Scholar
  2. 2.
    P. Spies, C. Eckert, M. Lange, D. Marek, R. Radermacher, F. Weimer, and H.-M. Windisch. Sprachkonzepte zur Konstruktion verteilter Systeme. Technical Report TUM-I9618, SFB 342/09/96 A, Technische Universitaet Muenchen, Germany, 1996.Google Scholar
  3. 3.
    C. Eckert and M. Pizka. Improving resource management in distributed systems using language-level structuring concepts. The Journal of Supercomputing, 13:35–55, 1999.CrossRefGoogle Scholar
  4. 4.
    R. Kramer. Icontract — The java design by contract tool. In Technology of Object-Oriented Languages, TOOLS 26, pages 295–307. IEEE Press, August 1998.Google Scholar
  5. 5.
    M. Karaorman, U. Holzle, and J. Bruno. jcontractor: A reflective Java library to support design by contract. Technical Report, Santa Barbara, CA, 1999.Google Scholar
  6. 6.
    A. Duncan and U. Hoelzle. Adding contracts to Java with handshake. Technical Report TRCS98-32, 9, 1998.Google Scholar
  7. 7.
    Design by Contract for Java Using JMSAssert. Man Machine Systems, 2000.
  8. 8.
    M. Lackner, A. Krall, and F. Puntigam. Supporting design by contract in Java, 2002.Google Scholar
  9. 9.
    D. Bartetzko, C. Fischer, M. Moller, and H. Wehrheim. Jass - java with assertions. Electronic Notes in Theoretical Computer Science, 55(15):1–15, January 2004.Google Scholar
  10. 10.
    R. Ploesch and J. Pichler. Contracts: From analysis to C++ implementation. In TOOLS ’99: Proceedings of the Technology of Object-Oriented Languages and Systems, page 248, Washington, DC, 1999. IEEE Computer Society.Google Scholar
  11. 11.
    M. Carrillo-Castellon, J. Garcia-Molina, E. Pimentel, and I. Repiso. Design by contract in Smalltalk. Journal of Object-Oriented Programming, 9(7):23–28, November/December 1996.Google Scholar
  12. 12.
    R. Ploesch. Design by contract for Python. In Fourth Asia-Pacific Software Engineering and International Computer Science Conference, page 213, Washington, DC, 1997. IEEE Computer Society.CrossRefGoogle Scholar
  13. 13.
    C. A. R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10), 1969.Google Scholar
  14. 14.
    J. Wang, L. Qin, N. Vemuri, and X. Jia. A Toolset for Design By Contract For Java.
  15. 15.
    M. Pizka. Design and implementation of the gnu insel compiler (gic). Technical Report TUM–I9713, SFB–Bericht 342/09/97 A, Technische Universitaet Muenchen, Germany, October 1997.Google Scholar
  16. 16.
    GNU Compiler Collection.
  17. 17.
    M. Pizka and C. Rehn. Heaps and stacks in distributed shared memory. In 16th International Parallel and Distributed Processing Symposium (IPDPS ’02 (IPPS, SPDP)), page 107, Washington - Brussels - Tokyo, April 2002. IEEE.CrossRefGoogle Scholar
  18. 18.
    T. Nipkow, L. Paulson, and M. Wenzel. Isabelle/hol — a proof assistant for higher-order logic. 2283, Springer, New York, 2002.MATHGoogle Scholar
  19. 19.
    B. Meyer. Building bug-free OO software: An introduction to design by contract. Object Currents, SIGS Publication, 1(3), 1996.Google Scholar
  20. 20.
    M. Broy and J. Siedersleben. Objektorientierte Programmierung und Softwareentwicklung. Informatik-Spektrum, 25(1):3–11, 2002.CrossRefGoogle Scholar
  21. 21.
    A. Mayer. Integration von design by contract in das sprachbasierte, verteilte system modis. Master’s thesis, Technische Universität München, August 2006. German only.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2008

Authors and Affiliations

  • Jörg Preißinger
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenBoltzmannstrGermany

Personalised recommendations