Rigorous Software Development

$72.99

Taxes may apply at checkout.

Rigorous Software Development

An Introduction to Program Verification

Software Engineering Mathematical theory of computation Maths for computer scientists

Authors: Jose Bacelar Almeida, Maria Joao Frade, Jorge Sousa Pinto, Simão Melo de Sousa

Dinosaur mascot

Collection: Undergraduate Topics in Computer Science

Language: English

Published by: Springer

Published on: 23rd May 2026

Format: LCP-protected ePub

ISBN: 9781447175582


Software errors and the importance of verification

Software errors can lead to catastrophic consequences, from financial losses to threats to human safety. As a result, rigorous methods for software development and validation have become increasingly critical. Program verification, a key area of formal methods, provides mathematical tools and techniques to ensure that software behaves as intended.

Overview of the book

This book provides a comprehensive introduction to program verification, combining theoretical foundations with practical applications using real-world tools. It offers a self-contained overview of propositional logic and first-order reasoning with theories, followed by a study of Hoare-style program logic with annotations and the generation of verification conditions. The use of Frama-C’s WP plug-in for verifying C programs annotated with the ACSL specification language, including safety properties, is also covered.

Recent updates and target audience

This revised and expanded second edition incorporates recent advances in formal methods and program verification, integrating new techniques, tools, and exercises to equip readers with the skills necessary for rigorous software development. Rigorous Software Development is ideal for computer science students, researchers in formal methods, and software engineers seeking a deeper understanding of program verification techniques and tools.

It equips readers with the knowledge needed to apply rigorous methods in practice while providing a solid foundation for the evolving landscape of modern software engineering.

Show moreShow less