Beckert, Bernhard, Hähnle, Reiner, Schmitt, Peter H. (Eds.)
2007, XXIX, 658 p. Also available online.
Springer eBooks may be purchased by end-customers only and are sold without copy protection (DRM free). Instead, all eBooks include personalized watermarks. This means you can read the Springer eBooks across numerous devices such as Laptops, eReaders, and tablets.
You can pay for Springer eBooks with Visa, Mastercard, American Express or Paypal.
After the purchase you can directly download the eBook file or read it online in our Springer eBook Reader. Furthermore your eBook will be stored in your MySpringer account. So you can always re-download your eBooks.
Improving the software engineering process is an important, long-term goal with many steps. Two of those steps are the KeY tool and this KeY book. The underlying verification paradigm is deductive verification in an expressive program logic. The logic used for reasoning about programs is not a minimalist version suitable for theoretical investigations, but an industrial-strength version. The first-order part is equipped with a type system for modeling of object hierarchies, with underspecification, and with various built-in theories. The program logic covers full Java Card (plus a bit more such as multi-dimensional arrays, characters, and long integers). Emphasis is thereby put on specification, including two widely-used object-oriented specification languages (OCL and JML) and even an interface to natural language generation. The generation of proof obligations from specified code is discussed at length. The book is rounded off by two substantial case studies that are included and presented in detail.
The material is presented on an advanced level suitable for graduate courses and, of course, active researchers with an interest in verification.
A New Look at Formal Methods for Software Construction.- A New Look at Formal Methods for Software Construction.- I: Foundations.- First-Order Logic.- Dynamic Logic.- Construction of Proofs.- II: Expressing and Formalising Requirements.- Formal Specification.- Pattern-Driven Formal Specification.- Natural Language Specifications.- Proof Obligations.- From Sequential Java to Java Card.- III: Using the KeY System.- Using KeY.- Proving by Induction.- Java Integers.- Proof Reuse.- IV: Case Studies.- The Demoney Case Study.- The Schorr-Waite-Algorithm.- Appendices.- Predefined Operators in Java Card DL.- The KeY Syntax.