The goal of the Generative Modeling Tools project (GMT) is to produce a set of research tools in the area of MDSD (Model Driven Software Development).
These contributions are intended to be illustrative of the variety of operations applicable to abstract models. Historically the most important operation was model transformation
and this is the origin of the name of the project. Currently model transformation stays an essential operation but other model management facilities like model composition
are also being proposed, broadering the scope of the GMT project.
The project will result in a set of research prototypes using the MDE paradigm. Each prototype tool will illustrate some kind of model management facility.
- Most of the prototypes will ilustrate current or potential possibilities in the domain of MDSD (Model Driven Software Development).
They may be useful to achieve the MDSD goal of faster/more accurate/better maintainable application development.
- Any other contribution that may be useful in the broader domain of MDSE (Model Driven Software Engineering). Beyond basic software
development, MDSE is particularly concerned with any software maintenance practices based on abstract models.
- Many of the contributions will likely be compatible with MDA(tm). MDA defines a set of OMG recommendations in the domain of MDE
(MOF 2.0, XMI 2.1, SPEM 2.0, UML 2.0, etc.).
- Some of the MDE contributions may also follow more general DSL approaches (Domain Specific Languages), specially when they are
using small, very focused and precisely defined metamodels.
- Among all these contributions we may list some possibilities:
- Use cases, for example those involving one or several of GMT contributed research tools.
MDE patterns in the same spirit than classical design patterns. Of particular interest are patterns showing the possible
cooperation of MDE with other technologies like XML, Ontology engineering, AOP (Aspect Oriented Programming), CBE
(Component Based Engineering), Agile Programming, Intentional Programming, Language Oriented Programming, etc.
Any kind of MDE artefact that may be used, produced, exchanged, transformed, etc. Examples of such artefacts are: models,
metamodels, transformations, etc., expressed in a variety of formats.
Global tools facilitating the interoperability or collaboration between internal GMT prototypes or with other
external tools, specially Eclipse-based tools.
Tools demonstrating the collaboration between code-based and model-based approaches. Of particular interest are model to
code tools (for code generation) and code to model tools (for legacy extraction). The subject of Model-Based Reverse
Engineering (MBRE) is of particular relevance to GMT.
Tools demonstrating the collaboration between several Eclipse projects. As one example of this, interfaces with DTP (Data
Tools Platform Project) fall in the scope of GMT. The subject of Model-Driven Data Engineering (MDDE) is also of particular
relevance to GMT. This may cover areas going from semantic interoperability to data integration when the proposed
prototypes are model-based.
Audience for the GMT Tools
The tools developed by this project will be useful for those who need
- To apply MDE techniques to a specific domain (for example, order management using relational database and JSP according to
enterprise-specific infrastructure standards); i.e. Software Analysts and Software Architects with expert knowledge
of the target domain and/or platform.
- To develop real, deployable applications, i.e. Software Developers with average knowledge and experience of the
target domain and/or programming language.
- To design domain specific languages for the purpose of significantly automating development of a product family in a specific
domain; i.e. Language Designers with deep knowledge in specific vertical or horizontal domains.
GMT will provide a related set of components that can be used by other MDE tool components. The large breadth of the audience makes it
necessary to define a tool architecture that is based on plug-ins and may rely on standard formats for information exchange between
the tools (XML-based, XMI, etc.).
Typical research prototypes that may be found in the GMT project may be:
A weaving facility that may combine two source models or more into one target model or more. Since there are several different
ways of combining two models together for obtaining a third one, the combination itself may be defined by an additional model.
A checking facility that takes a model as input and produce a diagnostic of how this model satisfies some verification constraints
A workflow component that may provide coordination between other MDSD tools (orchestration, etc.). More generally any solution to
the general fragmentation problem arising from the usage of a huge number of different DSLs (MDE component coordination).
- Tools that support capture, modification or application of particular DSLs like feature models.
Any component that may be combined with the previous ones, either in stream-based, service-based or event-based interconnexion mode is
a potential contribution to the GMT project.
History of the GMT Project
The GMT project was initially created by a group of people that met at OOPSLA in 2002:
- Jorn Bettin, SoftMetaWare, New Zealand
- Ghica van Emde Boas, Bronstee.com Software & Services, The Netherlands
- Ed Willink, Thales, UK
The founders of GMT initially created a structure composed of core contributors, associate researchers and sponsors.
In addition to the founders, the following persons participated to these groups:
- Core contributors:
- Frederic Jouault, INRIA and University of Nantes, France
- Associated Researchers:
- Aditya Agrawal, ISIS, Vanderbilt University, USA
- Wei Zhao, Department of Computer and Information Sciences, University of Alabama at Birmingham, USA
- Jean Bézivin, INRIA/ATLAS, University of Nantes, France
- Brian Barry, Eclipse Technology PMC, Object Technology International
- Gabor Karsai, ISIS, Vanderbilt University, USA
- Krzysztof Czarnecki, Dep. of Electrical & Computer Engineering , University of Waterloo, Canada
In a next phase, the GMT project was managed by Ghica van Emde Boas and Jorn Bettin. Ghica and Jorn managed to raise the level of GMT by
starting integrating new subprojects, giving the initial direction and focusing on the production of MDE prototypes. Several documents
produced in the early period of the project remains of interest (
Software requirements specification 0.1,
GMT poster displayed at OOPSLA 2003,
GMT Overview, etc. ).
The present project lead for GMT is Jean Bezivin (INRIA & University of Nantes) since 2005.
Freddy Allilaire is currently helping the GMT project with the role of parttime webmaster.