Foundations of Algebraic Specification and Formal Software Development


Book Description

This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful. The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods. While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.




Formal Specification


Book Description

Formal Specification provides the reader with a practical and versatile approach to constructing program specifications. It includes both model-based (Z/VDM) and algebraic (CLEAR) paradigms of specification and emphasizes the range of languages and approaches available. Its main advantage over other specification books is that is offers an unrivaled breadth of coverage of the area, encompassing all the recent important advances.




Larch: Languages and Tools for Formal Specification


Book Description

Building software often seems harder than it ought to be. It takes longer than expected, the software's functionality and performance are not as wonderful as hoped, and the software is not particularly malleable or easy to maintain. It does not have to be that way. This book is about programming, and the role that formal specifications can play in making programming easier and programs better. The intended audience is practicing programmers and students in undergraduate or basic graduate courses in software engineering or formal methods. To make the book accessible to such an audience, we have not presumed that the reader has formal training in mathematics or computer science. We have, however, presumed some programming experience. The roles of fonnal specifications Designing software is largely a matter of combining, inventing, and planning the implementation of abstractions. The goal of design is to describe a set of modules that interact with one another in simple, well defined ways. If this is achieved, people will be able to work independently on different modules, and yet the modules will fit together to accomplish the larger purpose. In addition, during program maintenance it will be possible to modify a module without affecting many others. Abstractions are intangible. But they must somehow be captured and communicated. That is what specifications are for. Specification gives us a way to say what an abstraction is, independent of any of its implementations.




Formal Specification Level


Book Description

This book introduces a new level of abstraction that closes the gap between the textual specification of embedded systems and the executable model at the Electronic System Level (ESL). Readers will be enabled to operate at this new, Formal Specification Level (FSL), using models which not only allow significant verification tasks in this early stage of the design flow, but also can be extracted semi-automatically from the textual specification in an interactive manner. The authors explain how to use these verification tasks to check conceptual properties, e.g. whether requirements are in conflict, as well as dynamic behavior, in terms of execution traces.




An Introduction to Formal Specification and Z


Book Description

Following the sucess of the first edition, the authors have updated and revised this bestselling textbook to take into account the changes in the subject over the past 5 years.




The Use of Formal Specification of Software


Book Description

The notion that program design is an engineering task alleviating the software crisis has been with us for about a decade. With the recognized advantages of obeying to certain software design disciplines, we are approaching the era of enforced system development standards which will ensure that end products will meet rigorous design requirements. On the one hand, advances in system architecture fUrther the application of system development standards to software and firmware design and production. On the other hand, the growth in complexity of future system architectures, in particular distri buted systems with their special problems of cooperation and parallelism, necessitate the use of rigorous specification and design techniques. In addition to hampering the design process, the lack of engineering techniques hinders research. In many cases, trial designs that are presented in abstract and informal terms do not force the de signer to face the full problem spectrum, and therefore may not sufficiently provide insight into the design process. To prepare for the forthcoming discipline and to provide a snapshot view of recent advances in software and firmware engineering, we organized in June of 1979 a seminar entitled: "The Use of Formal Specification of Software and Firmware". The seminar took place at the Heinrich-Hertz-Institute, Berlin, and attracted over 60 participants, most of them from the industry.




ZUM'97: The Z Formal Specification Notation


Book Description

This book constitutes the refereed proceedings of the 10th International Conference of Z Users, ZUM'97, held in Reading, UK, in April 1997. The volume presents 18 revised full papers together with three invited presentations by internationally leading experts. The papers are organized into topical sections on real-time systems, tools, logic, system development, reactive systems, refinement, and applications. Also a select Z bibliography by Jonathan Bowen is added. All in all, the book competently reports the state-of-the-art in research and advanced applications of the Z notation.




ZUM '95: The Z Formal Specification Notation


Book Description

This book presents the proceedings of the 9th International Conference of Z Users, ZUM '95, held in Limerick, Ireland in September 1995. The book contains 34 carefully selected papers on Z, using Z, applications of Z, proof, testing, industrial usage, object orientation, animation of specification, method integration, and teaching formal methods. Of particular interest is the inclusion of an annotated Z bibliography listing 544 entries. While focussing on Z, by far the most commonly used "formal method" both in industry and application, the volume is of high relevance for the whole formal methods community.







ZB 2003: Formal Specification and Development in Z and B


Book Description

The refereed proceedings of the Third International Conference of Z and B Users, ZB 2003, held in Turku, Finland in June 2003. The 28 revised full papers presented together with 3 invited papers were carefully reviewed and selected for inclusion in the book. The book documents the recent advances for the Z formal specification notation and for the B method, spanning the full scope from foundational, theoretical, and methodological issues to advanced applications, tools, and case studies.