EclipseCon 2007 March 5-8, Santa Clara California

Reverse Engineering in Eclipse with the MoDisco project

Jean Bezivin (INRIA & University of Nantes), Mikaël Barbero (ATLAS Group (INRIA & LINA)), Hugo Bruneliere (ATLAS Group (INRIA & LINA)), Jeff Gray (UAB CIS), Frédéric Jouault (ATLAS Group (INRIA & LINA) & UAB CIS)

· Short Talk

Wednesday, 15:50, 10 minutes | Ballroom GHAB


Hugo Bruneliere

Jeff Gray

Frédéric Jouault

Reverse Engineering in Eclipse with the MoDisco project

Mikaël Barbero(2), Jean Bézivin(2), Hugo Brunelière (2), Jeff Gray(1), Frédéric Jouault(1), (2)

(1)UAB, University of Alabama at Birmingham, USA
(2)ATLAS Group, INRIA & LINA, University of Nantes, France

A short talk proposal for the EclipseCon'2007 Conference

This talk describes the goals and early achievements of the new MoDisco component in the Eclipse Modeling Project (EMP/GMT). MoDisco stands for Model Discovery and focuses on defining the basic tools to move real-life unstructured and heterogeneous data to the homogeneous technical space of model engineering where a number of regular operators like model transformation may be systematically applied. MoDisco is initially supported by the new ModelPlex European FP6 Integrated project. When applicable, the project uses related OMG software modernization standards like KDM and ASTM.
Reverse engineering is classically defined as the process of analyzing a subject system with the double goal of (1) identifying the system's components and their interrelationships, and (2) of creating representations of the system in another form or at a higher level of abstraction. As part of the Eclipse Modeling Project, MoDisco provides the tools and methods to create multiple representations of legacy systems as full fledged EMF models, as expressed in XMI. The objective of this talk is to show how to use MoDisco to create discoverers, which are executable programs that analyze input data and produce models conforming to precise metamodels. The central principle in MoDisco is that the generation of discoverers is always completely metamodel driven. This allows to propose general guidelines and to provide generic support tools. From a given system (e.g., a COBOL, PL/1 or Java program, a Unix System, or the Eclipse framework itself), it is often possible to extract static architectural models or dynamic execution trace models. We use notations (expressed in either KM3, Ecore, or Emfatic) to base the discovery process on these precisely defined metamodels. The talk will define a generic model discovery process and introduce some common tools. Throughout the presentation, a number of use cases will be presented to illustrate the MoDisco approach. These use cases will offer real-life concrete and practical examples of reverse engineering operations that could be practically applied. The talk will discuss some of these examples in detail and briefly mention several others that will be contributed by the MoDisco user community.

After defining a common reverse engineering process and a set of standard support tools, the variety of legacy system discovery operations is quite high. To delimit the application areas, a classification of legacy systems will be presented. For example, some systems are syntactical and may be described by a grammar. In such cases, the discovery involves the study of the relations between the grammar of the legacy system and the metamodel of the target model. Many tools may be found in other Eclipse projects to handle this situation. In other cases, legacy systems may have a completely different nature (e.g. database oriented, Web oriented) and different solutions may have to be elaborated and supported by other existing Eclipse projects.

To summarize, the MoDisco project intends to help cross the boundary between real legacy applications and EMF models. Due to the heterogeneous nature of the artifacts comprising these applications (e.g., code as data, semi-structured data, database sources, tool proprietary data), the various contributions will take different forms, but all parts of the project will follow the same metamodel driven methodological approach and use a common set of Eclipse provided tools. The talk will give several concrete examples of model discovery and will also show how the resulting models may be processed at later stages by standard EMP tools to provide real value to the end-user (e.g., verification, measure, comparison, regeneration).

