Journal ArticleDOI
Model checking programs
Willem Visser,Klaus Havelund,Guillaume Brat,Seungjoon Park +3 more
- Vol. 10, Iss: 2, pp 203-232
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
Citations
More filters
Proceedings ArticleDOI
SCORE: a scalable concolic testing tool for reliable embedded software
Yunho Kim,Moonzoo Kim +1 more
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
Dennis R. Dams,Kedar S. Namjoshi +1 more
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
Brad Long,Paul Strooper +1 more
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 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.