Skip to main content

Programming by Contract — Erfüllt Eiffel das Ideal?

  • Chapter
Eiffel

Part of the book series: Berichte des German Chapter of the ACM ((BGCACM))

  • 20 Accesses

Zusammenfassung

Programmieren durch Vertrag ist ein auf Abstraktionen beruhendes Modell der Softwareentwicklung, das Nutzen und Verpflichtungen auf die Verwender und Lieferanten dieser Abstraktionen verteilt. Spezifikationen geben Verträgen eine verifizierbare Form. Unterstützen die Zusicherungen, die Bestandteil der Programmiersprache Eiffel sind, das Vertragsmodell der Softwareentwicklung in angemessener Weise, wie dies von ihrem Erfinder nahegelegt wird? Die folgende Argumentation weist diesen Vorschlag zurück, indem sie vor allem aufzeigt, daß die Zusicherungen von Eiffel das dazu erforderliche Abstraktionsniveau nicht erreichen.

Abstract

Programming by contract as a modell of software development based on abstractions assigns benefits and obligations to users and providers of those abstractions. Specifications endow contracts with a verifiable form. Do the assertions that are part of the programming language Eiffel give adequate support to programming by contract, as suggested by its inventor? The following argumentation refutes this proposal, mainly by proving Eiffel assertions not to meet the required level of abstraction.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.95
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Anmerkungen

  1. Ich schließe mich hier der Position von Joseph Goguen und José Meseguer an. Vgl. Joseph Goguen, José Meseguer: ‘Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics’, in: Bruce Shriver, Peter Wegner (Hrsg.): Research Directions in Object-Oriented Programming, Cambridge, MA: MIT-Press, 1987, S. 417–477.

    Google Scholar 

  2. Barbara Liskov, John Guttag: Abstraction and Specification in Program Development, Cambridge, MA: MIT-Press; New York: McGraw-Hill, 1986, S.53f.

    MATH  Google Scholar 

  3. Vgl. Pierre America: ‘A Behavioural Approach to Sub typing in Object-oriented Programming Languages’, in: Maurizio Lenzerini, Daniele Nardi, Maria Simi (Hrsg.): Inheritance Hierarchies in Knowledge Representation and Programming Languages, Chichester: Wiley, 1991, S. 173–190.

    Google Scholar 

  4. Vgl. Bertrand Meyer: ‘Lessons from the Design of the Eiffel Libraries’, in: Communications of the ACM, September 1990 (Bd.33, Nr. 9), S.75f.

    Article  Google Scholar 

  5. Vgl. Rainer Fischbach: ‘Type and Class’, in: Jens Palsberg, Michael I. Schwartzbach (Hrsg.): Types, Inheritance and Assignments — A Collection of Papers from the ECOOP’91 Workshop W5, Geneva, Switzerland, July 1991, Aarhus: University, Computer Science Department, Juni 1991 (DAIMIPB; 357), S.19f.

    Google Scholar 

  6. Bertrand Meyer: ‘Lessons from the Design of the Eiffel Libraries’, a.a.O., S.72

    Google Scholar 

  7. Bertrand Meyer: ‘From the bubbles to the objects’, in: Object Magazine, November/Dezember 1991 (Bd. 1; Nr. 4), S.38.

    Google Scholar 

  8. Vgl. Bertrand Meyer: Object-Oriented Software Construction, London: Prentice Hall, 1988, S. 155f.

    Google Scholar 

  9. Vgl. Rainer Fischbach: ‘Implementing a Graph ADT in Eiifel’, in: TOOLS’89, Proceedings, Paris 1989, S. 449–454, wo auf prädikatenlogische Formeln in Kommentarzeilen zurückgegriffen wurde.

    Google Scholar 

  10. Gary T. Leavens, William E. Weihl: ‘Reasoning about Object-Oriented Programs that use Subtypes’, in: EC00P/00PSLA ’90, Proceedings, New York: ACM-Press, 1990, S.220f.

    Google Scholar 

  11. Ausführbare Spezifikation heißt hier natürlich, daß ein Softwarewerkzeug aus der Spezifikation eine Implementation ableiten kann und nicht, daß Assertions zur Laufzeit überprüft werden!

    Google Scholar 

  12. Vgl. David A. Turner: ‘Functional programs as executable specifications’, in: C. A. R. Hoare, J. C. Sheperdson (Hrsg.): Mathematical Logic and Programming Languages, Englewood Cliffs, NJ: Prentice-Hall, 1985, S. 29–54.

    Google Scholar 

  13. Meyer, Object-Oriented Software Construction, a.a.O., S. 156.

    Google Scholar 

  14. Cliff B. Jones: Systematic Software Development using VDM, 2. Aufl., London: Prentice Hall, 1990.

    MATH  Google Scholar 

  15. J.M. Spivey: The Z Notation: A Reference Manual, London: Prentice Hall, 1989.

    MATH  Google Scholar 

  16. Roger Duke, Paul King, Gordon Rose, Graeme Smith: The Object-Z Specification Language, Version 1, Software Verification Centre, Department of Computer Science, The University of Queensland, 1991 (Technical Report; 91–1).

    Google Scholar 

  17. Vgl. Liskov und Guttag, a.a.O., S. 187ff.

    Google Scholar 

  18. Wayne Sewell: Weaving a Program: Literate Programming in WEB, New York: Van Nostrand Heinhold, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1992 B. G. Teubner Stuttgart

About this chapter

Cite this chapter

Fischbach, R. (1992). Programming by Contract — Erfüllt Eiffel das Ideal?. In: Hoffmann, HJ. (eds) Eiffel. Berichte des German Chapter of the ACM. Vieweg+Teubner Verlag. https://doi.org/10.1007/978-3-322-86775-9_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-322-86775-9_5

  • Publisher Name: Vieweg+Teubner Verlag

  • Print ISBN: 978-3-519-02676-1

  • Online ISBN: 978-3-322-86775-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics