A practical assessment of formal specification approaches for data abstractions

Abstract Formal methods capable of precisely describing the properties and the externally provided functionality of abstract data types (ADTs) continue to be a major area of theoretical and practical research, mainly in the preimplementation phases of the software life cycle. We describe an assessment of these methods and discuss various issues related to every method and several extensions developed to tackle the inherent limitations of the methods in various scopes. The methods are presented along with application examples and are compared and contrasted using a set of criteria including comprehensibility, minimality, ease of construction, and executability.

[1]  Ivar Jacobson,et al.  Object Oriented Development in an Industrial Environment , 1987, OOPSLA.

[2]  L. Flon A Unified Approach to the Specification and Verification of Abstract DataTypes , 1978 .

[3]  V. A. Berzins,et al.  Abstract model specifications for data abstractions , 1979 .

[4]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[5]  Narain H. Gehani,et al.  Specifications: Formal and informal—a case study , 1982, Softw. Pract. Exp..

[6]  Dallas E. Webster Mapping the design information representation terrain , 1988, Computer.

[7]  D. Bjorner,et al.  On the use of formal methods in software development , 1987, ICSE '87.

[8]  Edwin H. Satterthwaite,et al.  Early experience with Mesa , 1977, CACM.

[9]  B. Krämer,et al.  SEGRAS—a formal and semigraphical language combining Petri nets and abstract data types for the specification of distributed systems , 1987, ICSE '87.

[10]  Daniel Hoffman The trace specification of communications protocols , 1985, IEEE Transactions on Computers.

[11]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[12]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[13]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.

[14]  Paul R. Calder,et al.  Composing user interfaces with InterViews , 1989, Computer.

[15]  Alan M. Davis,et al.  A comparison of techniques for the specification of external system behavior , 1988, CACM.

[16]  Jonathan K. Millen,et al.  Verifying Security , 1981, CSUR.

[17]  Bjarne Stroustrup What Is Object-Oriented Programming? , 1988, IEEE Softw..

[18]  Christine Choppy,et al.  ASSPEGIQUE: An Integrated Environment for Algebraic Specifications , 1985, TAPSOFT, Vol.2.

[19]  Pankaj Jalote,et al.  Testing the Completeness of Specifications , 1989, IEEE Trans. Software Eng..

[20]  David R. Musser,et al.  An Overview of AFFIRM: A Specification and Verification System , 1980, IFIP Congress.

[21]  Daniel Hoffman,et al.  Trace Specifications: Methodology and Models , 1988, IEEE Trans. Software Eng..

[22]  Ellis Horowitz,et al.  Some extensions to algebraic specifications , 1977 .

[23]  Christine Choppy,et al.  Algebraic Semantics of Exception Handling , 1986, ESOP.

[24]  Scott Danforth,et al.  Type theories and object-oriented programmimg , 1988, CSUR.

[25]  Mary Shaw,et al.  Abstraction Techniques in Modern Programming Languages , 1984, IEEE Software.

[26]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[27]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

[28]  Jacques Loeckx,et al.  Algorithmic specifications: a constructive specification method for abstract data types , 1987, TOPL.

[29]  José Meseguer,et al.  Parameterized programming in OBJ2 , 1987, ICSE '87.

[30]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[31]  Mike P. Papazoglou,et al.  An Outline of the Programming Language Simula , 1984, Comput. Lang..

[32]  Boumediene Belkhouche Automatic synthesis of abstract data type implementations from abstract specifications , 1983 .

[33]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[34]  Stephen N. Zilles,et al.  Specification techniques for data abstractions , 1975 .

[35]  Richard G. Hamlet,et al.  Data Abstraction, Implementation, Specification, and Testing , 1981, TOPL.

[36]  W. T. ROBERTS A Formal Specification of the QMC Message System: The Underlying Abstract Model , 1988, Comput. J..

[37]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[38]  Johan Lewi,et al.  An exception handling method for constructive algebraic specifications , 1988, Softw. Pract. Exp..

[39]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[40]  Billy G. Claybrook A Specification Method for Specifying Data and Procedural Abstractions , 1982, IEEE Transactions on Software Engineering.

[41]  Boumediene Belkhouche,et al.  Direct implementation of abstract data types from abstract specifications , 1986, IEEE Transactions on Software Engineering.

[42]  Carl E. Landwehr The Best Available Technologies for Computer Security , 1983, Computer.

[43]  Richard E. Fairley,et al.  Software engineering concepts , 1985, McGraw-Hill series in software engineering and technology.

[44]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[45]  Donald I. Good,et al.  A Report On The Development Of Gypsy , 1978, ACM Annual Conference.

[46]  James C. Browne,et al.  Gypsy: A language for specification and implementation of verifiable programs , 1977 .

[47]  James J. Horning,et al.  Formal specification as a design tool , 1980, POPL '80.

[48]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[49]  Bertrand Meyer,et al.  On Formalism in Specifications , 1985, IEEE Software.

[50]  John McLean,et al.  A Formal Method for the Abstract Specification of Software , 1984, JACM.

[51]  John R. White,et al.  An extension to algebraic specifications to incorporate state behavior , 1979, ACM '79.

[52]  Joseph A. Goguen,et al.  Initial Algebra Semantics and Continuous Algebras , 1977, J. ACM.