February 6 – 11 , 2011, Dagstuhl Seminar 11062
1 / 2 >
For support, please contact
- Schloss Dagstuhl: Selbst heilende Software
Wolfgang Back und Wolfgang Rudolph im Gespräch mit Prof. Andreas Zeller
Dagstuhl seminar 11062 ``Self-Repairing Programs'' included 23 participants and organizers from research and industrial communities. Self-Repairing Programs are a new and emerging area, and many participants reported that they initially felt their first research home to be in another area, such as testing, program synthesis, debugging, self-healing systems, or security. Over the course of the seminar, the participants found common ground in discussions of concerns, challenges, and the state of the art.
Recent years have seen considerable advances in automated debugging. Today, we have techniques that automatically determine problem causes – in the source code, in program input, in the change history, or in internal data structures. While these approaches make it considerably easier to find the causes of defects, their precision is still insufficient to suggest a single concrete course of action – a human in the loop is still required to design and apply the patch. At the same time, there is an ongoing need for self-healing systems – systems that can recover from failures and even reconfigure themselves such that the failure no longer occurs. Most research efforts in this direction, though, assume planned recovery – that is, well-defined recovery strategies for anticipated failures.
An alternative is to explore self-repairing systems from a generic perspective – that is, to develop techniques that repair systems that are as generic, unassuming, and non-intrusive as program analysis and debugging. The idea is to determine actual fixes to state, to configuration, or to code. These fixes can be seen as guidance for the developer on how to fix the problem and evolve the software. However, fixes can also be deployed automatically, and effectively lead to programs that fix themselves. Such techniques may be particularly useful for orphaned systems that are no longer maintained and critical software for which downtime is extremely expensive or even unacceptable. In these situations, there is no time to wait for a human developer to find and fix the bug. A synthesized patch can form a first line of defense against failures and attacks, a "first aid" buying time while more expensive or manual methods are deployed. At the same time, automatically generated fixes provide a much richer diagnostic quality then simple fault localization, and thus may dramatically reduce the time it takes to debug a problem.
Goals of the Seminar
This main goals of this seminar was to provide knowledge exchange, mutual inspiration, and opportunities for collaborations for a rapidly developing field. The seminar aimed to bring together researchers in dynamic program analysis, automated debugging, specification mining, software survival techniques, and autonomic computing to increase awareness of these issues and techniques across relevant disciplines (program analysis, debugging and self-adaptive systems), and to discuss:
- how to monitor systems to detect abnormal state and behavior
- how to generate fixes and how to choose the best fixes
- how to deploy them in real-life systems and how to deal with the issues that arise when automatically correcting errors in software systems
- Programming Languages/compiler
- Program analysis
- Automated debugging
- Automated fixing
- Specification mining
- Self-healing systems
- Self-adapting systems