Projekt

Zurück zur Übersicht

SHADE: a Self HeAling DEsign methodology

Titel Englisch SHADE: a Self HeAling DEsign methodology
Gesuchsteller/in Pezzè Mauro
Nummer 138006
Förderungsinstrument Projektförderung (Abt. I-III)
Forschungseinrichtung Facoltà di scienze informatiche Università della Svizzera italiana
Hochschule Università della Svizzera italiana – USI
Hauptdisziplin Informatik
Beginn/Ende 01.11.2011 - 31.08.2015
Bewilligter Betrag 207'513.00
Alle Daten anzeigen

Keywords (4)

Software engineering; Autonomic computing; Self-adaptive; Self-healing

Lay Summary (Englisch)

Lead
Lay summary
The goal of this project is to formulate a method to design and develop self-healing software systems.  We research fundamental design principles to build software systems capable of automatically detecting failures, diagnosing and repairing the corresponding faults, or otherwise sustaining their functionality in the presence of faults.
We propose to develop a general and principled design method by generalizing and harmonizing current self-healing techniques and systems, and we plan to support the use of such specifications to implement concrete self-healing procedures through a runtime infrastructure.
The overarching idea behind this project is that a software system can be self-healing to the extent that it somehow possesses some redundancy that can be exploited at runtime to prevent a failure, or to recover from a failure, or perhaps even to diagnose and fix the
fault that causes the failure.  
We propose to develop an infrastructure capable of implementing recovery procedures, finding and performing alternative actions, and ultimately realizing the self-healing capabilities of a software system.
Direktlink auf Lay Summary Letzte Aktualisierung: 21.02.2013

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Publikationen

Publikation
Automatic Workarounds: Exploiting the Intrinsic Redundancy of Web Applications
Carzaniga Antonio, Gorla Alessandra, Perino Nicolò, Pezzè Mauro (2015), Automatic Workarounds: Exploiting the Intrinsic Redundancy of Web Applications, in ACM Transactions on Software Engineering and Methodologies, 24(3), 16-16.
Intrinsic Software Redundancy for Self-healing Software Systems and Automated Oracle generation
Carzaniga Antonio, Goffi Alberto, Gorla Alessandra, Mattavelli Andrea, Perino Nicolò, Pezzè Mauro, Tonella Paolo (2015), Intrinsic Software Redundancy for Self-healing Software Systems and Automated Oracle generation, in Software Engineering and Management, GermanyGI, Dresden, Germany.
Introduction to the Special Issue on ISSTA 2013
HArman Mark and Pezzè Mauro (ed.) (2015), Introduction to the Special Issue on ISSTA 2013, AMC, New York.
Measuring Software Redundancy
Carzaniga Antonio, Mattavelli Andrea, Pezzè Mauro (2015), Measuring Software Redundancy, in Proceedings of the 37th International Conference on Software Engineering, IEEE, Piscataway, NJ, USA.
Synthesis of Equivalent Method Calls in Guava
Mattavelli Andrea, Goffi Alberto, Gorla Alessandra (2015), Synthesis of Equivalent Method Calls in Guava, in Proceedings of the 7th Symposium on Search-Based Software Engineering (SSBSE ’15), Springer, Germany.
Cross-checking Oracles from Intrinsic Software Redundancy
Carzaniga Antonio, Goffi Alberto, Gorla Alessandra, Mattavelli Andrea, Pezzè Mauro (2014), Cross-checking Oracles from Intrinsic Software Redundancy, in Proceedings of the 36th International Conference on Software Engineering, ACM, New York, NY, USA.
Introduction to the Special Issue International Conference on Software Engineering
New York NY USA (ed.) (2014), Introduction to the Special Issue International Conference on Software Engineering, ACM, New York.
Search-Based Synthesis of Equivalent Method Sequences
Goffi Alberto, Gorla Alessandra, Mattavelli Andrea, Pezzè Mauro, Tonella Paolo (2014), Search-Based Synthesis of Equivalent Method Sequences, in Proceedings of the 22nd International Symposium on the Foundations of Software Engineering , ACM, New York, NY, USA.
Understanding the Redundancy of Software Systems
Mattavelli Andrea (2014), Understanding the Redundancy of Software Systems, in Proceedings of the 36th International Conference on Software Engineering, ACM, New York, NY, USA.
International Symposium on Software Testing and Analysis, ISSTA 2013, July 15-20, 2013, Lugano, Switzerland
Pezzè Mauro (ed.) (2013), International Symposium on Software Testing and Analysis, ISSTA 2013, July 15-20, 2013, Lugano, Switzerland, ACM, New York.
34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland
Glinz Martin (ed.) (2012), 34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland, IEEE, New York.
A self-healing technique for Java applications
Carzaniga Antonio, Gorla Alessandra, Mattavelli Andrea, Perino Nicolò (2012), A self-healing technique for Java applications, in 34nd ACM/IEEE International Conference on Software Engineering, Zurich, SwitzerlandIEEE Press, Piscataway, NJ, USA.
From off-Line to continuous on-line maintenance
Pezzè Mauro (2012), From off-Line to continuous on-line maintenance, IEEE, New york.
Self-Repairing Programs (Dagstuhl Seminar 11062)
Pezzè Mauro, Rinard Martin C., Weimer Westley, Zeller Andreas (2011), Self-Repairing Programs (Dagstuhl Seminar 11062), Dagstuhl Reports, Dagstuhl.
Automatic Recovery from Runtime Failures
Carzaniga Antonio, Gorla Alessandra, Mattavelli Andrea, Perino Nicolò, Pezzè Mauro, Automatic Recovery from Runtime Failures, in 35th International Conference on Software Engineering, San Francisco, California, USAIEEE Press, Piscataway, NJ, USA.

