Onward!

Acceptability-Oriented Computing

Wednesday, 29 October – 10:30-12:00

These papers talk about a new approach to constructing software systems in which the designer identifies key properties that the execution must satisfy to be acceptable to its users. The resulting system consists of layers of components enforcing the acceptability properties.

Acceptability-Oriented Computing

Martin Rinard, MIT, rinard@lcs.mit.edu

We propose a new approach to the construction of software systems. Instead of attempting to build a system that is as free of errors as possible, we instead propose that the designer identify key properties that the execution must satisfy to be acceptable to its users. The developer then augments the system with a layered set of components, each of which enforces one of the acceptability properties. The potential advantages of this approach include more flexible, resilient systems that recover from errors and behave acceptably across a wide range of operating environments, an appropriately prioritized investment of engineering resources, and reduced development costs because of the ability to productively incorporate unreliable components into the final software system and to use less skilled implementors in the development process.

Automatic Detection and Repair of Errors in Data Structures

Brian Demsky, MIT, demsky@lcs.mit.edu
Martin Rinard, MIT, rinard@lcs.mit.edu

We present a system that accepts a specification of key data structure constraints, then dynamically detects and repairs violations of these constraints, enabling the program to continue to execute productively even in the face of otherwise crippling errors. Our experience using our system indicates that the specifications are relatively easy to develop once one understands the data structures. Furthermore, for our set of benchmark applications, our system can effectively repair errors to deliver consistent data structures that allow the program to continue to operate successfully within its designed operating envelope.