A study of twelve specifications of the library problem

Twelve workshop papers [25] include an informal or formal specification of Kemmerer's library problem [28]. The specifications range from being knowledge-based to logic-based to Prolog-based. Though the statement of the informal requirements is short and "simple," twelve different approaches led to twelve different specifications. All twelve, however, address many of the same ambiguities and incompletenesses, which we describe in detail, present in the library problem. We conclude that for a given set of informal requirements, injecting domain knowledge helps to add reality and complexity to it, and formal techniques help to identify its deficiencies and clarify its imprecisions.

[1]  Roy H. Campbell,et al.  PLEASE: A LANGUAGE FOR INCREMENTAL SOFTWARE DEVELOPMENT. , 1987 .

[2]  Axel van Lamsweerde,et al.  Making Specification Processes Explicit , 1987 .

[3]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

[4]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[5]  David R. Musser,et al.  Abstract Data Type Specification in the Affirm System , 1980, IEEE Transactions on Software Engineering.

[6]  Martin S. Feather,et al.  Language support for the specification and development of composite systems , 1987, TOPL.

[7]  Robert Balzer,et al.  Principles of good software specification and their implications for specification languages , 1981, AFIPS '81.

[8]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[9]  Bjarne Stroustrup,et al.  The C++ Programming Language, First Edition , 1986 .

[10]  David Lorge Parnas Software aspects of strategic defense systems , 1985, SOEN.

[11]  Ali Mili,et al.  Workshop on Models and Languages for Software Specification and Design , 1985, Computer.

[12]  Jeannette M. Wing A Larch Specification of the Library Problem , 1986 .

[13]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[14]  Tom DeMarco,et al.  Structured Analysis and System Specification , 1978 .

[15]  Richard A. Kemmerer,et al.  Testing Formal Specifications to Detect Design Errors , 1985, IEEE Transactions on Software Engineering.

[16]  Alfred Z. Spector,et al.  Support for Distributed Transactions in the TABS Prototype , 1985, IEEE Transactions on Software Engineering.

[17]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[18]  James J. Horning,et al.  Some Notes on Putting Formal Specifications to Productive Use , 1982, Sci. Comput. Program..

[19]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

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

[21]  Mehdi T. Harandi,et al.  Workshop on software specification and design , 1988, SOEN.