The EGF (Eclipse Generation Factories) component is a proposed open source project under the EMFT project to provide a model-based generation framework.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft newsgroup.
For improving software development industrialization, a major step consists in mass-producing software. This mass-production must be customizable and support complex and heterogeneous generations. Given the today available tools in Eclipse, the issue here is not to provide a new transformation engine or DSL editor but to realize their integration with fitted formalisms (e.g., generation pattern) and mechanism (e.g., generation orchestration) for flexible software mass-production.
This proposal focuses on an implementation project of an Eclipse model-based generation framework, named EGF.
EGF federates generation around the pivotal notion of factory component. A factory component is a unit of generation with a clear objective of generation. It has a contract to declare the factory component parameters. Generation data are organized by viewpoints, such as generation pattern or model mapping declarations. The generation orchestration is defined in a production plan. A generation step of the production plan can either be a Java task or, by assembly, a call to another factory component. A factory component can be edited and executed.
A factory component encapsulates generation know-how. A portfolio is a consistent set of factory components with a common generation objective which is valuable for a development team or a user community. The purpose is to create off-the-shelf factory components. For instance, a technical infrastructure factory can provide all mechanisms needed for the development of an application (e.g., transaction management, persistence policy).
As a consequence, EGF is built on a two-layer architecture.
Example: The following figure exemplifies a simple generation. It shows a generation decomposition and assembly. Code generation is realized by generation patterns, which supports pattern inheritance. By default for the model/edit/editor generation, the EMF generation is applied. This generation can be specialized by inherited patterns.
Figure 1 - Example of generation
EGF contributions can take two kinds of different forms:
It becomes relevant to make the viewpoints cooperate. For instance, generation patterns can use a feature model for addressing the product line engineering.
We propose that this project be undertaken as part of an Eclipse Modeling Framework Technology subproject.
The following companies will contribute committers to get the project started :
Thales will provide the initial contribution which is already deployed in an industrial context. These people have contributed to the iniital code:
The following organizations have expressed interest in the project :
Critical to the success of this project is participation of interested third parties to the community. We intend to reach out to this community and enlist the support of those interested in making a success of the EGF project. We ask interested parties to contact news://news.eclipse.org/eclipse.tools.emft to express interest in contributing to the project.
The first community technical preview release is scheduled in Summer, 2009.
Back to the top