Specifications are (preferably) executable

The validation of specifications with respect to user requirements is extremely difficult. To ease the validation task and to give users immediate feedback on the behaviour of the future software, it was suggested that specifications should be made executable. However, Hayes and Jones [1] argue that executable specifications should be avoided because executability can restrict the expressiveness of specification langugages, and can adversely affect implementations. We argue for executable specifications by showing that non-executable formal specifications can be made executable on almost the same level of abstraction, and without essentially changing their structure. No new algorithms have to be introduced to get executability. Furthermore, we show that declarative specification languages combine high expressiveness and executability.

[1]  Norbert E. Fuchs,et al.  Schema-Based Transfomations of Logic Programs , 1991, LOPSTR.

[2]  Victor W. Marek Book review: The Art of Prolog Advanced Programming Techniques by L. Sterling and E. Shapiro (The MIT Press) , 1988, SGAR.

[3]  J. W. LLOYD,et al.  Making Prolog more Expressive , 1984, J. Log. Program..

[4]  Hasan Ural,et al.  Specifications of distributed systems in prolog , 1990, J. Syst. Softw..

[5]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[6]  John W. Lloyd,et al.  The Godel Report , 1991 .

[7]  Joseph A. Goguen One, None, A Hundred Thousand Specification Languages (Invited Paper) , 1986, IFIP Congress.

[8]  Kung-Kiu Lau,et al.  Synthesis of a Family of Recursive Sorting Procedures , 1991, ISLP.

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

[10]  Norbert E. Fuchs Hoare Logic, Executable Specifications and Logic Programs , 1992, Struct. Program..

[11]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

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

[13]  Pieter Koopman,et al.  Functional programs as executable specifications , 1990 .

[14]  Narain H. Gehani,et al.  Software Specification Techniques , 1985 .

[15]  Hisao Tamaki,et al.  Unfold/Fold Transformation of Logic Programs , 1984, ICLP.

[16]  Robin Milner,et al.  Definition of standard ML , 1990 .

[17]  Robert B. Terwilliger An overview and bibliography of ENCOMPASS: an environment for incremental software development using executable, logic-based specification , 1990, SOEN.

[18]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[19]  Alan Bundy,et al.  The Synthesis of Logic Programs from Inductive Proofs , 1990 .

[20]  C. A. R. Hoare,et al.  An Overview of Some Formal Methods for Program Design , 1987, Computer.

[21]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[22]  Cliff B. Jones,et al.  Essays in computing science , 1989 .

[23]  John C. Shepherdson,et al.  Unfold/fold transformations of logic programs , 1992, Mathematical Structures in Computer Science.

[24]  Helmuth Partsch,et al.  Specification and Transformation of Programs - A Formal Approach to Software Development , 1990, Texts and Monographs in Computer Science.

[25]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[26]  Tom Parke,et al.  Software specification techniques , 1988 .

[27]  R. Kowalski,et al.  The relation between logic programming and logic specification , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[28]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[29]  Laurent Fribourg,et al.  Extracting Logic Programs from Proofs that Use Extended Prolog Execution and Induction , 1990, ICLP.

[30]  Richard A. O'Keefe,et al.  The Craft of Prolog , 1990 .

[31]  Roy H. Campbell,et al.  PLEASE: Executable specifications for incremental software development , 1989, J. Syst. Softw..

[32]  François Bry,et al.  Logic programming as constructivism: a formalization and its application to databases , 1989, PODS.

[33]  Rolf Stadler Die Architektur von Directory-Systemen , 1991 .

[34]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

[35]  Pamela Zave,et al.  Executable requirements for embedded systems , 1981, ICSE '81.

[36]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[37]  William W. Agresti,et al.  New Paradigms for Software Development , 1986 .

[38]  Yves Deville,et al.  Towards Stepwise, Schema-guided Synthesis of Logic Programms , 1991, LOPSTR.