Models and Reuse Engineering, Languages
The work of the MaREL team is part of the software engineering framework and focuses on the automation of the several steps of the software lifecycle, from design to maintenance through the compilation and optimization of the code, the modularization and reuse of programs, as well as their semantics and dependabilty. These topics cover the entire approach, from theoretical studies to full-scale experiments, including the development of languages, models, algorithms and demonstrators.
The activities of the MaREL team focus on two research themes :
- Model and program manipulation: model-driven engineering, component and object oriented languages, semantics and proof of programs.
- Development methodologies for and through reuse: new features of languages integrating extensible and composable entities (components), transformation of applications (objects to components or others), software product lines.
The team also has a number of transverse activities concerning the development of formalisms and methodologies whose scope of application goes beyond the field of software engineering (formal concept analysis and automated proof).
Hinde Bouziane, Maître de conférences, UM
Simon Robillard, Maître de conférences, UM
David Delahaye, Professeur des universités, UM
Philippe Reitz, Maître de conférences, UM
Clémentine Nebut, Maître de conférences, UM
Chouki Tibermacine, Maître de conférences, UM
Marianne Huchard, Professeur des universités, UM
Abdelhak Seriai, Maître de conférences, UM
Christophe Dony, Professeur des universités, UM
The team’s activity focuses on three axes:
- Model-Driven Engineering (MDE), by designing a novel formal method (Relational Concept Analysis, RCA), its experimentation on large-sized real-world data, and as a basis for learning model transformations;
- Reuse and Variability Engineering, by extracting components or product lines starting from object-oriented systems, through the use of adapted metrics and combinatorial optimization algorithms;
- Semantics and Implementation of Programming Languages, object-oriented or component-based ones: designing “pure” component-based languages, like Smalltalk is a “pure” object-oriented language, or for experimenting implementation techniques of object-oriented languages.
These three axes are at the same time well identified and tightly related. The concepts of “object” and “model” provide a common base, and components are studied from different points of view: programming languages, models, and their extraction from code. RCA is an object of study, in addition to being a formal basis for tool development.
- Industrial Partners:
- Acelys (2013 to date): Software development methodologies (model-driven engineering and variability)
- Berger-Levrault (2013 to date): Accessibility for Web pages for visually impaired persons, and Analysis of software traces
- Cortus (2009 to date): Efficient compilation for low-end embedded processors
- Pradeo (2013 to date): Static analysis for the security of mobile applications
- Academic Partners:
- University of Montréal: co-supervision of theses related to reuse and MDE
- Ecoles des Mines of Alès and Douai: co-supervision of theses in the domain of software components and MDE with application on home automation
- LORIA, Nancy and LATECE, UQAM, classification of Web services and PICS Project (RCA and ontologies)
- RMOD, INRIA Lille (and MAORE team), ANR Project Cutter (software re-modularization).