Acceleo
   HOME

TheInfoList



OR:

Acceleo is an open-source code generator from the
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
that allows people to use a model-driven approach to building applications. It is an implementation of the " MOFM2T" standard, from the
Object Management Group The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portable and interoperab ...
(OMG), for performing model-to-text transformation.


History and development


Early versions

The Acceleo project is born in 2006 with the website Acceleo.org. Acceleo 1.0 was licensed under the GNU Public Licence (GPL) and it was compatible with Eclipse 3.0, 3.1 and several modelers based on EMF and UML 1.2. A few weeks later, Acceleo 1.1 brought the compatibility with Eclipse 3.2 and UML 1.3. Acceleo changed its licence with the release of Acceleo 1.2 to adopt the Eclipse Public Licence (EPL) used by the projects of the Eclipse Foundation. Acceleo 2 was available on June 5, 2007, after the launch of the website planet.acceleo.org which includes articles created by the members of the Acceleo community and the Acceleo modules repository which contains code generators based on Acceleo 2.


Entrance in the Eclipse Foundation

In 2009, while moving to Acceleo 3, the project has been accepted in the Eclipse Foundation. During this transition, the language used by Acceleo to define a code generator has been changed to use the new standard from the OMG for model to text transformation, MOFM2T. With the release of Eclipse 3.6 Helios, Acceleo is included in the Eclipse simultaneous release train as an official project of the Eclipse Foundation. Acceleo is an Eclipse plugin and as such it is integrated in the Eclipse IDE. Acceleo is built on top of several key Eclipse technologies like EMF and, since the release of Acceleo 3, the Eclipse implementation of OCL. OCL is a standard language from the OMG to navigate in models and to define constraints on the elements of a model.


Trademark

While the Acceleo source code is open source, the Acceleo trademark and its logo, integrated in Acceleo, are not open source. They were the trademark of the company Obeo, creator of Acceleo, and they were transferred to the
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
when Acceleo was accepted as an official project.


Source code

Acceleo is an Eclipse project mostly developed in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and available under the Eclipse Public Licence (EPL). The source code of Acceleo 1.x and 2.x is available on SVN on the website of the OW2 Consortium. With its entrance in the Eclipse Foundation in 2009, the source code of Acceleo 3 was transferred from SVN to a CVS based repository on the servers of the Eclipse Foundation. After the release of Eclipse 3.7 Indigo in 2011, the Acceleo project has migrated to Git following the migration started by several official project of the Eclipse Foundation and since July 2011, the Acceleo source code is available on GitHub.


Releases

* First stable release: Acceleo 1.0.0 available since 1 April 2006


Supported platforms

Acceleo is written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and is deployed as a plugin in the Eclipse IDE. Acceleo is supported on Java 5+ based environments, on the following platforms: *
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
*
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
*
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
,
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
,
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...


The language

Starting with Acceleo 3, the language used to define an Acceleo code generator is an implementation of the MOFM2T standard. This code generation language uses a template based approach. With this approach, a template is a text containing dedicated part where the text will be computed from elements provided by the inputs models. Those dedicated parts are most of the time expressions specified on the entity of the input models used to select and extract information from those models. Within Acceleo, those expression are based on the Eclipse implementation of the OCL language.


Features

Acceleo provides tools for code generation from EMF based models. Thanks to those tools, Acceleo allows, for example, incremental generation. Incremental generation gives people the ability to generate a piece of code and then modify the generated code and finally regenerating the code once again without losing the previous modifications. Acceleo also allows: * code generation from any kind of metamodel compatible with EMF like UML 1, UML 2 and even custom metamodels ( DSLs) * customization of the generation with user defined templates * generation of any textual language ( C,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, Python, etc.)


Editor

Acceleo contains a code generation modules editor with syntax highlighting, completion, real time error detection and refactoring.


Debugger

The Acceleo debugger gives the possibility to keep an eye on the progression of a generation. It let the user pause a generation with a break point, check the state of the variables and move step by step during a generation to identify problems.


Profiler

The profiler allow the user to figure out all the instructions executed during the generation, the number of time that those instructions have been executed and the time taken by each of those instructions. Profiling data are available in an EMF models after a generation launched with the profiler. It gives the user the ability to find bottleneck in the code generator created.


Traceability

The Acceleo engine can compute traceability information of all the elements involved in the generation of a file. This system allows, for example, to determine the elements from the input models that have been used to generate a specific piece of text and the part of the code generator that has been involved.


Stand-alone use

The parser and the generation engine, critical components of Acceleo, can also be used in "stand-alone", without being deployed on Eclipse. Acceleo generates a Java class to launch the generation programmatically thus allowing the integration of an Acceleo generator in any Java application. This Java launcher can also be called from Ant or Maven.


Compatibility

The latest release of Acceleo is compatible with: * Stand alone Java 6 runtime * Eclipse 3.7 Indigo * Eclipse 3.8 Juno * Eclipse 4.3 Kepler * Eclipse 4.4 Luna * Eclipse 4.5 Mars * Eclipse 4.6 Neon Acceleo is based on the modeling framework EMF. Thus it is compatible with any tool that can produce EMF compatible models.


Example

Acceleo can use any EMF compatible models defined from any kind of metamodel like UML or even a custom DSLs. From this metamodel, the user can define a code generator that will produce any kind of textual language from a model using the metamodel. Here we are using the following elements: EClass, EAttribute and EOperation from EMF. Thanks to the simple module and this input model, Acceleo can generate the former code. The module defined in this example is parameterized to generate Java but the MOFM2T standard is independent of the generated code. When the generator is created, the user can use another model to generate a piece of code with a similar appearance but with a different content. Acceleo integrates several code generation examples to generate Java and Python.


Awards


Community and communication

The Acceleo community is gathered around the Acceleo part of the website of the Eclipse Foundation. The Acceleo documentation is accessible online on the Eclipse Help Center and on the wiki of the Acceleo project.


Conferences

The developers of Acceleo are also communicating with the community thanks to presentation realized in MDA or Eclipse conferences.


References


External links


Official website (for Acceleo 3+)
{{Eclipse Foundation Eclipse (software) UML tools Free UML tools 2006 software