Ebook: Software Verification and Analysis: An Integrated, Hands-On Approach
- Genre: Computers // Programming
- Tags: Software Engineering/Programming and Operating Systems, Software Engineering, Programming Techniques
- Year: 2009
- Publisher: Springer-Verlag London
- Edition: 1
- Language: English
- pdf
This book advocates the integrated and tool supported use of all available verification methods to improve software correctness. The following major software verification techniques and their supporting tools, based on sound mathematical models, are discussed:
• Correctness by construction, using the Vienna Development Method-Specification Language (VDM-SL) and its supporting CSK’s Toolbox.
• Static program analysis supported by the PRAXIS’ SPARK toolset and SofTools’ System for Testing And Debugging (STAD 4.0).
• Program proving supported by SPARK.
• Dynamic program analysis supported by STAD.
VDM-SL Toolbox and SPARK illustrate, respectively, the correctness by construction and program proving paradigms. The author demonstrates that while both methods are powerful, errors are inevitable and detecting these may be more difficult than in the case of an informally developed program. Consequently, error detection must be an integral part of the entire life cycle of a programming project. Black-Box (specification based) and Structural (code based) testing are covered and supported by STAD (including 5 testing criteria). STAD also features a quite powerful descriptive and proscriptive static analysis.
Software engineers, students and computer scientists will find that the book provides the reader with a comprehensive understanding of software verification issues. STAD’s outputs allow the user to implement and test their own ideas.
The most recent version of STAD can be downloaded from http://www.stadtools.com.
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.