Software Verification and Analysis

An Integrated, Hands-On Approach

By Janusz Laski , William Stanley

Software Verification and Analysis Cover Image

This book addresses the most important techniques in improving the correctness of software, including correctness by construction, program proving, static analysis and dynamic, execution-based analysis. Problems and exercises are included.

Full Description

  • ISBN13: 978-1-8488-2239-9
  • 244 Pages
  • User Level: Students
  • Publication Date: April 29, 2009
  • Available eBook Formats: PDF
  • eBook Price: $89.95
Buy eBook Buy Print Book Add to Wishlist

Related Titles

Full Description
This book addresses the most important techniques in improving the correctness of software, including correctness by construction (top-down refinement), program proving, static analysis and dynamic, execution-based analysis (testing and debugging). Three major software verification techniques are discussed: Semantic program synthesis and analysis, static program analysis and dynamic program analysis. The correctness by construction paradigm is illustrated using the VDM-SL and the corresponding CSK Toolbox. The discussion involves the synthesis of direct and/or indirect specification, interpreting the latter and carrying out high-level testing of the specification. Problems are included in the text and one or more difficult exercises appear at the end of each chapter. Also, where appropriate, STAD’s handling of the concepts is illustrated. Written for advanced students and professionals wishing to explore more than one technique, this comprehensive text will be invaluable with its unique integrated approach.
Table of Contents

Table of Contents

  1. Preface.
  2. Introduction: What Do We Want to Know About the Program.
  3. Why Not Write Correct Software the First Time?
  4. How to Prove a Program Correct: Programs Without Loops.
  5. How to Prove a Program Correct: Iterative Programs.
  6. Prepare Test for Any Implementation: Black
  7. box Testing.
  8. Intermediate Program Representation.
  9. Program Dependencies.
  10. What Can One Tell about a Program Without Its Execution: Static Analysis.
  11. Is there a Bug in the Program?
  12. Structural Program Testing.
  13. Dynamic Program Analysis.
  14. Index.
Errata

Please Login to submit errata.

No errata are currently published