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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Anmerkungen
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.
Barbara Liskov, John Guttag: Abstraction and Specification in Program Development, Cambridge, MA: MIT-Press; New York: McGraw-Hill, 1986, S.53f.
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.
Vgl. Bertrand Meyer: ‘Lessons from the Design of the Eiffel Libraries’, in: Communications of the ACM, September 1990 (Bd.33, Nr. 9), S.75f.
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.
Bertrand Meyer: ‘Lessons from the Design of the Eiffel Libraries’, a.a.O., S.72
Bertrand Meyer: ‘From the bubbles to the objects’, in: Object Magazine, November/Dezember 1991 (Bd. 1; Nr. 4), S.38.
Vgl. Bertrand Meyer: Object-Oriented Software Construction, London: Prentice Hall, 1988, S. 155f.
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.
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.
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!
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.
Meyer, Object-Oriented Software Construction, a.a.O., S. 156.
Cliff B. Jones: Systematic Software Development using VDM, 2. Aufl., London: Prentice Hall, 1990.
J.M. Spivey: The Z Notation: A Reference Manual, London: Prentice Hall, 1989.
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).
Vgl. Liskov und Guttag, a.a.O., S. 187ff.
Wayne Sewell: Weaving a Program: Literate Programming in WEB, New York: Van Nostrand Heinhold, 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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