Software Verification and Validation


Book Description

This book fills the critical need for an in-depth technical reference providing the methods and techniques for building and maintaining confidence in many varities of system software. The intent is to help develop reliable answers to such critical questions as: 1) Are we building the right software for the need? and 2) Are we building the software right? Software Verification and Validation: An Engineering and Scientific Approach is structured for research scientists and practitioners in industry. The book is also suitable as a secondary textbook for advanced-level students in computer science and engineering.




Advanced Verification Techniques


Book Description

"As chip size and complexity continues to grow exponentially, the challenges of functional verification are becoming a critical issue in the electronics industry. It is now commonly heard that logical errors missed during functional verification are the most common cause of chip re-spins, and that the costs associated with functional verification are now outweighing the costs of chip design. To cope with these challenges engineers are increasingly relying on new design and verification methodologies and languages. Transaction-based design and verification, constrained random stimulus generation, functional coverage analysis, and assertion-based verification are all techniques that advanced design and verification teams routinely use today. Engineers are also increasingly turning to design and verification models based on C/C++ and SystemC in order to build more abstract, higher performance hardware and software models and to escape the limitations of RTL HDLs. This new book, Advanced Verification Techniques, provides specific guidance for these advanced verification techniques. The book includes realistic examples and shows how SystemC and SCV can be applied to a variety of advanced design and verification tasks." - Stuart Swan




Verification of Object-Oriented Software. The KeY Approach


Book Description

The ultimate goal of program verification is not the theory behind the tools or the tools themselves, but the application of the theory and tools in the software engineering process. Our society relies on the correctness of a vast and growing amount of software. 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.




Principles of Functional Verification


Book Description

As design complexity in chips and devices continues to rise, so, too, does the demand for functional verification. Principles of Functional Verification is a hands-on, practical text that will help train professionals in the field of engineering on the methodology and approaches to verification.In practice, the architectural intent of a device is necessarily abstract. The implementation process, however, must define the detailed mechanisms to achieve the architectural goals. Based on a decade of experience, Principles of Functional Verification intends to pinpoint the issues, provide strategies to solve the issues, and present practical applications for narrowing the gap between architectural intent and implementation. The book is divided into three parts, each building upon the chapters within the previous part. Part One addresses why functional verification is necessary, its definition and goals. In Part Two, the heart of the methodology and approaches to solving verification issues are examined. Each chapter in this part ends with exercises to apply what was discussed in the chapter. Part Three looks at practical applications, discussing project planning, resource requirements, and costs. Each chapter throughout all three parts will open with Key Objectives, focal points the reader can expect to review in the chapter.* Takes a "holistic" approach to verification issues* Approach is not restricted to one language* Discussed the verification process, not just how to use the verification language




Verification, Validation, and Testing of Engineered Systems


Book Description

Systems' Verification Validation and Testing (VVT) are carried out throughout systems' lifetimes. Notably, quality-cost expended on performing VVT activities and correcting system defects consumes about half of the overall engineering cost. Verification, Validation and Testing of Engineered Systems provides a comprehensive compendium of VVT activities and corresponding VVT methods for implementation throughout the entire lifecycle of an engineered system. In addition, the book strives to alleviate the fundamental testing conundrum, namely: What should be tested? How should one test? When should one test? And, when should one stop testing? In other words, how should one select a VVT strategy and how it be optimized? The book is organized in three parts: The first part provides introductory material about systems and VVT concepts. This part presents a comprehensive explanation of the role of VVT in the process of engineered systems (Chapter-1). The second part describes 40 systems' development VVT activities (Chapter-2) and 27 systems' post-development activities (Chapter-3). Corresponding to these activities, this part also describes 17 non-testing systems' VVT methods (Chapter-4) and 33 testing systems' methods (Chapter-5). The third part of the book describes ways to model systems' quality cost, time and risk (Chapter-6), as well as ways to acquire quality data and optimize the VVT strategy in the face of funding, time and other resource limitations as well as different business objectives (Chapter-7). Finally, this part describes the methodology used to validate the quality model along with a case study describing a system's quality improvements (Chapter-8). Fundamentally, this book is written with two categories of audience in mind. The first category is composed of VVT practitioners, including Systems, Test, Production and Maintenance engineers as well as first and second line managers. The second category is composed of students and faculties of Systems, Electrical, Aerospace, Mechanical and Industrial Engineering schools. This book may be fully covered in two to three graduate level semesters; although parts of the book may be covered in one semester. University instructors will most likely use the book to provide engineering students with knowledge about VVT, as well as to give students an introduction to formal modeling and optimization of VVT strategy.




System Validation and Verification


Book Description

