Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
Software Abstractions: Logic, Language, and Analysis

Buy

As a programmer working for Logica UK in London in the mid-1980’s, I became a passionate advocate of formal methods. Extrapolating from small successes with VDM and JSP, I was sure that widespread use of formal methods would bring an end to the software crisis.

One approach especially intrigued me. John Guttag and Jim Horning had developed a language, called Larch, which was amenable to a mechanical analysis. In a paper they’d written a few years earlier [23], and which is still not as widely known as it deserves to be, they showed how questions about a design might be answered automatically. In other words, we would have real software “blueprints”—a way to analyze the essence of the design before committing to code. I went to pursue my PhD with John at MIT, and have been a researcher ever since.

In Software Abstractions Daniel Jackson introduces an 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. This revised edition updates the text, examples, and appendixes to be fully compatible with the latest version of Alloy (Alloy 4).

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: 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).

(HTML tags aren't allowed.)

Handbook of Mathematical Methods in Imaging (Springer Reference)
Handbook of Mathematical Methods in Imaging (Springer Reference)

The Handbook of Mathematical Methods in Imaging provides a comprehensive treatment of the mathematical techniques used in imaging science. The material is grouped into two central themes, namely, Inverse Problems (Algorithmic Reconstruction) and Signal and Image Processing. Each section within the themes covers applications (modeling),...

Relational and Algebraic Methods in Computer Science: 13th International Conference, RAMiCS 2012, Cambridge, United Kingdom, September 17-21, 2012, Proceedings (Lecture Notes in Computer Science)
Relational and Algebraic Methods in Computer Science: 13th International Conference, RAMiCS 2012, Cambridge, United Kingdom, September 17-21, 2012, Proceedings (Lecture Notes in Computer Science)

This book constitutes the thoroughly refereed post-conference proceedings of the 13th International Conference on Relational and Algebraic Methods in Computer Science, RAMiCS 13, held in Cambridge, UK, in September 2012. The 23 revised full papers presented were carefully selected from 39 submissions in the general area of relational and...

Bhagavad G?t? and Leadership: A Catalyst for Organizational Transformation (Palgrave Studies in Workplace Spirituality and Fulfillment)
Bhagavad G?t? and Leadership: A Catalyst for Organizational Transformation (Palgrave Studies in Workplace Spirituality and Fulfillment)
This book shows how the Bhagavad G?t? (part of the great Indian epic ? the Mah?bh?rata) can be approached as a powerful tool for change management and as a catalyst for organizational transformation. It presents time-tested leadership strategies drawn from the Bhagavad G?t? that are relevant for today’s leaders. This book focuses...

Cryptanalysis of RSA and Its Variants
Cryptanalysis of RSA and Its Variants

Thirty years after RSA was first publicized, it remains an active research area. Although several good surveys exist, they are either slightly outdated or only focus on one type of attack. Offering an updated look at this field, Cryptanalysis of RSA and Its Variants presents the best known mathematical attacks on RSA and its...

Mining Sequential Patterns from Large Data Sets (Advances in Database Systems)
Mining Sequential Patterns from Large Data Sets (Advances in Database Systems)
The focus of Mining Sequential Patterns from Large Data Sets is on sequential pattern mining. In many applications, such as bioinformatics, web access traces, system utilization logs, etc., the data is naturally in the form of sequences. This information has been of great interest for analyzing the sequential data to find its...
Sams Teach Yourself Java 2 in 21 Days (2nd Edition)
Sams Teach Yourself Java 2 in 21 Days (2nd Edition)
It helps to have a little programming experience under your belt. That having been said, this book provides a comprehensive, and readable introduction to Java.

Sams Teach Yourself Java in 21 Days, Second Edition is known for its clear and personable writing, its extensive use of examples, and its logical step-by-step organization. This
...
©2021 LearnIT (support@pdfchm.net) - Privacy Policy