John Fitzgerald and Peter Gorm Larsen, Cambridge University Press, 2nd Edition, 2009 ISBN 0 521 62348 0 with a foreword by Dines Bjørner and Cliff Jones Hardback £40.00 Paperback c £24.95
This site contains Exercises, VDM-SL examples from the book, course material and more information on the VDM family of modelling languages and tools.
About the book
How can we make sure that the software we build does what it is supposed to? This book provides an insight into established techniques which help developers to overcome the complexity of software development by constructing models of software systems in early design stages. It uses one of the leading formal methods, VDM (Vienna Development Method), and combines training in the formalism with industry-strength tool support and examples derived from real industrial applications. The principles taught here also apply to many of the current generation of formal methods. This second edition has been updated to include advanced online tool support for formal modelling as well as up-to-date reports on real commercial applications in areas as diverse as business information systems and firmware design.
- A gentle, structured approach with real-world case studies
- Class tested in universities and industrial courses
- Software tools now available online, together with teaching materials, exercises, solutions and more
Contents
Foreword to the first edition; Preface; 1. Introduction; 2. Constructing a model; 3. VDMTools Lite; 4. Describing system properties using logical expressions; 5. The elements of a formal model; 6. Sets; 7. Sequences; 8. Mappings; 9. Recursive structures; 10. Validating models; 11. State-based modelling; 12. Large-scale modelling; 13. Using VDM in practice; A. Language guide; B. Solutions to exercises; Bibliography; Subject index; Definitions index. ISBN 0 521 62348 0
You can order the book (including inpection copies) from the Cambridge University Press Site
SCSK Systems has kindly provided a special version of VDMTools to support our book. VDMTools Lite is available free of charge and can be downloaded from www.vdmtools.jp/en. Versions are available for Windows 2000/XP, Mac (G4, G5 and x86) and Linux. For academic users, site licenses are available, also free of charge, for the full version of the tool. The full version includes automatic code generation for Java and C++, dynamic link library and CORBA support. Please contact VDM.SP@csk.com for any queries related to licensing.
The alternative to VDMTools is to use the Overture open source solution built on top of the Eclipse platform. A tutorial introducing Overture in a way similar to chapter 3 of the book can be downloaded from here. Overture stand-alone executables for Windows, Mac and Linux are also freely available.
Learning and Teaching Materials Online
We have teaching materials for the book.
Book Examples
Exercises
-
-
-
-
-
- Implicit Specification
- Validation
- Mock Examination material
Errata
- Page 5, last line: “or equal to” should be deleted.
- Page 21, line 8: “Light” should be “Qualification”
- Page 31, line 9-10: “Appendix Appendix” should be “Appendix”
- Page 63, line 1: “exceed” should be “are less than”
- Page 84, footnote 2: “Appendix Appendix” should be “Appendix”
- Page 85, middle: “Figure 5.2” should be “Figure 5.1”
- Page 89, line -4: “known about in” should be “known in”
- Page 95, middle: “in Exercise 6.15” should be “in the solution to Exercise 6.15”
- Page 99, line 11: Dot missing at teh end of the paragraph.
- Page 100, line 16: “Two identical records are giving” should be “Two identical records give”
- Page 100, line 18: A footnote stating “This function is normally called conflict detection” should be added
- Page 100, line -7+-6: “people” should be “aircraft” (twice)
- Page 102, line 11: “The & predicate” part is optional” should be added.
- Page 103, line 12: “the predicate” should be “the predicate in combination with the binding”
- Page 139, line 2: “dependences” should be “dependencies”
- Page 162, line 10: “would unchanged” should be “would be unchanged”
- Page 173, middle: “aplication” should be “application”
- Page 255, line 5: “and the seq1 of _ operator” should be added
- Page 265, solution to exercise 5.2 and 5.3: “Controller” should be “Kernel”