Zusammenarbeit

Gruppe / Person Land
Formen der Zusammenarbeit
Università di Milano Bicocca Italien (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Austausch von Mitarbeitern
Universität des Saarlandes Deutschland (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Austausch von Mitarbeitern

Wissenschaftliche Veranstaltungen

Aktiver Beitrag

Titel Art des Beitrags Titel des Artikels oder Beitrages Datum Ort Beteiligte Personen
10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering Vortrag im Rahmen einer Tagung Synthesis of Equivalent Method Calls in Guava 01.09.2015 Bergamo, Italien Mattavelli Andrea; Pezzè Mauro; Carzaniga Antonio;
37th International Conference on Software Engineering Vortrag im Rahmen einer Tagung Measuring Software Redundancy 18.05.2015 Firenze, Italien Carzaniga Antonio; Pezzè Mauro; Mattavelli Andrea;
Multiconference on Software Engineering and Software Management Vortrag im Rahmen einer Tagung Intrinsic Software Redundancy for Self-healing Software Systems and Automated Oracle generation 23.03.2015 Dresda, Deutschland Mattavelli Andrea;
The ISSTA 2015 Program Committee Workshop Vortrag im Rahmen einer Tagung Software redundancy, self healing systems and testing oracles 09.02.2015 Eugene, Vereinigte Staaten von Amerika Pezzè Mauro;
ACM SIGSOFT Symposium on Foundations of Software Engineering Vortrag im Rahmen einer Tagung Search-Based Synthesis of Equivalent Method Sequences 17.11.2014 Hong Kong, Hongkong Mattavelli Andrea; Carzaniga Antonio; Pezzè Mauro;
6th International Symposium on Search-Based Software Engineering Vortrag im Rahmen einer Tagung Intrinsic Software Redundancy: Applications and Challenges 25.08.2014 Fortaleza, Brasilien Pezzè Mauro;
International Symposium on Software Testing and Analysis Vortrag im Rahmen einer Tagung Link: exploiting the web of data to generate test inputs. 21.07.2014 San Josè, Vereinigte Staaten von Amerika Pezzè Mauro;
36th International Conference on Software Engineering Vortrag im Rahmen einer Tagung Cross-checking Oracles from Intrinsic Software Redundancy 19.05.2014 Hyderabad, Indien Pezzè Mauro; Mattavelli Andrea; Carzaniga Antonio;
29th CREST open workshop on software redundancy Einzelvortrag Automatically generated oracles 11.11.2013 London, Grossbritannien und Nordirland Mattavelli Andrea;
2013 International Symposium on Software Testing and Analysis Einzelvortrag General chair 22.07.2013 Lugano, Schweiz Mattavelli Andrea; Pezzè Mauro; Carzaniga Antonio;
13th International Conference on Quality Software Vortrag im Rahmen einer Tagung Kenote 15.07.2013 Nanjing, China Pezzè Mauro;
35th International Conference on Software Engineering Vortrag im Rahmen einer Tagung Automatic Recovery from Runtime Failures 20.05.2013 San Francisco, Vereinigte Staaten von Amerika Carzaniga Antonio; Mattavelli Andrea; Pezzè Mauro;
ICSM'12: International Conference on Software Maintanance Vortrag im Rahmen einer Tagung From off-Line to continuous on-line maintenance 23.09.2012 Riva del Garda, Italy, Italien Pezzè Mauro;
Laser summer school Vortrag im Rahmen einer Tagung Software Testing and Analysis 01.09.2012 Elba, Italy, Italien Pezzè Mauro;
ICSE'12: 34th International Conference on Software Engineering Einzelvortrag Welcome from the chairs 04.06.2012 Zurich, Switzerland, Schweiz Pezzè Mauro;
The 20th CREST Open Workshop: The Oracle Problem for Automated Software Testing Vortrag im Rahmen einer Tagung Automatic generation of efficient oracles 21.05.2012 London, UK, Grossbritannien und Nordirland Pezzè Mauro;
Mysore Park Workshop on The Future of Debugging Vortrag im Rahmen einer Tagung automatic debugging 28.02.2012 Mysore, India, Indien Pezzè Mauro;


Verbundene Projekte

Nummer Titel Start Förderungsinstrument
124918 WASH: WorkArounds for Self-Healing 01.04.2009 Projektförderung (Abt. I-III)
146607 ReSpec: Characterizing and Using the Intrinsic Redundancy of Software 01.05.2013 Projektförderung (Abt. I-III)

Abstract

This project aims to define a new approach to design and develop self-healing enabled software systems. The approach will provide first class design elements to build software systems that can automatically detect failures, and diagnose and repair the corresponding faults or bugs.While the current research on self-healing systems and, more generally, on self-managed and autonomic systems investigate specific self-healing and self-managed mechanisms to address particular classes of faults and problems, this project focuses on the definition of a general set of design principles and methods, and an enabling infrastructure. Current research in self-healing and autonomic systems gives evidence of the possibility of augmenting software systems with self-healing mechanisms, and provides important enabling data for this project. Many advances in software design and verification in the last decades, like for example structured programming in the seventies and object oriented design in the eighties, sprang from embedding best-practice principles, like locality, divide and conquer, encapsulation and information hiding, into design methodologies supported by enabling infrastructures expressed as programming language construct and virtual machine runtime support. Similarly, this project aims to move one step forward towards a general methodology for designing self-healing systems by generalizing current approaches for designing self-healing systems into general principles, embedding the principles into design methodologies, and defining supporting infrastructures.This project focuses on design principles that will be the foundation of future infrastructure and methods. Design principles capture the essence of the design approach and are essential to the new methodology. A full set of well-defined and motivated principles underlying a self-healing design methodology will be the main results of this project that will start the investigation from some initial ideas that include: flexibility in input and rigorous conformance in output, documented input flexibility, management interface testing and probing interface, documented reconfiguration or evading and recovery actions, documented stateful performance and resource-usage model, documented properties of the component itself. The design infrastructure is equivalent to the JVM for Java programs, and provides the runtime required to enact self-healing-enabling mechanisms. A preliminary architecture and prototype of a design infrastructure as well as an initial set of self-healing-enabling mechanisms will be also an important result of this project, and will enable to definition of a full scale design methodology. We will start from a set of ideas that we derived from our investigation of problems and state of art ad-hoc mechanisms and that includes transactional memory to support the restoring of a coherent state after revealing a failure or an aborted attempt to apply a recovery action, runtime and preemptive analysis to collect data about the program execution that can support failure analysis and fault diagnosis either continuously during the program execution or on demand as a response to particular failing or recovery conditions. Like object oriented design principles and runtime mechanisms call for a proper methodology to design well-formed object oriented programs, similarly, design principles and runtime mechanisms for self-healing systems call for a proper methodology to design well-formed self-healing systems.In a nutshell, this project aims to address the following challenges: (1) identify the information and create a suitable exchange format to integrate self-healing techniques that work at different phases of the self-healing cycle, (2) design approaches to identify the techniques that best integrate at different phases to address a system failure while avoiding unexpected interferences among self-healing techniques, (3) improve individual self-healing techniques by providing underlying technologies that broaden the scope of their applicability or that enhance the effectiveness of one or several techniques, (4) define new techniques to address open problems in the self-healing cycle, (5) move techniques and approaches at the infrastructure level to create a general framework for designing self-healing systems and enabling reusability of approaches across application domains.
-