Saturday, July 19, 2008

The AMMA project

We have spoken formerly about the IMP project, Methods, Models, and so on... I would like today to speak about the AMMA project which is actually the umbrella project for different projects around model management.
In order to perform Model Oriented Development(MOD), or also called Model Driven Development(MDD), we need advanced tools to perform modelization, model to model transformations, model merging, etc...
It is the goal of the AMMA(Atlanmod Model Management Architecture) project developped by the INRIA AtlanMod team directed by Jean Bezivin, i.e. to propose a global platform to ensure all these tasks. It is obviouly still research projects, but some of them like the ATL project have reached a quite mature point to be used in production.
What are the main projects of the AMMA platform? We can find the following ones :
  • AM3(Atlanmod MegaModel Management): the goal is to help developpers to manage megamodels (models composed of models as elements), i.e. create, store, view, access, and modify these ones. In a domain where many models are handled, the need of such platform is obvious to reduce complexity and render their use possible
  • AMW(Atlanmod Model Weaver):when we have many models, we may want to combine them or merge them. It is done by the model weaver.
  • ATL(Atlanmod Transformation Language): this project enables the developper to transform an instance of a model into another one of another model, eg a powerpoint document into an excel sheet. ATL define also a Virtual Machine to perform the tranformations efficiently. ATL is furthermore well tooled by ADT(ATL Development toolkit) an eclipse plugin used to write transformation with the ATL language, and even debug them.
  • KM3(Kernel Meta Meta Model): it is an implementation-independent language to write metamodels, and thus to define abstract syntaxes of Domain Specific Languages
  • TCS(Textual Concrete Syntax): it is an Eclipse/GMT component that enables the specification of textual concrete syntaxes for Domain-Specific Languages (DSLs) by attaching syntactic information to metamodels. With TCS, it is possible to parse (text-to-model) and pretty-print (model-to-text) DSL sentences. Moreover, TCS provides an Eclipse editor, which features: syntax highlighting, an outline, hyperlinks, and hovers for every DSL which syntax is represented in TCS.
  • MoDisco(Model Discovery): the goal of the project is to provide a support for model-driven reverse engineering, i.e. principles, methodologies and tooling.
  • ACG(ATL VM Code Generator): it is a domain specific language designed to express the compilation of a model transformation into ASM code executable by the ATL Virtual Machine (ATL VM).
We can see that all the bricks are present in order to reach Model Driven Engineering heaven. The challenge now is to :
  • provide a well packaged set of all these tools to be usable in a simple manner
  • reduce the learning curve to be adopted by developpers
  • evangelize a lot these technos
  • give evidence that there is a quite big capital gain to switch to such a technology
Nevertheless, I find promising and well thought all these projects, and I hope you'll browse them deeply after reading this post.

No comments: