Eclipse Modeling Project Proposal

An Eclipse Top-Level Project Proposal

The project has been created. Please visit the project page.

This proposal is presented in accordance with the Eclipse Development Process and is written to declare the project's intent and scope as well as to solicit additional participation and feedback from the Eclipse community. You are invited to join the project and to provide feedback using the http://www.eclipse.org/newsportal/thread.php?group=eclipse.modeling newsgroup.


Introduction

Eclipse has several projects that deal with modeling, in one form or another. Currently, these projects are spread across the Tools and Technology top-level projects. It is proposed that they be brought together under a new top-level Eclipse Modeling Project. The goal of this reorganization would be to foster communication and interoperability among the projects, and to better control the growing list of Eclipse projects by means of a logical organizational structure.

This document will propose the scope and organization of the project. A project charter will be created to describe in more detail the principles of the project, the roles and responsibilities of its participants, and the development process. As there are no new contributions included with this proposal, there are no new Intellectual Property (IP) items involved.

Project Scope

The Eclipse Modeling Project will focus on the evolution and promotion of model-based development technologies within the Eclipse community. It will unify and refine existing Eclipse projects falling into this classification, and augment them with those needed to bring holistic model-based development capabilities to the Eclipse community. It will be the task of the newly formed Project Management Committee (PMC) of this proposed top-level project to solicit contributors in order to meet this goal.

The items below delineate the scope of the proposed Modeling project. They do not do so uniquely, as other roughly equivalent terms and concepts could have been chosen to define the domain of modeling in the context of software development. These items also serve as a logical grouping of functionality to be referenced in the Project Organization section.

Abstract Syntax Development (metamodeling)

Included in the scope of the project is a framework to support the definition of abstract syntax for modeling languages that support business, system, and software modeling, using an industry standard metamodelling facility or metalanguage. The framework for developing abstract syntax will support editing, validating, testing, querying, and refactoring metamodels created with the metamodeling facility. This includes the production of general-purpose modeling languages in addition to application domain specific models.

This set of capabilities is currently, in part, provided by the Eclipse Modeling Framework (EMF). EMF is therefore an essential part of the Modeling project.

The underlying metamodeling facility must support the production of a wide range of models, not all of which will themselves be suited for inclusion within the Modeling project. Only those models and modeling languages of broad cross-domain utility fall within the scope of the Modeling project itself. For example, implementations of the Object Constraint Language (OCL) and Unified Modeling Language (UML) specifications are appropriately maintained within the Modeling project. In contrast, it is expected that users will create and maintain languages for narrowly defined problem domains using the project facilities, but that these languages and models will not be of interest to the general modeling community. A section below includes a more complete list of standard languages to be supported by the Modeling project.

Concrete Syntax Development

Support for the production of textual and graphical concrete syntax for an abstract syntax is within the scope of the project. Both manual and generative approaches to the production of these are to be supported. As examples, graphical editing for the Unified Modeling Language (UML) as well as textual editing of UML models using Human-Usable Textual Notation (HUTN) fall within the scope of the project. Furthermore, the production of editors for any Domain-Specific Language (DSL) is to be supported.

With respect to support of textual notation in the form of Eclipse editors, the Modeling project will focus on the generative aspect to producing these editors, targeting the facilities provided by the platform.

Model Transformation

The transformation of models using a transformation definition and associated technologies falls within the scope of the project, and is currently provided by the Generative Model Transformer (GMT) project. The support of industry standards is expected in this area, specifically the OMG's Query, View, Transformation (QVT) specification.

Model to Text Generation

Text generation from a model, typically source code of some programming source language, including the merger of user changes to generated output, is within the scope of the project and currently provided by the Java Emitter Template (JET) and JMerge portions of EMF. Alternative mechanisms have been requested by the community and along with support for patterns, falls within the scope of the project.

Industry Standards

The importance of supporting industry standards is critical to the success of the Modeling project, and to Eclipse in general. The role of the Modeling Project in the support of industry standards is to enable their creation and maintenance within the Eclipse community. Furthermore, as standards bodies such as the OMG have a strong modeling focus, the Modeling project needs to facilitate communication and outreach through its PMC and project contributors to foster a good working relationship with external organizations.

The following industry standards are either supported by current modeling projects, or are anticipated to be supported in the future:

  • Object Management Group (OMG) standards
    • Unified Modeling Language (UML) and UML Profiles not falling within the scope of other projects
    • Model-Driven Architecture (MDA) related specifications
    • Query, View, Transformation (QVT)
    • Human-Usable Textual Notation (HUTN)
    • MOF to Text (MOF2T)
    • Diagram Interchange Specification (DIS)
    • XML Metadata Interchange (XMI)
  • XML Schema Infoset Model (XSD)
  • Service Data Objects (SDO)
  • etc...

Domain-Specific Modeling

The support of industry standards and specifications are an important aspect to the scope of the Modeling project, but not to the exclusion of the emerging trend of Domain-Specific Languages (DSLs). The scope of the project includes support for an Eclipse-based set of capabilities to offer an alternative to tooling such as Microsoft's DSL Tools for the Visual Studio environment. The Eclipse Modeling Project will provide leadership in delivering these capabilities through its projects and in working with others within the Eclipse and external communities. The Graphical Modeling Framework (GMF) project is headed in the direction of providing support for Domain-Specific Modeling by leveraging EMF and the Graphical Editing Framework (GEF).

