Synopses & Reviews
Recent advances in software specification methods, model checking, and theorem proving have generated new tools for the use of formal methods in both industry and academia. Yet, in order to choose the techniques most appropriate for a specific application, it is necessary to have a good understanding and expertise in formal methods. Software engineers now have several case studies to learn from, and are able to choose from a large selection of languages and methods, with a rich repertoire of appropriate concepts for their intended applications. This extensively revised and updated new edition of Specification of Software Systems builds upon the original focus on software specification with added emphasis on the practice of formal methods for specification and verification activities for different types of software systems and at different stages of developing software systems. This expanded perspective is matched by a considerable amount of new content, included to cater to the growing needs of students and researchers in the area of formal software engineering. Topics related to the integration of formal methods in the software development process are introduced early, and are followed by presentations of principles of abstraction, definitions of formalism, notations of formalism, and a wide variety of detailed specification examples. This additional material is further reflected in the new structure of the second edition, which is now arranged in six parts. Topics and features: Provides a wide coverage of formal specification techniques and a clear writing style, supported by end-of-chapter bibliographic notes for further readingPresents a logical structure, with sections devoted to specification fundamentals, basics of formalism, logic, set theory and relations, property-oriented specification methods, and model-based specification techniques (NEW)Contains end-of-chapter exercises and numerous case studies, with potential course outlines suggested in the PrefaceCovers Object-Z, B-Method, and Calculus of Communicating Systems (NEW)Offers material that can be taught with tool-supported laboratory projectsThis comprehensive textbook is essential reading for students at all levels in computer science, software engineering, computer engineering, and information systems engineering. Software professionals wishing to familiarize themselves with formal methods will also find this an invaluable reference. Dr. V.S. Alagar is Professor Emeritus at the Department of Computer Science and Software Engineering of Concordia University, Montreal, Canada. Dr. K. Periyasamy is a full Professor at the Department of Computer Science of the University of Wisconsin-La Crosse, USA.
Review
From the reviews of the second edition: "It covers a lot of material, and various subsets of the book may be used - as proposed by the authors - for different course offerings, from undergraduate to advanced graduate levels, as well as a reference for practitioners ... . Bibliographical notes (usually very good) and exercises are included at the end of each chapter. ... Summing up, this is a good and useful book on a very important topic ... ." (Haim Kilov, Zentralblatt MATH, Vol. 1243, 2012) "This software engineering book introduces software specifications. It presents basic mathematics typically used in formal methods and describes various existing formal specification languages and methods. It also demonstrates how to write specifications using examples taken from real-life software systems. ... Each chapter has exercises, bibliographic notes, and a list of references. ... Courses that cover software specifications can use either specific chapters or the complete text. The book can also serve as a reference on software specifications." (Maulik A. Dave, ACM Computing Reviews, February, 2012)
Synopsis
Revised and updated, Specification of Software Systems builds upon the original focus on software specification with added emphasis on the practice of formal methods for specification and verification. The text covers a wide range of formal specification techniques.
Synopsis
Part I: Specification Fundamentals
The Role of Specification
Specification Activities
Specification Qualities
Abstraction
Part II: Formalism Fundamentals
Formal Systems
Automata
Extended Finite State Machine
Classification of Formal Specification Methods
Part III: Logic
Propositional Logic
Predicate Logic
Temporal Logic
Part IV: Mathematical Abstractions for Model-based Specifications
Set Theory and Relations
Part V: Property-oriented Specifications
Algebraic Specification
Larch
Calculus of Communicating Systems
Part VI: Model-based Specifications
Vienna Development Method
The Z Notation
The Object-Z Specification Language
The B-Method
Synopsis
This extensively revised and updated new edition of Specification of Software Systems builds upon the original focus on software specification with added emphasis on the practice of formal methods for specification and verification activities for different types of software systems and at different stages of developing software systems. Topics and features: provides a wide coverage of formal specification techniques and a clear writing style, supported by end-of-chapter bibliographic notes for further reading; presents a logical structure, with sections devoted to specification fundamentals, basics of formalism, logic, set theory and relations, property-oriented specification methods, and model-based specification techniques; contains end-of-chapter exercises and numerous case studies, with potential course outlines suggested in the Preface; covers Object-Z, B-Method, and Calculus of Communicating Systems; offers material that can be taught with tool-supported laboratory projects.
About the Author
Dr. V.S. Alagar is Professor Emeritus at the Department of Computer Science and Software Engineering of Concordia University, Montreal, Canada. Dr. K. Periyasamy is a full Professor at the Department of Computer Science of the University of Wisconsin-La Crosse, USA.
Table of Contents
Part I: Specification Fundamentals The Role of Specification Specification Activities Specification Qualities Abstraction Part II: Formalism Fundamentals Formal Systems Automata Extended Finite State Machine Classification of Formal Specification Methods Part III: Logic Propositional Logic Predicate Logic Temporal Logic Part IV: Mathematical Abstractions for Model-based Specifications Set Theory and Relations Part V: Property-oriented Specifications Algebraic Specification Larch Calculus of Communicating Systems Part VI: Model-based Specifications Vienna Development Method The Z Notation The Object-Z Specification Language The B-Method