Automatic Workarounds: Exploiting the Intrinsic Redundancy of Software Systems

Staff - Faculty of Informatics

Start date: 1 July 2011

End date: 2 July 2011

You are cordially invited to attend the PhD Dissertation Defense of Alessandra GORLA on Friday, July 1st 2011 at 10h00 in room A33 (Red building)

Despite the best intentions, the competence, and the rigorous methods of designers and developers, software is often delivered and deployed with faults.  In order to cope with imperfect software, researchers have proposed the appealing notion of self-healing for software systems.  The ambitious goal is to create software systems capable of detecting and responding "autonomically" to functional failures so as to completely or at least partially compensate for those failures. In this dissertation we take a principled approach to the concept of self-healing software.  We believe that self-healing can only be an expression of some form of redundancy, meaning that, to automatically fix a faulty behavior, the correct behavior must be already present somewhere, in some form, within the software system.

One approach is to deliberately design and develop redundant systems, and in fact this kind of deliberate redundancy is the essential ingredient of many fault tolerance techniques.  However, this type of redundancy is also generally expensive and, as it turns out, not always effective.

Our intuition is that modern software systems naturally acquire another type of redundancy, which is not introduced deliberately but that rather occurs intrinsically as a by-product of modern modular software design. This thesis develops this intuition and researches ways to use intrinsic redundancy to achieve some level of self-healing.  We first demonstrate that software systems are indeed intrinsically redundant. Then we develop a way to express and exploit this redundancy to tolerate faults with a technique called Automatic Workarounds.  In essence, an Automatic Workaround amounts to replacing some failing operations with alternative operations that are semantically equivalent in their intended effect, but that ultimately avoid the failure.  We develop the notion of Automatic Workarounds in the context of Web applications, and in particular we implement a browser extension as a prototype to evaluate the ability of the technique to deal with several known issues of three popular Web libraries.  Our studies show that workarounds are frequently used by developers to address failures before a permanent fix is available, and a manual analysis of the workarounds that are publicly reported in issue trackers show that a large portion of them are instances of intrinsic redundancy, and are therefore easy to find automatically with our technique.  We prove the effectiveness of our technique by showing that it automatically finds a valid solution for most of the issues that we analyzed, and furthermore that it finds valid solutions for a large portion of the open issues for which no workaround was known.


Dissertation Committee:

  • Prof. Prof. Mauro Pezzè, Università della Svizzera italiana, Switzerland (Research Advisor)
  • Prof. Antonio Carzaniga, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Prof. Rogerio De Lemos, University of Kent, United Kingdom (External Member)
  • Prof. Paola Inverardi, University of L’Aquila, Italy (External Member)