Introduction to Self-healing Software

by Martin Monperrus

My group is inventing concepts and systems for achieving self-healing software. Here is a curated list of pointers to understand the field. –Martin

Self-healing software in a nutshell

A software system is said to be self-healing if it is capable to handle unexpected error conditions. The conditions refers to the inputs, the user interactions, the execution environments, etc. By unexpected, we mean that the error was never specified, tested or even imagined by the software engineers. "Self-healing" is also known as "runtime repair", "automatic recovery" or "automatic remediation".

How to learn about self-healing software?

For a winter school, I've written this introduction to automatic software repair, where Section 4 is about self-healing.

See also: Koopman's paper [2] and Keromytis' paper [1] for an excellent overview of the field, as well as Section 4 of my own survey [3].

[1] 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

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

[3] Martin Monperrus. Automatic Software Repair: a Bibliography. In « ACM Computing Surveys », 51, 2017, 1-24, https://hal.archives-ouvertes.fr/hal-01206501/file/survey-automatic-repair.pdf

Literature

2015:

2014:

2013:

2012:

2011:

20010:

2009:

2008:

2007:

2006:

2005:

2004:

2003:

2002:

Tagged as: