Reuseware Composition Framework
Components, Modules, Aspects or something new?
Introduce new Composition Techniques into your Language of Choice with Reuseware!


A Brief History on Reuseware

To guide the confused reader who stumbled over Reuseware and asks himself what it actually is, here a short history.


While not exactly part of the Reuseware project, the COMPOST system gave the initial inspiration to start Reuseware and can be regarded as its predecessor. Compost is the demonstrator system of the book Invasive Software Composition.


The first versions of Reuseware were called E-CoMoGen (EMF-based Component Model Generator). There are basically two source releases. With E-CoMoGen 0.0.1 Invasive Software Composition systems can be built on the base of concrete-syntax grammars. Version E-CoMoGen 0.0.5 is the direct predecessor of Reuseware 0.5.x and already comes with the basic functionality described below.

E-CoMoGen 0.0.1 described in Invasive Software Composition with EMF. (release including source and examples)

E-CoMoGen 0.0.5 described in Invasive Software Composition Operators for the Semantic Web (release including source and examples)

Reuseware 0.5.x

This version is grammar-driven and comes with its own declarative textual language to define composition programs and new composition operators. It has an extensible interpreter system to execute the composition operators and programs. Reuseware 0.5.x is described in Reuseware -- Adding Modularity to Your Language of Choice (TOOLS EUROPE 2007) and Extending Grammars and Metamodels for Reuse -- The Reuseware Approach (IET Software Journal 2008).

The latest and final release is 0.5.1 available from the Download site or the SVN repository.

Reuseware 0.8+

Version 0.8 of Reuseware and successive version have a new code-base. The tool is now metamodel-driven and can operate on typed graphs. It has a graphical declarative composition language and and many other interesting features described on this website. Ultimately, all features that were available in 0.5.x should also be supported by this version. Reusewar 0.8+ is described in On Language-Independent Model Modularisation (TAOSD Journal 2009).

Available from:


A branch of Reuseware that works generative rather than declarative. Inspired by the COMPOST Framework, it generates a Java API for the desired composition system which can then be used to define composition programs in Java, rather than using Reuseware's specific language. There is no release yet, but the source is available from the SVN repository. ReusewAir is described in Jakob Henriksson's PhD Thesis: A Lightweight Framework for Universal Fragment Composition.


Although not direct part of Reuseware any more, EMFText is based on the grammar-processing code from E-CoMoGen/Reuseware 0.5. It is now a stand-alone tool which can be used for textual syntax development for modelling languages independent of Reuseware. With its help, the the current Reuseware can handle textual languages just as its predecessors.

Available from: