Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
SIGGRAPH '86 Proceedings of the 13th annual conference on Computer graphics and interactive techniques
On the Reliability of the IBM MVS/XA Operating System
IEEE Transactions on Software Engineering
Analysis of Faults in an N-Version Software Experiment
IEEE Transactions on Software Engineering
Deriving production rules for constraint maintenance
Proceedings of the sixteenth international conference on Very large databases
Automatic generation of production rules for integrity maintenance
ACM Transactions on Database Systems (TODS)
EEL: machine-independent executable editing
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
UFO: a personal global file system based on user-level extensions to the operating system
ACM Transactions on Computer Systems (TOCS)
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Role-based exploration of object-oriented programs
Proceedings of the 24th International Conference on Software Engineering
Constraint Analysis: A Design Process for Specifying Operations on Objects
IEEE Transactions on Knowledge and Data Engineering
Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
Automatic detection and repair of errors in data structures
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Hi-index | 0.00 |
We discuss a new approach to the construction of software systems. Instead of attempting to build a system that is as free of errors as possible, the designer instead identifies key properties that the execution must satisfy to be acceptable to its users. Together, these properties define the acceptability envelope of the system: the region that it must stay within to remain acceptable. 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 the ability to productively incorporate unreliable components into the final software system.