The ASTOOT approach to testing object-oriented programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Executable object modeling with statecharts
Proceedings of the 18th international conference on Software engineering
Software fault tolerance techniques and implementation
Software fault tolerance techniques and implementation
A Tool for Writing and Debugging Algebraic Specifications
Proceedings of the 26th International Conference on Software Engineering
Manipulating managed execution runtimes to support self-healing systems
DEAS '05 Proceedings of the 2005 workshop on Design and evolution of autonomic application software
Towards specification, modelling and analysis of fault tolerance in self managed systems
Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems
Adding Self-Healing Capabilities into Legacy Object Oriented Application
ICAS '06 Proceedings of the International Conference on Autonomic and Autonomous Systems
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Transformation of Existing Programs into Autonomic and Self-healing Entities
ECBS '07 Proceedings of the 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems
Towards Self-Protecting Enterprise Applications
ISSRE '07 Proceedings of the The 18th IEEE International Symposium on Software Reliability
Architectural mismatch tolerance
Architecting dependable systems
Automatic workarounds as failure recoveries
Proceedings of the 2008 Foundations of Software Engineering Doctoral Symposium
In-field healing of integration problems with COTS components
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatic workarounds for web applications
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Using feature locality: can we leverage history to avoid failures during reconfiguration?
Proceedings of the 8th workshop on Assurances for self-adaptive systems
Hi-index | 0.02 |
We propose to use automatic workarounds to achieve self-healing in software systems. We observe that software systems of significant complexity, especially those made of components, are often redundant, in the sense that the same functionality and the same state-transition can be obtained through multiple sequences of operations. This redundancy is the basis to construct effective workarounds for component failures. In particular, we assume that failures can be detected and intercepted together with a trace of the operations that lead to the failure. Given the failing sequence, the system autonomically executes one or more alternative sequences that are known to have an equivalent behavior. We argue that such workarounds can be derived with reasonable effort from many forms of specifications, that they can be effectively prioritized either statically or dynamically, and that they can be deployed at run time in a completely automated way, and therefore that they amount to a valid self-healing mechanism. We develop this notion of self-healing by detailing a method to represent, derive, and deploy workarounds. We validate our method in two case studies.