scispace - formally typeset
Journal ArticleDOI

Model checking programs

TLDR
A verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing, and uses state compression to handle big states and partial order and symmetry reduction, slicing, abstraction, and runtime analysis techniques to reduce the state space.
Abstract
The majority of the work carried out in the formal methods community throughout the last three decades has (for good reasons) been devoted to special languages designed to make it easier to experiment with mechanized formal methods such as theorem provers and model checkers. In this paper, we give arguments for why we believe it is time for the formal methods community to shift some of its attention towards the analysis of programs written in modern programming languages. In keeping with this philosophy, we have developed a verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing. Part of this work has consisted of building a new Java Virtual Machine that interprets Java bytecode. JPF uses state compression to handle large states, and partial order reduction, slicing, abstraction and run-time analysis techniques to reduce the state space. JPF has been applied to a real-time avionics operating system developed at Honeywell, illustrating an intricate error, and to a model of a spacecraft controller, illustrating the combination of abstraction, run-time analysis and slicing with model checking.

read more

Content maybe subject to copyright    Report

Citations
More filters
Proceedings ArticleDOI

SCORE: a scalable concolic testing tool for reliable embedded software

TL;DR: A Scalable COncolic testing tool for REliable embedded software (SCORE) that targets embedded C programs and the design decisions that are implemented in SCORE are described and the performance of SCORE is demonstrated through the experiments on the SIR benchmarks.

Automatic Proofs and Refutations for Higher-Order Logic

TL;DR: Nitpick is the development of Nitpick, a counterexample generator that builds on a first-order relational model finder that heuristically selects facts relevant to the conjecture to prove and delegates the problem to first- order resolution provers and SMT solvers.
Book ChapterDOI

Orion: high-precision methods for static error analysis of c and c++ programs

TL;DR: Orion as mentioned in this paper is a tool for finding common programming errors in C and C++ programs using static code analysis, where potential errors are identified by an efficient search based on a simple domain; each discovered error path is then scrutinized by a high-precision feasibility analysis aimed at filtering out as many false errors as possible.

Design for Verification: Using Design Patterns to Build Reliable Systems

TL;DR: The D4V hypothesis is that the same general architecture and design principles leading to good modularity, extensibility and complexity/functionality ratio can be adapted to overcome some of the limitations of conventional reliability assurance measures, such as too large a state space or too many execution paths.
Proceedings ArticleDOI

A classification of concurrency failures in Java components

TL;DR: A producer-consumer monitor is used to demonstrate how the approach can be used to measure coverage of concurrency primitives and thereby assist in determining test sequences for deterministic execution.
References
More filters
Journal ArticleDOI

Statecharts: A visual formalism for complex systems

TL;DR: It is intended to demonstrate here that statecharts counter many of the objections raised against conventional state diagrams, and thus appear to render specification by diagrams an attractive and plausible approach.
Book

The Unified Modeling Language User Guide

TL;DR: In The Unified Modeling Language User Guide, the original developers of the UML provide a tutorial to the core aspects of the language in a two-color format designed to facilitate learning.
Journal Article

An Axiomatic Basis for Computer Programming

Journal ArticleDOI

The model checker SPIN

TL;DR: An overview of the design and structure of the verifier, its theoretical foundation, and an overview of significant practical applications are given.
Book

The Z notation: a reference manual

TL;DR: Tutorial introduction background the Z language the mathematical tool-kit sequential systems syntax summary and how to use it to solve sequential systems problems.