- 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
- Introduction: What Do We Want to Know About the Program.
- Why Not Write Correct Software the First Time?
- How to Prove a Program Correct: Programs Without Loops.
- How to Prove a Program Correct: Iterative Programs.
- Prepare Test for Any Implementation: Black
- box Testing.
- Intermediate Program Representation.
- Program Dependencies.
- What Can One Tell about a Program Without Its Execution: Static Analysis.
- Is there a Bug in the Program?
- Structural Program Testing.
- Dynamic Program Analysis.
Please Login to submit errata.No errata are currently published