Eclipse Zone is brought to you in partnership with:

Benoit Langlois is software architect and project leader at Thales. He has 13+ years of experience in model-driven development in small- and large-scale projects. He always tries to improve software industrialisation and to share this value. Benoit has posted 1 posts at DZone. View Full User Profile

An Introduction to Eclipse Generation Factories

  • submit to reddit

In order to improve software development industrialization, a major step consists in mass-producing software. This mass-production must be customizable, and must be able to support complex, large-scale and heterogeneous generations. Given the today’s available Eclipse tools, the issue here is not to provide either a new transformation engine or DSL editor but to realize their integration for flexible software mass-production. This is the purpose of EGF (Eclipse Generation Factories), a proposed EMFT component.

EGF federates generation around the pivotal element 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. Contrary to a classic generation which aggregates all the generation parameters, generation data are organized by viewpoints, such as generation pattern, license description or deployment declaration. Altogether, viewpoints explicitly configure all the generation parameters. The generation orchestration is defined by a production plan. A generation step of the production plan can either be a Java task or, by assembly, an invocation 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, 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 provides all the needed mechanisms for an application development (e.g., transaction management, persistence policy).

Example of customization with generation patterns

The following figure exemplifies a generation by factory component assembly: some factory components have an assembly role while others generate. This generation reuses a viewpoint provided by EGF, a M2T (model-to-text) generation pattern viewpoint for the definition of generation patterns. Those generation patterns, Jet-based today, supports pattern inheritance. This means a M2T generation can overload another one. In this example, by default, the EMF model/edit/editor generation is applied. It can be specialized by inherited patterns. The same principle can be applied to other generations other than EMF, for instance to web services or documentation.

Figure 1. Example of factory component assembly

Next figure presents the EGF perspective. With the view on the left-hand side, the factory component developer develops his own factory components, while with the view on the right-hand side he visualizes the deployed and reusable factory components. This figure shows the viewpoint/orchestration structure of a factory component and the generation delegation between factory components with parameter passing.

Figure 2. The EGF Perspective

Two levels of factory component development

As presented in the previous example, the most natural way to put factory components into practice is to develop and assembly factory components. The objective is to create valuable factory components, either for one’s team or larger development teams, and to reuse them in different generation chains. The issue is to figure out generation practices, how to implement and compose them with factory components, and the generation variability.

Factory components can be used to address simple generations. But flexibility and customization need more sophisticated mechanisms. For meeting this need, EGF offers the ability to extend the default factory component structure and generation behavior. i) One can add its own viewpoints in order to add new generation data structures, and to augment the capability to parameterize generations. This implies associated factory components are able to use those new viewpoints. ii) One can add its own orchestration types. This means orchestration is not restricted to a unique orchestration notation and engine.

Industrialization of large-scale development cannot be sum up to a succession of generators. It involves an architecture description of core components, technological generation components with their extensions, and the definition of their generation lifecycles. EGF brings one stone to the tooling aspect.

Paradigm shift with EGF

We have seen the ability to build complex chain with factory components. Now, from the software engineering viewpoint, the next step is to realize a tool- to technology-oriented software development paradigm shift. From the final user, the issue is not to develop software with a set of defined tools, but applications based on technological solutions (e.g., generation of an application infrastructure) reusable in different application contexts. The concern of the generated technological solutions is to federate and encapsulate a set of involved tools. This allows to better abstract software development. Tool and technology experts develop lower layers while application developers reuse available solutions.

This paper has presented the pivotal element of factory component for capitalizing software generation, has introduced the architectural dimension of complex generations with a factory component-based development, and the tool- to technology paradigm shift. This gives an overview of the EGF proposal and its technical scope.

egf2.png179.06 KB
egf1.png79.76 KB
Published at DZone with permission of its author, Benoit Langlois.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Nensi James replied on Fri, 2009/07/03 - 8:12am

Eclipse carries on not long after New Moon left off.  Bella’s high school graduation is approaching and she will soon be leaving Forks forever, ostensibly to go to college - but in reality she is planning to join her boyfriend in his vampire existence and will therefore be unable to return home, Althoug its not related to me because I am student of ccsp and ccvp certification but I am still interested, due to being dead and possessed by a terrible blood lust for the first few years.  Not that the reader is actually taken that far in this story, we make it through graduation but then the dangerous vampires from Seattle come to Forks and dealing with them dominates the rest of the novel. Now I am gonna send the link to my other friends, some of them are also the preparing for the ccde and I hope they will like it.

ram sharan replied on Mon, 2009/10/26 - 12:53pm

Industrialization of large-scale development cannot be sum up to a succession of generators. It involves an architecture description of core components, technological generation components with their extensions, and the definition of their generation lifecycles. EGF brings one stone to the tooling aspect locksmiths.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.