"Self-Healing": Softening Precision to
Avoid Brittleness

Author: Mary Shaw

Workshop on Self-Healing Systems (WOSS '02). Affiliated with the 10th International Symposium on the Foundations of Software Engineering (FSE-10), Charleston, South Carolina, November 2002.

Download the PDF version.    


Modern practical computing systems are much more complex than the simple programs on which we developed our models of dependability. These dependability models depend on precise specifications, but it is often impractical to obtain precise specifications of practical software-intensive systems.

Furthermore, the criteria for acceptable behavior vary from time to time and from one user to another. When development methods are based on the classic models that assume precise specifications, the resulting systems are often brittle -- they are vulnerable to unexpected conditions and hard to tune to changing expectations. Practical systems would be better served by development models that recognize the variability and unpredictability of the environment in which the systems are used. Such development methods should pursue not the absolute criterion of correctness, but rather the goal of fitness for the intended task, or sufficient correctness. They should accommodate environmental unpredictability not only by reactive mechanisms, but also by design the produces resilience to environmental change, or homeostasis. In many cases, this resilience may be achievable by relaxing tolerances in the specifications, thereby enlarging the envelope of acceptable operation.


Brought to you by Composable Software Systems Research Group in the School of Computer Science at Carnegie Mellon University.

[Last modified 1-OCT-02. Mail suggestions to the Maintainer.]