Refinement is one of the cornerstones of a formal approach to software engineering. Refinement is all about turning an abstract description (of a soft or hardware system) into something closer to implementation. It provides that essential bridge between higher level requirements and an implementation of those requirements.
This book provides a comprehensive introduction to refinement for the researcher or graduate student. It introduces refinement in different semantic models, and shows how refinement is defined and used within some of the major formal methods and languages in use today.
It (1) introduces the reader to different ways of looking at refinement, relating refinement to observations(2) shows how these are realised in different semantic models (3) shows how different formal methods use different models of refinement, and (4) how these models of refinement are related.
|Publisher:||Springer International Publishing|
|Edition description:||1st ed. 2018|
|Product dimensions:||6.10(w) x 9.25(h) x (d)|
About the Author
Eerke Boiten has been doing research in formal methods for 30 years, working on topics such as program transformation, viewpoint specification, and in particular: refinement. He has published some 70 refereed journal articles and conference papers as well as a research monograph in this area. In recent years, he has branched out into computer security and privacy, and engages widely on those topics beyond the academic circles. He is currently Professor of Cyber Security at De Montfort University, Leicester, UK.
Table of ContentsSemantics.- Labeled Transition Systems and their Refinement.- Automata - introducing simulations.- Simple State Based Refinement.- A Relational View of Refinement.- Perspicuity, Divergence, and Internal Operations.- Refinement in Specification Languages.- State-based Languages: Z and B.- State-based Languages: Event-B and ASM.- Relating Notions of Refinement.- Relational Concurrent Refinement.- Relating Data Refinement and Failures-divergences Refinement.- Process data types - a fully general model of concurrent refinement.