Refinement is one of the cornerstones of the formal approach to software engineering, and its use in various domains has led to research on new applications and generalisation. This book brings together this important research in one volume, with the addition of examples drawn from different application areas. It covers four main themes:
- Data refinement and its application to Z
- Generalisations of refinement that change the interface and atomicity of operations
- Refinement in Object-Z
- Modelling state and behaviour by combining Object-Z with CSP
Refinement in Z and Object-Z: Foundations and Advanced Applications provides an invaluable overview of recent research for academic and industrial researchers, lecturers teaching formal specification and development, industrial practitioners using formal methods in their work, and postgraduate and advanced undergraduate students.
This second edition is a comprehensive update to the first and includes the following new material:
- Early chapters have been extended to also include trace refinement, based directly on partial relations rather than through totalisation
- Provides an updated discussion on divergence, non-atomic refinements and approximate refinement
- Includes a discussion of the differing semantics of operations and outputs and how they affect the abstraction of models written using Object-Z and CSP
- Presents a fuller account of the relationship between relational refinement and various models of refinement in CSP
- Bibliographic notes at the end of each chapter have been extended with the most up to date citations and research
Cuprins
Preface.- Part I – Refining Z Specifications .- An Introduction to Z.- Simple Refinement.- Data Refinement and Simulations.- Refinement in Z.- Calculating Refinements.- Promotion.- Testing and Refinement.- A Single Simulation Rule.- Part II – Interfaces and Operations: ADTs Viewed in an Environment .- Refinement, Observation and Modification.- IO Refinement.- Weak Refinement.- Non-Atomic Refinement.- Case Study: A Digital and Analogue Watch.- Further Generalisations.- Part III – Object-Oriented Refinement .- An Introduction to Object Z.- Refinement in Object-Z.- Class Refinement.- Part IV – Modelling State and Behaviour .- Combining CSP and Object-Z.- Refining CSP and Object-Z Specifications.- Conclusions.- Glossary of Notation.- Index.