Skip to content
  Kermeta  

Kermeta - Breathe life into your metamodels

Document Actions

 kermeta_splash_gif Kermeta is developped by the Triskell team, all external contributors are welcome.

Quick links

Eclipse ready



Kermeta is also part of Topcased
hottopicKermeta 3 is now based on xTend !

NEW version ! Kermeta 3 (K3)


Kermeta continues to evolve to better match your requirements !

Kermeta 1 was interpreted. Kermeta 2 was compiled to Scala. Kermeta 3 is now an extension to xTend in order to simplify Java integration.

The new version and its documentation is available on github http://diverse-project.github.io/k3

This site is kept for archive only.
Even if the technology changes, many of the principles, recipes, and good practices of Kermeta 1 & 2 remains valid with K3.

Presentation

Kermeta workbench is a powerful metaprogramming environment based on an object-oriented DSL (Domain Specific Language) optimized for metamodel engineering.

Kermeta features a comprehensive environment for MetaModel Engineering activities running in Eclipse, including:

  • specification of abstract syntax, static semantics (OCL) and dynamic semantics with connection to the concrete syntax
  • model and meta-model prototyping and simulation
  • model transformation
  • aspect weaving.


Kermeta is built as an extension to EMOF (part of the MOF 2.0 specification) (I.e any EMOF compliant model is a valid Kermeta program and conversely)
It is available under an open source license EPL (Eclipse Public License).
Kermeta is fully integrated with Eclipse and includes features such as a compiler, a prototyper, an editor and various import/export transformations. (Details of the features of the workbench)

Key features of the language :

  • Model oriented : Model elements are the key concepts of the language, manipulate them as easily as Objects in your favorite Object Oriented language.
  • Aspect oriented : It allows to weave elements coming from various sources (ecore, kermeta, OCL, ...) in order to build various tools on top of existing (legacy) metamodels. Place your operations and features directly in the metaclasses for clean and innovative designs.
  • Strongly typed : It supports generics, lambda expression (build your own "foreach" on any element you wish) and a convenient Model type. Common errors are reported early in the development process.
  • Design by contract : this helps to build reliable tools.
  • Object Oriented core : If the above features aren't enough for a good design, then simply reuse the popular know how and design pattern available with Object Oriented Programming. This ensures a good scalability

Important note

Kermeta expects correct EMF models. It is easy to forget a step in the build process; please follow carefully the guidelines given in the documentation. This note holds for both reflexive, Omondo and Topcased editors.