Synopses & Reviews
There is now general agreement that formal specifications are needed to obtain quality software in large projects. Algebraic specifications form a major category of formal specifications. Many projects using algebraic specifications have now been carried out, and their more widespread use has been prevented only by the absence of introductory descriptions and supporting tools. The aim of this book is to bridge the gap between theory and practice by providing a sound introduction to algebraic specifications. In the book the authors - show the benefits of using algebraic specifications, - present an algebraic specification language and a method to use this language, - explain the underlying mathematical foundations of algebraic specifications and the consequences of the theory for the practitioner, and - present not only small examples but also case studies of a reasonable complexity. The book will be of interest to software designers and programmers. It can also be used for an introductory course on algebraic specifications and software engineering at undergraduate or graduate level.
Synopsis
I prefer to view formal methods as tools. the use of which might be helpful. E. W. Dijkstra Algebraic specifications are about to be accepted by industry. Many projects in which algebraic specifications have been used as a design tool have been carried out. What prevents algebraic specifications from breaking through is the absence of introductory descriptions and tools supporting the construction of algebraic specifications. On the one hand. interest from industry will stimulate people to make introductions and tools. whereas on the other hand the existence of introductions and tools will stimulate industry to use algebraic specifications. This book should be seen as a contribution towards creating this virtuous circle. The book will be of interest to software designers and programmers. It can also be used as material for an introductory course on algebraic specifications and software engineering at undergraduate or graduate level. Nowadays. there is general agreement that in large software projects appropriate specifications are a must in order to obtain quality software. Informal specifications alone are certainly not appropriate because they are incomplete. inconsistent. inaccurate and ambiguous and they rapidly become bulky and therefore useless. The only way to overcome this problem is to use formal specifications. An important remark here is that a specification formalism (language) alone is not sufficient. What is also needed is a design method to write specifications in that formalism.