Protective Interface Specifications

Abstract. The interface specification of a procedure describes the procedure's behaviour using pre- and postconditions. These pre- and postconditions are written using various functions. If some of these functions are partial, or underspecified, then the procedure specification may not be well-defined.We show how to write pre- and postcondition specifications that avoid such problems, by having the precondition “protect” the postcondition from the effects of partiality and underspecification. We formalize the notion of protection from partiality in the context of specification languages like VDM-SL and COLD-K. We also formalize the notion of protection from underspecification for the Larch family of specification languages, and for Larch show how one can prove that a procedure specification is protected from the effects of underspecification.

[1]  Andrzej Tarlecki,et al.  A three-valued logic for software specification and validation , 1988, Fundam. Informaticae.

[2]  Jeannette M. Wing A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS , 1983 .

[3]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[4]  Andrzej Blike,et al.  Three-valued predicates for software specification and validation , 1988 .

[5]  Stephen J. Garland,et al.  Debugging Larch Shared Language Specifications , 1990, IEEE Trans. Software Eng..

[6]  L. M. G. Feijs,et al.  Formal Specification and Design: From algebras to states , 1992 .

[7]  Peter A. Lindsay,et al.  Proof in VDM: A Practitioner's Guide , 1993, Proof in VDM.

[8]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[9]  James J. Horning,et al.  Report on the Larch Shared Language Version 2.3 , 1990 .

[10]  Cliff B. Jones,et al.  Partial Functions and Logics: A Warning , 1995, Inf. Process. Lett..

[11]  Fred B. Schneider,et al.  Avoiding the Undefined by Underspecification , 1995, Computer Science Today.

[12]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[13]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[14]  Uwe Wolter,et al.  How to Cope with the Spectrum of SPECTRUM , 1995, KORSO Book.

[15]  Donald Sannella,et al.  The Definition of Extended ML: A Gentle Introduction , 1997, Theor. Comput. Sci..

[16]  Cliff B. Jones,et al.  On the Usability of Logics which Handle Partial Functions , 1991 .

[17]  Stuart H. Zweben,et al.  Part I: the RESOLVE framework and discipline: a research synopsis , 1994, SOEN.

[18]  J. Davenport Editor , 1960 .

[19]  A. Bijlsma,et al.  Semantics of quasi-boolean expressions , 1990 .

[20]  Martin Gogolla,et al.  TROLL light - The Language and its Development Environment , 1995, KORSO Book.

[21]  Jan Madey,et al.  The Z notation: A reference manual , 1990 .

[22]  Steven M. German,et al.  Automating proofs of the absence of common runtime errors , 1978, POPL.

[23]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.