This book provides a comprehensive introduction to various mathematical approaches to achieving high-quality software. An introduction to mathematics that is essential for sound software engineering is provided as well as a discussion of various mathematical methods that are used both in academia and industry. The mathematical approaches considered include: Z specification language Vienna Development Methods (VDM) Irish school of VDM (VDM) approach of Dijkstra and Hoare classical engineering approach of Parnas Cleanroom approach developed at IBM software reliability, and unified modelling language (UML). Additionally, technology transfer of the mathematical methods to industry is considered. The book explains the main features of these approaches and applies mathematical methods to solve practical problems. Written with both student and professional in mind, this book assists the reader in applying mathematical methods to solve practical problems that are relevant to software engineers.