Software Abstractions: Logic, Language, and Analysis

by The MIT Press

$39.00
buy from amazon.com
Average Rating: * * * * -
Sales Rank:203598 (lower is better)
Price Used:$19.50
Shipping:Free Shipping on most orders over $25*
Availability:Usually ships in 24 hours
Label:The MIT Press
Pages:366
Binding:Hardcover
Publication Date:2006-04-07
Published By:The MIT Press
ASIN:0262101149
Category:Book

Authors

Editorial Reviews and Product Descriptions

Product Description

In Software Abstractions Daniel Jackson introduces a new approach to software design that draws on traditional formal methods but exploits automated tools to find flaws as early as possible. This approach—which Jackson calls "lightweight formal methods" or "agile modeling"—takes from formal specification the idea of a precise and expressive notation based on a tiny core of simple and robust concepts but replaces conventional analysis based on theorem proving with a fully automated analysis that gives designers immediate feedback. Jackson has developed Alloy, a language that captures the essence of software abstractions simply and succinctly, using a minimal toolkit of mathematical notions. The designer can use automated analysis not only to correct errors but also to make models that are more precise and elegant. This approach, Jackson says, can rescue designers from "the tarpit of implementation technologies" and return them to thinking deeply about underlying concepts.

Software Abstractions introduces the key elements of the approach: a logic, which provides the building blocks of the language; a language, which adds a small amount of syntax to the logic for structuring descriptions; and an analysis, a form of constraint solving that offers both simulation (generating sample states and executions) and checking (finding counterexamples to claimed properties). The book uses Alloy as a vehicle because of its simplicity and tool support, but the book's lessons are mostly language-independent, and could also be applied in the context of other modeling languages.

Customer Reviews

Good guide for those looking for formal methods that are actually useful - Reviewed on 2007-06-05
* * * *
7 customers found this review helpful.

This book describes Alloy, a tool for specifying and analyzing data structures and other relationships within your programs. The book walks you through a tutorial, showing you how you can find the bugs in your specifications before you actually write any code, and then goes into the details of the language and its semantics.

I think I was exactly the target audience for this book (and the Alloy language), as I write a lot of Java software and have been looking for a practical specification tool. I've heard of other people who were less happy with this book, as they were trying to learn _about_ Alloy rather than learning Alloy itself. There is some material at the beginning and end that compares and contrasts Alloy with other specification languages, but the real value of this book comes in the middle where it teaches you how to use Alloy effectively.
Go To Amazon Product Page

* - See Amazon Product Page for shipping and pricing details.


Book Subjects