Software Abstractions: Logic, Language and Analysis

Nov. 1, 2006
By Daniel Jackson
ISBN: 0-262-10114-9

This book may not be every programmer's cup of tea, but if you are interested in the Alloy programming language, agile modeling or a new way to look at software abstraction then this is the book for you.

Alloy is related to the Z language. Alloy is a combination of predicate logic and relational algebra that maps well to graphical modeling tools like UML (Universal Modeling Language). A sizable chunk of the book is dedicated to Alloy making it a good reference manual but Jackson does a good job of presenting his design principles while introducing aspects of Alloy.

Alloy will probably not push C out of its top programming language slot but it offers a number of benefits in terms of analysis and design. Alloy Analyzer is a tool that is discussed and that can be downloaded from MIT's website. It is applied to models written in Alloy. Formally meeting design constraints is becoming critical as designs become more complex, employ hundreds of designers and address safety critical and reliable applications.

Alloy is an interesting language, and you will need to read this book to understand it and its application. Alloy can be used to build and verify models even if the application is written in something like C. This is similar to UML, but Alloy is significantly simpler, though no less powerful. It might be more suitable for many developers.

This book does a good job of putting modeling and model analysis tools and methodologies into the hands of the reader.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations


To join the conversation, and become an exclusive member of Electronic Design, create an account today!