scispace - formally typeset
Book ChapterDOI

Towards automatic exception safety verification

TLDR
In this article, the authors present a technique for verifying that exceptions are used in a safe way by integrating static analysis with model checking to visit all possible exception-raising execution paths.
Abstract
Many programming languages provide exceptions as a structured way for detecting and recovering from abnormal conditions. However, using exceptions properly is non-trivial. Programmers are often careless when handling exceptions, and exception related mistakes are common in software products. We present a technique for verifying that exceptions are used in a safe way. This technique integrates static analysis with model checking to visit all possible exception-raising execution paths. To demonstrate the potential utility of our approach, we applied it to two open source Java applications.

read more

Citations
More filters
Proceedings ArticleDOI

Interprocedural exception analysis for C

TL;DR: This paper presents an interprocedural exception analysis and transformation framework for C++ that captures the control-flow induced by exceptions and transforms it into an exception-free program that is amenable for precise static analysis.
Proceedings ArticleDOI

Verifying consistency between activity diagrams and their corresponding OCL contracts

TL;DR: This paper proposes a verification methodology which ensures the consistency between activity diagrams as blueprints for the implementation and their contracts from a block definition diagram that is transformed to OCL constraints that can be checked against pre- and postconditions.
Book ChapterDOI

Exhaustive testing of exception handlers with enforcer

TL;DR: The Enforcer tool identifies potential failures of the application with the environment and automatically tests all relevant outcomes of such actions, which combines the structure of unit tests with coverage information and fault injection.
Proceedings ArticleDOI

Model Checking Networked Programs in the Presence of Transmission Failures

TL;DR: This paper contributes a fault model for model checking networked programs, and finds several faults in existing applications, and scales well because exceptions generated by the tool can be checked individually.
Book ChapterDOI

Sound Control Flow Graph Extraction from Incomplete Java Bytecode Programs

TL;DR: This paper describes a technique for incremental, modular extraction of control flow graphs that are provably sound w.r.t.asequences of method invocations and exceptions, and its utility and efficiency are shown.
References
More filters
Book

The C++ Programming Language

TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
Journal ArticleDOI

Program Slicing

TL;DR: Program slicing as mentioned in this paper is a method for automatically decomposing programs by analyzing their data flow and control flow. But it is not a technique for finding statement-minimal slices, as it is in general unsolvable, but using data flow analysis is sufficient to find approximate slices.
Book

The Java Programming Language

TL;DR: The Java (TM)Programming Language, Second Edition, is the definitive resource for all serious Java programmers and lets you in on the rationale behind Java's design, direct from the language's creator, as well as the tradeoffs involved in using specific features.
Journal ArticleDOI

Model checking programs

TL;DR: 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.
Proceedings ArticleDOI

Extended static checking for Java

TL;DR: The Extended Static Checker for Java (ESC/Java) is introduced, an experimental compile-time program checker that finds common programming errors and provides programmers with a simple annotation language with which programmer design decisions can be expressed formally.