Software Verification and Analysis


Book Description

“The situation is good, but not hopeless” (Polish folk wisdom) The text is devoted to the Software Analysis and Testing (SAT) methods and s- porting tools for assessing and, if possible, improving software quality, specifically its correctness. The term quality assurance is avoided for it is this author’s firm belief that in the current state of the art that goal is unattainable, a plethora of “gu- anteed” solutions to the problem notwithstanding. Therefore, the rather awkward phrase “improving correctness” is to be understood as an effort to minimize the number of residual programming faults (“bugs”) and their impact on the software’s behavior, that is, to make the faults tolerable. It is clear that such a minimalist approach is a result of frustration. Indeed, having spent years developing software and teaching (preaching?) “How to do it right,” I still do not know how to go about it with any degree of certainty! It appears then I probably should stop right now, for who with a modicum of common sense would reach for a text that does not offer salvation but (as will be seen) hard work and misery? If I intend to continue, it is only that I suspect there are many professionals out there who have similar doubts. And they are the intended audience of this project. The philosophical underpinning of the text is the importance of sound engine- ing practices in software development.




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




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.




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.




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 Methodology Manual for SystemVerilog


Book Description

Offers users the first resource guide that combines both the methodology and basics of SystemVerilog Addresses how all these pieces fit together and how they should be used to verify complex chips rapidly and thoroughly. Unique in its broad coverage of SystemVerilog, advanced functional verification, and the combination of the two.




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.




Open Verification Methodology Cookbook


Book Description

Functional verification is an art as much as a science. It requires not only creativity and cunning, but also a clear methodology to approach the problem. The Open Verification Methodology (OVM) is a leading-edge methodology for verifying designs at multiple levels of abstraction. It brings together ideas from electrical, systems, and software engineering to provide a complete methodology for verifying large scale System-on-Chip (SoC) designs. OVM defines an approach for developing testbench architectures so they are modular, configurable, and reusable. This book is designed to help both novice and experienced verification engineers master the OVM through extensive examples. It describes basic verification principles and explains the essentials of transaction-level modeling (TLM). It leads readers from a simple connection of a producer and a consumer through complete self-checking testbenches. It explains construction techniques for building configurable, reusable testbench components and how to use TLM to communicate between them. Elements such as agents and sequences are explained in detail.




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.




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