Autonomous Self-healing Software Systems
Investigate, develop and evaluate data-driven techniques and prototypes that help software engineers build software systems that are autonomously self-healing. These are systems that can understand when they are not operating correctly and, without human intervention, make the necessary adjustments to restore themselves to normal operation.
Software failures can affect large groups of people and lead to massive financial damages. Despite significant investments in software testing, much of our software is still plagued by failures. One reason is that the existing techniques for software testing are mainly aimed at checking that the conditions corresponding to known or anticipated problems do not occur. However, the complexity of modern software makes it impossible to anticipate all issues that could be encountered.
We have several opportunities for exciting Master projects in the context of a large research project that aims to significantly increase the dependability, robustness, and resilience of today's software systems by addressing the faults that remain after thorough testing. We do this by developing new data-driven methods and techniques that help software engineers with the creation of so-called self-healing software systems. These are systems that can autonomously detect the occurrence of unanticipated faults during execution, diagnose their causes, and recover from these situations.
Data-driven software engineering aims to use the wealth of data produced during software development and operation to support its development, maintenance and evolution. Concretely, we apply machine learning and data mining techniques on software engineering data (such as source code, versioning histories, issue tracking, build & test logs, operational data) to derive actionable insights that in this case aim to make a system more secure by reducing security vulnerabilities.
Some of the topics related to this project are described in more detail elsewhere, but we are also keen to meet with interested students to discuss variations on these topics, or exciting new research directions, as long as they have some relation to the creation of self-healing software systems. If you want to propose your own direction, it is important that you carefully think about the research component of your proposal, and have a clear idea why your proposal is novel – it should advance the world's knowledge in data-driven software engineering!
Learning outcome
- application of data science in a software engineering context
- proficiency with implementing and evaluating data-driven software engineering techniques and prototypes
- gain appreciation for the state of the art in software resilience, self-healing systems, and associated solution strategies
- experience with working in an exciting and active research environment
- excellent opportunities to publish your research results in the form of a scientific publication
Qualifications
- interested in software engineering and software resilience
- interested in machine learning, in particular learning operational profiles and anomaly detection
- preferably knowledge of python, R and LaTeX
Supervisors
- Sehrish Malik
- Merve Astekin
- Leon Moonen