This Ph.D. thesis on model-based approaches was partially realized in MegaM@Rt2. For more details, the full manuscript is available from here and the corresponding defense slides are visible from here. Notably, this research work resulted in various scientific publications in MegaM@Rt2, see our previous post on our survey of existing model view approaches or our previous post on scalable model views on heterogeneous model resources.
Nowadays, companies undertake more and more software migration and/or modernization projects. This happens for different reasons (economical, business-related, organizational, technical, legal, etc.). Anyway, these companies all face the problem of managing, maintaining, evolving or replacing their existing software systems. Reverse Engineering is the first phase of any project of this kind. It is the complex process of obtaining various representations of an existing system, in order to provide a better comprehension of its purpose and state.
Model Driven Engineering (MDE) / Modeling is a software engineering paradigm relying on intensive model creation, manipulation and use. These models describe different complementary aspects of the modeled systems and related engineering activities. Thus, models are first-class entities in design, development, deployment, integration, maintenance and evolution tasks.
Problem & Challenges
Model Driven Reverse Engineering (MDRE) is about enhancing more traditional reverse engineering processes. MDRE is the application of MDE in the context of reverse engineering activities. Indeed, the objective is to obtain models representing an existing system according to various aspects. Then, it is possible to further comprehend this system via coherent views federating these different models.
However, existing MDRE and model view/federation solutions have limits as they quite often rely on custom or case-specific integrations of different tools. Moreover, they are sometimes (very) heterogeneous which may hinder their practical deployments and usages. Generic and extensible solutions are still missing or incomplete for MDRE to be combined with advanced model view/federation capabilities.
In this thesis, we propose to rely on two complementary model-based approaches:
- A generic and extensible approach (MoDisco) intending to facilitate the elaboration of MDRE solutions in many different contexts. Notably, it allows obtaining different kinds of models from existing systems and the various artifacts composing them (e.g. source code, data).
- A generic and extensible approach (EMF Views) intending to specify, build and manipulate views federating different existing models (e.g. the ones resulting from our MDRE approach). Such views are relevant to different kinds of stakeholders (e.g. software engineers/architects, decision-makers) according to comprehension objectives.
Tools, Results and Impact
The corresponding implementations are open source and rely on the Eclipse-EMF de-facto standard modeling framework. We designed, developed and evaluated them within collaborative projects, including MegaM@Rt2. Notably, the provided model-based tools include EMF Views which is also part of the MegaM@Rt2 Toolbox.
I am an engineer doing research and managing innovative projects on software engineering for the NaoMod team (formerly AtlanMod team) with particular focuses on 1) the design and application/adaptation of model-based techniques and architectures to real industrial problems (reverse engineering, tool/language interoperability and evolution, model management and traceability, Cloud Computing, etc.) and 2) the dissemination and/or industrialization of corresponding research results and prototypes (e.g. knowledge and technology transfer to companies).