In software testing, it is often desirable to find test inputs that exercise specific program features. To find these inputs by hand is extremely time-consuming, especially whe...
Christoph C. Michael, Gary McGraw, Michael Schatz,...
Abstract: This paper describes some tools to support formal methods, and conversely some formal methods for developing such tools. We focus on distributed cooperative proving over ...
Joseph A. Goguen, Kai Lin, A. Mori, Grigore Rosu, ...
Given a program S and a precondition Q, the strongest postcondition, denoted sp(S Q), is defined as the strongest condition that holds after the execution of S, given that S term...
There are a number of competing component models in use today. Most are language-independent, but also platform-dependent and not designed to support a tool-based development para...
Partial evaluation is an optimization technique traditionally used in compilation. We have adapted this technique to the understanding of scientic application programs during t...
Proofs in the Nuprl system, an implementation of a constructive type theory, yield “correct-by-construction” programs. In this paper a new methodology is presented for extract...
Despite vast interest in design patterns, the specification and application of patterns is generally assumed to rely on manual implementation. We describe a precise method of spec...
Modern software systems are designed and implemented in a modular fashion by composing individual components. Early validation of individual module designs and implementations off...