Jean Bezivin is professor of Computer Science at the University of Nantes, France. He got his Master degree from the University of Grenoble and Ph.D. from the University of Rennes. Since 1980 he has been very active in Europe in the object-oriented community, starting the ECOOP series of conference (with Pierre Cointe), the TOOLS series of conferences (with Bertrand Meyer), and more recently the MoDELS/UML series of conferences (with Pierre-Alain Muller). He founded in 1979, at the University of Nantes, one of the first Master programs in Software Engineering entirely devoted to Object Technology (Data Bases, Concurrency, Languages and Programming, Analysis and Design, etc.). His present research interests include model engineering and more especially the techniques of model transformation applied to data engineering and to software forward and reverse engineering. He is a member and deputy-lead of the ATLAS group, a new INRIA team created at the University of Nantes in relation with the LINA CNRS Lab. He has published many papers and organized tutorials and workshops in the domains of concurrency, simulation, object-oriented programming, and model-driven engineering. On the subjects of model-driven engineering and MDA(tm), he has recently been leading the OFTA industrial group in France, co-animating a CNRS specific action and the Dagstuhl seminar 04101. He is a member of the ECOOP and UML steering committees. He was co-chair of the ECOOP'2006 conference organized in Nantes. He is a member of the Eclipse modeling project PMC and lead of the GMT subproject.

Mikaël Barbero is a PhD candidate in Computer Science at the University of Nantes, France. He got his Master degree from the University of Nantes and an Engineer degree from the Polytech Nantes engineering school in 2006. His work is focused on Model Driven Engineering. Currently, he is working in Model Driven Reverse Engineering field (MDRE), especially Global Model Management (GMM) principles and Domain Specific Languages (DSLs) definition framework. These works are partially supported by MODELPLEX (MODELling solution for comPLEX software systems), IST European project 34081 and FLFS (Families of Languages for Families of Systems), a french ANR research project. As part of his research work, he is also an Eclipse commiter for the GMT Modeling project.

Hugo Bruneliere is an R&D engineer working in the field of Model Driven Engineering (MDE) for the ATLAS Group (INRIA and LINA). He got his Master degree from the University of Nantes in 2006. Before, he already made two internships in the ATLAS Group (for a total of 7 months), focusing his work on model transformations, metamodels definitions and global model management. Currently, he's working as an engineer on the MODELPLEX (MODELling solution for comPLEX software systems) IST european project 34081 in which the ATLAS Group is involved. His work on this project is focused on the concrete use of Model-Driven Engineering (MDE) for model discovery (model-driven reverse-engineering) and global model management (or GMM). Thus, he is an Eclipse committer on the Eclipse/Modeling/GMT project, and more particularly on the MoDisco (Model Discovery) and AM3 (ATLAS MegaModel Management) components.

Jeff Gray is an Assistant Professor in the Department of Computer and Information Sciences at the University of Alabama at Birmingham (UAB). He received the Ph.D. in May 2002 from the Electrical Engineering and computer Science department at Vanderbilt University, where he also served as a research assistant at ISIS from 1999-2002. His research is currently supported by NSF, with past support from DARPA and an Eclipse Innovation GRant. His research interests include model-driven engineering, generative programming, aspect-oriented software development, and speech-enabled development environments. Jeff currently serves as the chair of the Alabama IEEE Computer Society. More information about his research and publications can be found at

Frédéric Jouault is starting a postdoc at the University of Alabama at Birmingham. He received his Ph.D. degree in Computer Science from the University of Nantes in 2006. His current research interests involve model engineering, model transformation, and their application to Domain-Specific Languages (DSLs) and model-based legacy reverse engineering. Frédéric created ATL (ATLAS Transformation Language), a QVT-like DSL for model transformation. He is now leading the development of ATL language and toolkit. With his thesis advisor, Jean Bézivin, he defined AMMA (ATLAS Model Management Architecture), a platform for model management.

Floor Plan

Gold sponsors

Ingres logo

BEA logo

IBM logo

Business Objects logo

Klocwork logo

Windriver logo

Red Hat logo

Actuate logo

Silver sponsors

Compuware logo

Sybase logo

Google logo






Code Gear




Innoopract logo

Lynux Works

Media sponsors

Eclipse Magazine logo logo

Methods and Tools logo

Eclipsezone logo

Addison-Wesley logo

Eclipse Magazin logo

Embedded Computing logo

SD Times logo

Enterprise Open Source logo

ACM Queue logo

TheServerSide Java Symposium

Eclipse Review logo

Software Test & Performance logo

Eclipse Developers Journal logo

Eclipse Source logo