The generative production of editors for textual notations is an essential component of DSL support within Eclipse, and required if Eclipse is to be used as a "language workbench." The Modeling project will provide, within its scope, the generative aspect of producing these editors to complement graphical editors for a modeled domain.

Out of Scope

Clearly, there are some things that are not in the scope of the Modeling Project. In particular, there are certain DSLs and industry-based models that the Modeling Project should support creation of at a fundamental level, but that are not approporiate to be housed within the project. Specific examples are listed below:

  • A home for DSLs based on EMF which do not pertain to the modeling domain, e.g. the Java EMF Model (JEM) created for the Visual Editor (VE) project and used by the WebTools project.
  • A number of OMG standards that fall into the modeling realm are not considered to be within the scope of this project:
    • Software Process Engineering Metamodel (SPEM), as it is part of the proposed Beacon project.
    • Common Warehouse Metamodel (CWM), as it is likely to be included in DTP.
    • UML Testing Profile, as it is included in the TPTP project.
    • Reusable Asset Specification (RAS)
    • etc...
  • As mentioned above, in support of textual notation editor generation, the Modeling project will work with the Platform or other teams, and not itself focus on the development of general purpose text editor frameworks.
  • In the area of model transformation, XSL does not fall within the scope of the Modeling project and is provided within the context of the WebTools Project (WTP).

Project Organization

The Modeling Project will partly consist of projects which already exist as components of the Tools or Technology top-level projects. Those projects currently incubating within the Technology PMC will continue to incubate under the new Modeling PMC. Certain projects will be expanded, while others will be split into more fine-grained projects.

Additional project expansion and new project formation is expected over the life of the Modeling Project to take into the current scope proposed above, and its inevitable alterations. It will be the responsibility of the PMC to actively recruit contributors and alter the project organization to maintain alignment and coverage of its defined scope.

The following structure corresponds more-or-less with the logical breakdown above, and is proposed for the project. Projects are listed within their category and linked to an existing project below, where applicable. In some cases, placeholder projects are listed with names which are subject to change. It is proposed that this structure reside within a /cvsroot/modeling repository location at dev.eclipse.org:

Eclipse Modeling Project

  • Metamodeling Facilities
    • Eclipse Modeling Framework (EMF)
    • Validation Framework (VF)
    • Model Query (MQ)
  • Model Notation Development
    • Graphical Modeling Framework (GMF)
    • Textual Model Notation (TMN)
  • Model Transformation Frameworks
    • Generative Model Transformer (GMT) [not yet contacted]
    • Model Query, View, Transformation (MQVT)
  • Model to Text Frameworks
    • Java Emitter Templates (JET)
    • MOF to Text (MOF2T)
  • Model-Driven Data integration (MDDi) [not yet contacted]
  • Industry Models
    • Unified Modeling Language (UML)
    • XML Schema Infoset Model (XSD)
    • Service Data Objects (SDO)
    • Object Constraint Language (OCL)
Project Name Description Impact
EMF Eclipse Modeling Framework EMF is a modeling framework and code generation facility for building tools and other applications based on structured data models. Migration from Tools project. To be expanded to include visual and textual concrete syntax and editor support.
UML Unified Modeling Language The UML project is an EMF-based implementation of the OMG's Unified Modeling Language specification. Migration from Tools project. To be expanded to include a visual modeling capability and textual notation (HUTN) support. Name adjusted to eliminate version number.
XSD XML Schema Infoset Model XSD is a library that provides an API for manipulating the components of an XML Schema as described by the W3C XML Schema specifications, as well as an API for manipulating the DOM-accessible representation of XML. XSD is currently part of EMF and will become its own project.
SDO Service Data Objects SDO is a framework that simplifies and unifies data application development in a service oriented architecture (SOA). SDO is currently part of EMF and will become its own project.
JET Java Emitter Template JET provides JSP-like templating technology. JET is currently part of EMF and will become its own project within the M2T category.
GMF Graphical Modeling Framework GMF provides the fundamental infrastructure and components for developing visual design and modeling surfaces in Eclipse. GMF will move from the Technology project.
MDDi Model Driven Development integration MDDi allows developers to integrate modeling technologies and their supporting tools in a dedicated MDD platform on top of Eclipse. MDDi will move from the Technology project.
GMT Generative Model Transformer GMT aims to produce a set of research tools in the area of MDSD (Model Driven Software Development). GMT will move from the Technology project.
OCL Object Constraint Language OCL is an implementation of the OCL OMG standard for EMF models. OCL is currently part of EMFT and will become its own project.
VF Validation Framework VF is an extended validation framework for EMF models. VF is currently part of EMFT and will become its own project.
OCL EMF Query EMFQ is a query framework for EMF models. EMFQ is currently part of EMFT and will become its own project.

Incubators

The Modeling Project will provide for the incubation of new modeling-related technologies and projects. Enhancements and extensions to current frameworks, in addition to the inclusion of new Domain-Specific Languages and industry standards are all possible causes for a new incubator within the Modeling Project.

Interested Parties

To express support, concern, or constructive opinion regarding the formation of this proposed top-level Modeling Project, all are encouraged to utilize the newsgroup.

Project Management Committee

  • Richard Gronback, Borland (co-lead)
  • Ed Merks, IBM (co-lead)
  • Kenn Hussey, IBM
  • Fred Plante, IBM