Formal Methods in Software Engineering
Failed to add items
Sorry, we are unable to add the item because your shopping cart is already at capacity.
Add to Cart failed.
Please try again later
Add to Wish List failed.
Please try again later
Remove from wishlist failed.
Please try again later
Adding to library failed
Please try again
Follow podcast failed
Please try again
Unfollow podcast failed
Please try again
Audible Standard 30-day free trial
Select 1 audiobook a month from our entire collection of titles.
Yours as long as you’re a member.
Get unlimited access to bingeable podcasts.
Standard auto renews for $8.99 a month after 30 days. Cancel anytime.
Buy for $7.50
-
Narrated by:
-
Virtual Voice
-
By:
-
Ajit Singh
This title uses virtual voice narration
Virtual voice is computer-generated narration for audiobooks.
Philosophy: Pragmatism Over Purism
The guiding philosophy of this book is "Pragmatism Over Purism." I treat formal methods as a powerful engineering discipline, not an abstract mathematical one. The goal is not to produce lengthy, manual proofs, but to leverage automated tools to gain deep insights into a system's design. I focus on "lightweight" or "agile" formal methods that deliver the maximum value—bug finding and design clarification—for the minimum notational and theoretical overhead. This book categorically rejects that approach. I treat formal methods not as a branch of theoretical computer science, but as a high-leverage engineering discipline. We will view formal specification and model checking as a kind of "super-powered whiteboarding"—a way to precisely articulate a design, ask deep questions about its behavior, and get concrete answers from an automated assistant.
Key Features
1. Application-Centric: Every chapter is built around solving a practical engineering problem.
2. Hands-On Tooling: Focuses on using industry-relevant, automated tools like the TLA+ and Alloy model checkers.
3. Beginner-Friendly Notations: Uses the simplest possible notations and avoids deep dives into complex mathematical theory.
4. Step-by-Step Tutorials: Provides a clear, guided path from problem statement to a formally modeled and analyzed design.
5. Code-Side Integration: Emphasizes how to translate formal specifications into design patterns, assertions, and high-quality code.
6. Complete DIY Capstone Project: A full final chapter dedicated to modeling, verifying, and outlining the implementation of a distributed locking service.
7. Global Syllabus Compatibility: The topics are carefully aligned with the curriculum of B.Tech/M.Tech (B.S./M.S.) Software Engineering courses in the USA and other leading international universities.
Key Takeaways
After reading this book, you will be able to:
1. Model the behavior and structure of complex software systems.
2. Write precise, unambiguous specifications using formal notations.
3. Use automated model checkers to find subtle bugs in your designs.
4. Specify and verify critical system properties like safety and liveness.
5. Translate a verified design into a more reliable and robust implementation.
Disclaimer: Earnest request from the Author.
Kindly go through the table of contents and refer kindle edition for a glance on the related contents.
Thank you for your kind consideration!
No reviews yet