What is self-healing software?

by Martin Monperrus

What is self-healing software? "Self-healing software provides automatic responses to faults of a given fault model in a certain design context" [4].

I recommend Koopman's paper [4] and Keromytis' paper [3] for an excellent overview of the field. Shaw's approach on sufficient correctness is also very interesting [6].

What is the corresponding research area?

The concept of self-healing software systems has been introduced as part of the research on autonomic computing [2]. Many papers were published in 2000 - 2005 on this topic.

It is somewhat accepted that the concepts of self-healing and fault tolerance are very close [1]. Other related terms are “self-repairing” systems, “survivable” systems and “recovery-oriented computing” [5].


[1] Rogério de Lemos. ICSE 2003 WADS Panel: Fault Tolerance and Self-Healing. 2003.

[2] J. Kephart, D. Chess. The Vision of Autonomic Computing. In « IEEE Computer », 1, 36, January, 2003, 41-50.

[3] Angelos D Keromytis. Characterizing self-healing software systems. In « Fourth International Conference on Mathematical Methods, Models, and Architectures for Computer Network Security », 22–33, 2007, http://www.cs.columbia.edu/~angelos/Papers/2007/mmm-acns-self.pdf

[4] Philip Koopman. Elements of the self-healing system problem space. 2003, http://repository.cmu.edu/cgi/viewcontent.cgi?article=1679&context=isr

[5] David Patterson, Aaron Brown, Pete Broadwell, George Candea, Mike Chen, James Cutler, Patricia Enriquez, Armando Fox, Emre Kiciman, Matthew Merzbacher. Recovery-oriented computing (ROC): Motivation, definition, techniques, and case studies. Technical report, UCB//CSD-02-1175, UC Berkeley, 2002.

[6] Mary Shaw. Sufficient Correctness and Homeostasis in Open Resource Coalitions. In « Proc. Int'l Software Architecture Workshop », 2000.

Tagged as: