<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:contributor>Pezzè, Mauro</dc:contributor>
  <dc:creator>Perino, Nicolò</dc:creator>
  <dc:date>2014-01-30</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">Modern systems must guarantee high reliability, availability, and efficiency. Their  complexity, exacerbated by the dynamic integration with other systems, the use of third- party services and the various different environments where they run, challenges  development practices, tools and testing techniques. Testing cannot identify and remove  all possible faults, thus faulty conditions may escape verification and validation activities  and manifest themselves only after the system deployment. To cope with those failures,  researchers have proposed the concept of self-healing systems. Such systems have the  ability to examine their failures and to automatically take corrective actions. The idea is to  create software systems that can integrate the knowledge that is needed to compensate  for the effects of their imperfections. This knowledge is usually codified into the systems  in the form of redundancy. Redundancy can be deliberately added into the systems as  part of the design and the development process, as it occurs for many fault tolerance  techniques. Although this kind of redundancy is widely applied, especially for safety- critical systems, it is however generally expensive to be used for common use software  systems. We have some evidence that modern software systems are characterized by a  different type of redundancy, which is not deliberately introduced but is naturally present  due to the modern modular software design. We call it intrinsic redundancy. This thesis  proposes a way to use the intrinsic redundancy of software systems to increase their  reliability at a low cost. We first study the nature of the intrinsic redundancy to  demonstrate that it actually exists. We then propose a way to express and encode such  redundancy and an approach, Java Automatic Workaround, to exploit it automatically and  at runtime to avoid system failures. Fundamentally, the Java Automatic Workaround  approach replaces some failing operations with other alternative operations that are  semantically equivalent in terms of the expected results and in the developer’s intent, but  that they might have some syntactic difference that can ultimately overcome the failure.  We qualitatively discuss the reasons of the presence of the intrinsic redundancy and we  quantitatively study four large libraries to show that such redundancy is indeed a  characteristic of modern software systems. We then develop the approach into a  prototype and we evaluate it with four open source applications. Our studies show that  the approach effectively exploits the intrinsic redundancy in avoiding failures  automatically and at runtime.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://n2t.net/ark:/12658/srd1318527</dc:identifier>
  <dc:identifier>https://susi.usi.ch/global/documents/318527</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/318527/files/2014INFO005.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-113208</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1318527</dc:relation>
  <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
  <dc:rights>License undefined</dc:rights>
  <dc:subject xmlns:ns1="xml" ns1:lang="en">Self-Healing systems</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">Software reliability</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">Error handling and recovery</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns4="xml" ns4:lang="en">A self-healing framework for general software systems</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
