The Verification Challenge


Book Description




Successful Decision-making


Book Description

Unlike other publications on decision making, the book focuses on discovering the problem, analyzing it and on developing and assessing solution options. One whole chapter describes a case study. It illustrates how the proposed decision making procedure is used in practice. Executives get an approach to systematically and successfully solving complex problems.




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.




Verification and Validation in Scientific Computing


Book Description

Advances in scientific computing have made modelling and simulation an important part of the decision-making process in engineering, science, and public policy. This book provides a comprehensive and systematic development of the basic concepts, principles, and procedures for verification and validation of models and simulations. The emphasis is placed on models that are described by partial differential and integral equations and the simulations that result from their numerical solution. The methods described can be applied to a wide range of technical fields, from the physical sciences, engineering and technology and industry, through to environmental regulations and safety, product and plant safety, financial investing, and governmental regulations. This book will be genuinely welcomed by researchers, practitioners, and decision makers in a broad range of fields, who seek to improve the credibility and reliability of simulation results. It will also be appropriate either for university courses or for independent study.




Program Verification


Book Description

Among the most important problems confronting computer science is that of developing a paradigm appropriate to the discipline. Proponents of formal methods - such as John McCarthy, C.A.R. Hoare, and Edgar Dijkstra - have advanced the position that computing is a mathematical activity and that computer science should model itself after mathematics. Opponents of formal methods - by contrast, suggest that programming is the activity which is fundamental to computer science and that there are important differences that distinguish it from mathematics, which therefore cannot provide a suitable paradigm. Disagreement over the place of formal methods in computer science has recently arisen in the form of renewed interest in the nature and capacity of program verification as a method for establishing the reliability of software systems. A paper that appeared in Communications of the ACM entitled, `Program Verification: The Very Idea', by James H. Fetzer triggered an extended debate that has been discussed in several journals and that has endured for several years, engaging the interest of computer scientists (both theoretical and applied) and of other thinkers from a wide range of backgrounds who want to understand computer science as a domain of inquiry. The editors of this collection have brought together many of the most interesting and important studies that contribute to answering questions about the nature and the limits of computer science. These include early papers advocating the mathematical paradigm by McCarthy, Naur, R. Floyd, and Hoare (in Part I), others that elaborate the paradigm by Hoare, Meyer, Naur, and Scherlis and Scott (in Part II), challenges, limits and alternatives explored by C. Floyd, Smith, Blum, and Naur (in Part III), and recent work focusing on formal verification by DeMillo, Lipton, and Perlis, Fetzer, Cohn, and Colburn (in Part IV). It provides essential resources for further study. This volume will appeal to scientists, philosophers, and laypersons who want to understand the theoretical foundations of computer science and be appropriately positioned to evaluate the scope and limits of the discipline.




Verification and Control of Hybrid Systems


Book Description

Hybrid systems describe the interaction of software, described by finite models such as finite-state machines, with the physical world, described by infinite models such as differential equations. This book addresses problems of verification and controller synthesis for hybrid systems. Although these problems are very difficult to solve for general hybrid systems, several authors have identified classes of hybrid systems that admit symbolic or finite models. The novelty of the book lies on the systematic presentation of these classes of hybrid systems along with the relationships between the hybrid systems and the corresponding symbolic models. To show how the existence of symbolic models can be used for verification and controller synthesis, the book also outlines several key results for the verification and controller design of finite systems. Several examples illustrate the different methods and techniques discussed in the book.




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.




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.




Verification Handbook


Book Description




High-Level Verification


Book Description

Given the growing size and heterogeneity of Systems on Chip (SOC), the design process from initial specification to chip fabrication has become increasingly complex. This growing complexity provides incentive for designers to use high-level languages such as C, SystemC, and SystemVerilog for system-level design. While a major goal of these high-level languages is to enable verification at a higher level of abstraction, allowing early exploration of system-level designs, the focus so far for validation purposes has been on traditional testing techniques such as random testing and scenario-based testing. This book focuses on high-level verification, presenting a design methodology that relies upon advances in synthesis techniques as well as on incremental refinement of the design process. These refinements can be done manually or through elaboration tools. This book discusses verification of specific properties in designs written using high-level languages, as well as checking that the refined implementations are equivalent to their high-level specifications. The novelty of each of these techniques is that they use a combination of formal techniques to do scalable verification of system designs completely automatically. The verification techniques presented in this book include methods for verifying properties of high-level designs and methods for verifying that the translation from high-level design to a low-level Register Transfer Language (RTL) design preserves semantics. Used together, these techniques guarantee that properties verified in the high-level design are preserved through the translation to low-level RTL.