Formal methods emphasize the correct and efficient development of software. This text puts formal specification in the context of traditional methods of software development, including object-orientation, introducing these concepts and the necessary discrete maths, before moving on to look at both Z and VDM in depth, using the case study of a drinks dispensing machine.
