Keywords: Software evolution, Maintenance, Program visualization, Program understanding, Program analyses, Meta modelling, Software metrics, Quality models, Object-oriented programming, Testing, Anticipated reuse, Tooling, Refactorings, Code transformation, Traits, Reflective programming, Dynamically-typed languages, Dynamic Software Update, JIT, Virtual Machines, Debugging, Pharo, Moose.
The goal of RMoD is to support ever-running systems. This objective is tackled from complementary perspectives: reengineering of large systems, tools for every programming and infrastructure for dynamic reflective programming languages.
- Reverse Engineering & Software Evolution. In this objective we develop solutions (analyses, tools) to support the evolution and maintenance of large long-living industrial software (bank, army, automation...). Topics covered are metamodeling, software metrics, various code analyses, architecture extraction, software visualization, reverse engineering, program merging, and refactorings. Most of such work is done on top of the Moose analysis platform (http://www.moosetechnology.org and https://modularmoose.org).
Based on the results developed in this objective, the startup Synectique was created in 2013 - terminated in 2018. In 2021, a new startup CodAxis was created by G. Larcheveque and C. Ferlicot.
- Tools for Daily Development. Tools such as debuggers, refactorings or tests are central to development, this is why we are working on analyses and enhancements. We have also been working on improving software engineering practices of Smart Contracts.
- Language Infrastructure. Revisiting or designing new language features that support software evolution: in particular isolation, modular constructs such as Traits, dynamic software update, and Virtual Machines.
- Platforms and ecosystems. To support the two previous objectives, we need to be able to explore alternative ways to tackle the problems we want to solve. In this context, we develop Pharo (http://www.pharo.org) with an industrial consortium (http://consortium.pharo.org) that we created.
We are working with companies such as Worldline, Thales, Siemens, CIM, Berger-Levrault, Arolla, Lifeware, and Schmidt Buro.
Here are some our recent activity reports