Skip to main content

EGF: a Software Factory Tool

EGF (Eclipse Generation Factories) is a software factory tool with the purpose to generate software artifacts, such as code or application, in order to automate software development. Introduction

EGF Overview
  • Software production with factory components
  • Reuse of off-the-shelf factory components
  • Development by assembly
  • Adaptation to a specific context

EGF is an engine based on four types of generation unit:

  • Task: it enables to execute code written in a language (e.g., Java, Ant, JRuby) or tools (e.g., Acceleo, ATL, Jet)
  • Factory component: it declares generation parameters and orchestrates calls to tasks or other factory components
  • Pattern: it is a powerful formalism which enables to process resources (e.g., model, file), in a language (e.g., Java, Jet), with parameters (e.g., navigation strategy, post-processor, reporter)
  • Generation Chain: it is a domain-specific model which enables to abstract generations
EGF is designed to be extensible and accept new types of generation unit. On the other hand, because a task is able to execute code and tools, EGF is not strictly limited to generation.

Video:  Activity Workflow combining Java and JRuby

Example of dynamic execution

Software Factories Portfolios

A software factory portfolio provides an off-the-shelf generation solution. EGF is released with two portfolios:

  • Enhanced EMF Generation: 1) it enriches the EMF generation with new generation topics (e.g., html doc, ecoretools diagrams, Java doc), 2) it opens the EMF Generation customization with the EGF patterns
  • Build chain editor and generator: it provides 1) an editor to model a build chain for continuous integration, and 2) a generator with targets, by default, Hudson/jenkins and Buckminster

Video:  Generation Chain

Generation chain and the EMF generation

Back to the top