Prototyping Z Specifications in Extended Lisp. HIBBERD, Richard B
Total Page:16
File Type:pdf, Size:1020Kb
Prototyping Z specifications in extended Lisp. HIBBERD, Richard B. Available from Sheffield Hallam University Research Archive (SHURA) at: http://shura.shu.ac.uk/19788/ This document is the author deposited version. You are advised to consult the publisher's version if you wish to cite from it. Published version HIBBERD, Richard B. (2001). Prototyping Z specifications in extended Lisp. Doctoral, Sheffield Hallam University (United Kingdom).. Copyright and re-use policy See http://shura.shu.ac.uk/information.html Sheffield Hallam University Research Archive http://shura.shu.ac.uk REFERENCE ProQuest Number: 10697090 All rights reserved INFORMATION TO ALL USERS The quality of this reproduction is dependent upon the quality of the copy submitted. In the unlikely event that the author did not send a complete manuscript and there are missing pages, these will be noted. Also, if material had to be removed, a note will indicate the deletion. uest ProQuest 10697090 Published by ProQuest LLC(2017). Copyright of the Dissertation is held by the Author. All rights reserved. This work is protected against unauthorized copying under Title 17, United States Code Microform Edition © ProQuest LLC. ProQuest LLC. 789 East Eisenhower Parkway P.O. Box 1346 Ann Arbor, Ml 48106- 1346 Prototyping Z Specifications in Extended Lisp Richard Bramwell Hibberd A thesis submitted in partial fulfilment of the requirements of Sheffield Hallam University for the degree of Doctor of Philosophy October 2001 Acknowledgements I would like to record my profound thanks to Ian Morrey and Jawed Siddiqi of the School of Computing and Management Sciences at Sheffield Hallam University, who have so freely offered guidance, support, encouragement and enthusiasm throughout the course of the project. I would also like to acknowledge the work of Graham Buckberry, the creator of the companion CASE tool TranZit, which work is referenced in this thesis. I must also record grateful thanks to successive Heads of the Department of Computing at The Nottingham Trent University, namely Professor Bob Whitrow, Dr. Ted Ashworth, Ms Pauline Fazackerley and Professor Adrian Hopgood; they all demonstrated faith in the eventual outcome, despite the extended timescale and numerous contra-indications. It is impossible to acknowledge individually all those who have been obliged to live with the consequences of my original decision to embark on this undertaking; this includes my work colleagues and my family, but much the greatest contribution has been from my wife Janice Hibberd who has unfailingly supported me in this undertaking. I cannot see that the debt I owe her can ever be repaid, but I am glad that I now have the chance to try. Richard Hibberd BEd MSc October 2001 For Rosie and Fraser Table of Contents Acknowledgements.......................................................................................................................................................2 Table of Contents.......................................................................................................................................................... 4 Table of Figures.............................................................................................................................................................6 Abstract............................................................................................................................................................................7 1. Introduction and Problem Definition.................................................................................................................9 1.1 The Software Crisis and palliative measures - Software Engineering as a discipline...................10 1.2 Formal Methods as a part of Software Engineering.............................................................................12 1.3 Requirements Engineering - its place in Software Engineering........................................................13 1.4 Research obj ecti ves.................................................................................................................................... 15 1.5 Thesis structure........................................................................................................................................... 18 2 Requirements Engineering.................................................................................................................................19 2.1 Requirements Engineering -the fundamental activities.......................................................................19 2.2 Requirements elicitation............................................................................................................................22 2.2.1 Requirements formalisation.............................................................................................................. 24 2.2.2 Requirements validation.................................................................................................................... 25 2.3 Formal Methods in Requirements Engineering........................................................................... 26 2.3.1 The benefits of formal specification...............................................................................................28 2.3.2 Specification using Z ......................................................................................................................... 28 2.3.2.1 Requirements validation through proof.....................................................................................30 2.3.2.2 Requirements validation through animation.............................................................................30 2.4 An Introduction to the REALiZE Method............................................................................................. 31 2.4.1 The expected benefits........................................................................................................................32 2.4.2 Support for other software development activities........................................................................33 3 The Animation of Specifications..................................................................................................................... 35 3.1 The disadvantages of specification executability................................................................................. 35 3.1.1 The disadvantages investigated........................................................................................................37 3.2 The advantages of specification executability...................................................................................... 39 3.2.1 How ZAL manages non-executability........................................................................................... 41 3.2.2 The best of both worlds..................................................................................................................... 42 3.3 Achieving executability.............................................................................................................................44 3.3.1 Approaches to the execution of Z specifications..........................................................................44 3.3.1.1 A formal framework for classifying animators........................................................................ 45 3.3.1.2 ZAL in this landscape...................................................................................................................46 3.3.1.3 Proving or Testing..........................................................................................................................47 3.4 The REALiZE Method and its supporting toolset............................................................................... 48 3.4.1 The toolset components......................................................................................................................51 3.4.2 The Edit, Transform, Execute cycle...................................... 52 3.4.3 De-coupling TranZit & ZAL............................................................................................................ 52 4 Realisation of the ZAL component.................................................................................................................. 54 4.1 General issues of symbolic execution of Z ...................... 54 4.2 The application domain and symbolic evaluation strategies..............................................................55 4.2.1 Particular characteristics of this development.............................................................................. 56 4.2.1.1 Towards a development paradigm (or 2)...................................................................................57 4.2.1.1.1 An illustration of a natural fit - local bindings................................................................ 58 4.2.2 The case for C++ ............................................................................................................................... 65 4.2.3 The case for Haskell......................................................................................................................... 67 4.2.4 The case for Lisp............................................................................................................................... 68 4.3 How the execution engine works............................................................................................................70 4.3.1 ZAL data