Skip to content

Kompose : A generic model composition tool

Document Actions
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, UML2 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:
  • Core
    • Model
      Kompose source files and meta model
    • Parser
      Parser for user's composition directives
  • Specialization
    • _wizard
      Specialization wizard to create new specializations from specific metamodels (DSL)
    • Ecore
      ECore specialization example
      • Study.HW
        ECore specialization Case Study on Health Watcher
    • UML2 (Class model part)
      UML2 specialization example
    • RDBSchema
      RDBSchema specialization example
  • User Interface
    • Samples
      Kompose Specialization Samples
    • Experimental
      Experimental ECore Merge (multiple selection of ECore models)
  • 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.