Meta-Modelling the Details

Research Team:
Team leader (HDR):
Stéphane Ducasse
Project leader:
Nicolas Anquetil
Project Context :
Metamodelling was created to allow reasonning on programs at a higher level of abstraction than what current programming languages allow. The idea is that one defines a high level model of a solution, describes how to transform this solution into a program for a given language and then automatically generates the source code. Ideally the same kind of approach allows to take an existing program, automatically extract an abstract model from it, manually extend or improve the model and regenerate a new program, possibly in a new programming language (round-trip engineering). This approach would be very interesting for organizations that have programs in old technologies (e.g. Cobol) and want to migrate them towards more modern ones (e.g. Java). RMod team already has tools that can take programs (written in C, Java, Smalltalk, etc.) as input and produce metamodels as output [Bhatti et al., 2012], [Ducasse et al., 2005].
Problem :
However, the Devil is in the details, in this case, for reverse engineering an existing program to be able to regenerate it afterward, one needs to keep many details on that program. This, of course, is not compatible with the idea of abstracting a model of this program. One needs therefore to be able to create an abstract model of a program but, at the same time, to create a very detailed model of the same program so as to be able to work at two levels of abstraction at the same time.
Work plan:
Extend the RMod tools and metamodel so as to be able to create a detailed model of a program when needed. This will imply:
  • defining hooks in the existing abstract metamodel to be able to attach to it a detailed model of a program.
  • specifying what would be a detailed model for a given language (e.g. Smalltalk or Java)
  • modifying the existing tools of the RMod team to be able to extract the detailed modelization of a program in the given language.
Working environment:
RMod team is a prolific research group with a strong integration. We have members from many countries around the world (Argentina, Brazil, Equador, Grece, Pakistan, Ukrania) and regular exchanges with partners from yet more countries (Chile, Italy, Netherland, Switzerland). At work and out of it, we try to have fun together and take care of our members.
  • M.U. Bhatti, N. Anquetil, S Ducasse, "An Environment for dedicated Software Analysis tools", in ERCIM News, v.88, pp. 12—13, 2012
  • S. Ducasse, T. Girba, M. Lanza, S. Demeyer, "Moose: a collaborative and extensible reengineering environment", Tools for Software Maintenance and Reengineering, RCOST/Software Technology Series, pp. 55-71, 2005