Model-based DSL Frameworks Ivan Kurtev, Jean Bézivin, Frédéric Jouault, Patrick Valduriez ATLAS (INRIA & LINA) University of Nantes 2, rue de la Houssinière BP 92208 44322, Nantes, France { ivan.kurtev | jean.bezivin | frederic.jouault }@univ-nantes.fr; patrick.valduriez@inria.fr Abstract More than five years ago, the OMG proposed the Model Driven Architecture (MDA™) approach to deal with the separation of platform dependent and independent aspects in information systems. Since then, the initial idea of MDA evolved and Model Driven Engineering (MDE) is being increasingly promoted to handle separation and combination of various kinds of concerns in software or data engineering. MDE is more general than the set of standards and practices recommended by the OMG's MDA proposal. In MDE the concept of model designates not only OMG models but a lot of other artifacts like XML documents, Java programs, RDBMS data, etc. Today we observe another evolutionary step. A convergence between MDE and DSL (Domain Specific Language) engineering is rapidly appearing. In the same way as MDE is a generalization of MDA, the DSL engineering may be viewed as a generalization of MDE. One of the goals of this paper is to explore the potential of this important evolution of engineering practices. In order to anchor the discussion on practical grounds, we present a set of typical problems that could be solved by classical (object-oriented and others), MDE, or DSL-based techniques. Solutions to these problems will be based on current platforms (EMF, AMMA, GME, etc.). This paper illustrates how powerful model-based frameworks, allowing to use and build a variety of DSLs, may help to solve complex problems in a more efficient way. Categories and Subject Descriptors D.3.2 [Language Classifications]: Specialized Application Languages – domain specific languages, modeling languages, model transformation languages. General Terms Design, Languages, Theory Keywords Model-Driven Engineering, MDA, DSL Engineering, Tool-based approaches. 1. Introduction As an emerging solution for handling complex and evolving software problems, Model Driven Engineering (MDE) is still very much in evolution [7]. The industrial demand is quite high while the research answer for a sound set of foundation principles is still far from being stabilized. Various organizations and companies (OMG, IBM, Microsoft, etc.) are currently proposing several environments claiming to support MDE. Among these, the OMG MDA™ (Model Driven Architecture) has a special place since it was historically one of the original proposals in this area [48]. This paper focuses on the identification of the basic MDE principles, and the applicability of the related ideas, concepts, and tools to solve current practical problems. Of particular interest also is the present convergence of MDE and DSL (Domain Specific Language) engineering [19]. Both MDE and DSL share the idea that language engineering may help in domain modeling. DSL Engineering is positioned at a more abstract level, using different technical solutions like MDE (sometimes called Modelware), Grammarware [35], XML solutions, etc. MDE mainly uses metamodeling capabilities to implement families of languages in specific application domains. Observing that MDE is more and more related to DSL engineering, we suggest that MDE principles and tools may be considered as a convenient support technique for building DSL frameworks that may solve existing and newly emerging complex problems. We illustrate this claim with the example of the AMMA (ATLAS Model Management Architecture) framework, an open-source effort of more that 15 person-years that is now being used in a variety of application areas [3]. The various tools are contributed as open source to the Eclipse GMT project [24]. Some of the more stable components, like the ATL transformation language environment, are currently used on more than 100 sites, both in academy and industry (Thales, Airbus, CS, TNI, JPL, Sodius, etc.). Initially considered as a tool support for MDA, for generating platform specific models from platform independent models, AMMA has evolved to be a DSL building framework. It consists of a set of primitive DSLs that will be presented later in the paper like ATL (ATLAS Transformation Language), KM3 (Kernel MetaMetaModel), TCS (Textual Concrete Syntax), etc. and offers the capability to build sets of related new DSLs for a given domain of for a family of systems. This paper is organized as follows. Section 2 provides the basic definitions related to models, tools, and DSLs. Section 3 gives a list of typical problems that could be solved by these new conceptual tools. Section 4 presents some current tools and how they may contribute to solve these problems. Section 5 presents some related work. Section 6 concludes the paper. 2. Definitions In MDE models are considered as the unifying concept in IT engineering. Traditionally, models have been used as initial design sketches mainly aimed for communicating ideas among developers. MDE promotes models to primary artifacts that drive the whole development process. The notion of model goes beyond the narrow view of semi-formal diagram thus requiring much more precise definitions and modeling languages. Models come in various flavors. A UML model, a Java program, an XML or RDF document, a database relational table, an entity- Copyright is held by the author/owner(s). OOPSLA’ 06 October 22– 26, 2006, Portland, Oregon, USA. ACM 1-59593-491-X/06/0010. 602