Historically, the terms validation and verification have been very loosely defined in the system engineering world, with predictable confusion. Few hardware or software testing texts even touch upon validation and verification, despite the fact that, properly employed, these test tools offer system and test engineers powerful techniques for identifying and solving problems early in the design process. Together, validation and verification encompass testing, analysis, demonstration, and examination methods used to determine whether a proposed design will satisfy system requirements. System Validation and Verification clear definitions of the terms and detailed information on using these fundamental tools for problem solving. It smoothes the transition between requirements and design by providing methods for evaluating the ability of a given approach to satisfy demanding technical requirements. With this book, system and test engineers and project managers gain confidence in their designs and lessen the likelihood of serious problems cropping up late in the program. In addition to explanations of the theories behind the concepts, the book includes practical methods for each step of the process, examples from the author's considerable experience, and illustrations and tables to support the ideas. Although not primarily a textbook, System Validation and Verification is based in part on validation and verification courses taught by the author and is an excellent supplemental reference for engineering students. In addition to its usefulness to system engineers, the book will be valuable to a wider audience including manufacturing, design, software , and risk management project engineers - anyone involved in large systems design projects.




Verification, Validation and Testing in Software Engineering


Book Description

"This book explores different applications in V & V that spawn many areas of software development -including real time applications- where V & V techniques are required, providing in all cases examples of the applications"--Provided by publisher.




Numerical Verification Methods and Computer-Assisted Proofs for Partial Differential Equations


Book Description

In the last decades, various mathematical problems have been solved by computer-assisted proofs, among them the Kepler conjecture, the existence of chaos, the existence of the Lorenz attractor, the famous four-color problem, and more. In many cases, computer-assisted proofs have the remarkable advantage (compared with a “theoretical” proof) of additionally providing accurate quantitative information. The authors have been working more than a quarter century to establish methods for the verified computation of solutions for partial differential equations, mainly for nonlinear elliptic problems of the form -∆u=f(x,u,∇u) with Dirichlet boundary conditions. Here, by “verified computation” is meant a computer-assisted numerical approach for proving the existence of a solution in a close and explicit neighborhood of an approximate solution. The quantitative information provided by these techniques is also significant from the viewpoint of a posteriori error estimates for approximate solutions of the concerned partial differential equations in a mathematically rigorous sense. In this monograph, the authors give a detailed description of the verified computations and computer-assisted proofs for partial differential equations that they developed. In Part I, the methods mainly studied by the authors Nakao and Watanabe are presented. These methods are based on a finite dimensional projection and constructive a priori error estimates for finite element approximations of the Poisson equation. In Part II, the computer-assisted approaches via eigenvalue bounds developed by the author Plum are explained in detail. The main task of this method consists of establishing eigenvalue bounds for the linearization of the corresponding nonlinear problem at the computed approximate solution. Some brief remarks on other approaches are also given in Part III. Each method in Parts I and II is accompanied by appropriate numerical examples that confirm the actual usefulness of the authors’ methods. Also in some examples practical computer algorithms are supplied so that readers can easily implement the verification programs by themselves.




Formal Verification of Control System Software


Book Description

An essential introduction to the analysis and verification of control system software The verification of control system software is critical to a host of technologies and industries, from aeronautics and medical technology to the cars we drive. The failure of controller software can cost people their lives. In this authoritative and accessible book, Pierre-Loïc Garoche provides control engineers and computer scientists with an indispensable introduction to the formal techniques for analyzing and verifying this important class of software. Too often, control engineers are unaware of the issues surrounding the verification of software, while computer scientists tend to be unfamiliar with the specificities of controller software. Garoche provides a unified approach that is geared to graduate students in both fields, covering formal verification methods as well as the design and verification of controllers. He presents a wealth of new verification techniques for performing exhaustive analysis of controller software. These include new means to compute nonlinear invariants, the use of convex optimization tools, and methods for dealing with numerical imprecisions such as floating point computations occurring in the analyzed software. As the autonomy of critical systems continues to increase—as evidenced by autonomous cars, drones, and satellites and landers—the numerical functions in these systems are growing ever more advanced. The techniques presented here are essential to support the formal analysis of the controller software being used in these new and emerging technologies.




An Assessment of Space Shuttle Flight Software Development Processes


Book Description

Effective software is essential to the success and safety of the Space Shuttle, including its crew and its payloads. The on-board software continually monitors and controls critical systems throughout a Space Shuttle flight. At NASA's request, the committee convened to review the agency's flight software development processes and to recommend a number of ways those processes could be improved. This book, the result of the committee's study, evaluates the safety, oversight, and management functions that are implemented currently in the Space Shuttle program to ensure that the software is of the highest quality possible. Numerous recommendations are made regarding safety and management procedures, and a rationale is offered for continuing the Independent Verification and Validation effort that was instituted after the Challenger Accident.