Kompose : A generic model composition tool

Authors : Franck Fleurey (IRISA/INRIA), Raghu Reddy (Rochester Institute of Technology), Robert France (CSU), Benoit Baudry (INRIA), Sudipto Ghosh (CSU), Mickael Clavreul (IRISA/INRIA)

What is Kompose?

Kompose is an open-source generic model composition tool that was developed in the context of a collaboration between the Triskell team at IRISA (Rennes, France) and the CSU MDE Research group (Fort Collins, CO). The tool is based on an algorithm first developed by Raghu Reddy as part of his doctoral dissertation on AOM. Franck Fleurey refined and extended the algorithm and built the tool using the Kermeta tool developed at IRISA.

Kompose implements a generic structural composition operator that can be specialized to a particular modeling language described by a metamodel. This version provides specialization example for Ecore models composition and RDBSchema models compositions. Additional examples can be found as models to be composed and composition directives.

Installing Kompose

Kompose is implemented as a set of eclipse plugins using the kermeta 1.2 language.
The current version, version, is available as a zip file.

Do the following to install Kompose after you download it:

  1. Download a kermeta eclipse bundle v1.2 from this page.
  2. Unzip the Kompose zip file and copy all the folders it contains into the "dropins" (Eclipse Ganymede) folder of the kermeta bundle.

Once Kompose is installed correctly you should be able to replicate the demo presented below.

You will also have access to examples provided in the Kompose bundle to test different compositions and have some clues about creating new Kompose specializations. (Eclipse -> New -> Examples -> Kompose Models Samples & Kompose Specialization Samples)

Kompose project contents

In order to introduce Kompose contents, here is a small description of available materials you can find in the archive.
Kompose plugins are split into three main families and several dedicated plugins:

Contributing to the development of Kompose

Kompose is an open-source tool. The source code is available on the Subversion repository.
The source code can be anonymously be downloaded but to contribute you will have to register and contact one of the project admin to be added to the developers list.
New specialization examples or models should respect packages naming. Please refer to existing examples before committing new projects.

Demo of the Kompose tool for Ecore models

Click this link to read the demonstration video.