Reflective Evolution of Ever-running Software Systems
Reflective Evolution of Ever-running Software Systems

The objectives of Evref are to study and support the continuous evolution of large software systems in a holistic manner following three main axes: (1) analyses and approaches for migration and evolution of existing (legacy) systems, (2) new tools to support daily evolution, and (3) infrastructure to build language runtimes to support software evolution, new tools, frugal systems, and security language features. In the context of the first axis, Evref proposes a specific research agenda with Berger-Levrault R&D.

Evolving large software systems is a challenge. Decades of academic research have somehow produced tools and platforms that help companies to maintain their systems. But keeping legacy systems active and relevant is still a really complex task [TV00]. An aggravating challenge is that some of these systems can never stop (production lines, wafer production systems, auction managers, etc) and need to be updated while running at production sites. In addition, because the production environment is not the same as the development environment, the only way to spot and fix a bug is often by directly accessing software in production, while running.

Supporting the evolution of such ever-running systems is an important challenge for our industry because it must deal with more and more changing requirements and the need for dynamic adaptation. To address this challenge Evref will work on (1) analyses and approaches based on language-specific metamodels and their accompanying processes such as test generation, semi-automated migration, or business rule identification; (2) new generation debuggers, profilers, and tools for reverse engineering — we will tackle new areas such as the support for non-functional requirements (robustness, memory consumption, ...) —, (3) language and runtime infrastructure to support evolution, green computing, security, and tooling as a step towards self-evolvable runtimes. Evref approach is reflective in the sense that controlling the underlying execution engine it will explore different facets of evolution and tooling. From that perspective its sum will be more than its parts. A specific research agenda with Berger-Levrault will take place in the context of the first point.

Centre(s) inria
Inria Centre at the University of Lille
In partnership with
Université de Lille,Berger-Levrault


Team leader

Aurore Dalle

Team assistant