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
0.0.3.1, is available as a zip file.
Do the following to install Kompose after you download it:
- Download a kermeta eclipse bundle v1.2 from this page.
-
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
- Model
- 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
- _wizard
- User Interface
- Samples
Kompose Specialization Samples - Experimental
Experimental ECore Merge (multiple selection of ECore models)
- Samples
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.