Skip to content
  Kermeta  

Report on the Kermeta workshop

Document Actions
This is a small report on what was discussed a the Kermeta Workshop in Rennes on November 15, 2005.

Participants: Triskell team members, Cédric Dumoulin, Raphaël Marvie, Martin Monperrus and Joël Champeau.

* Current status of Kermeta (Current version is 0.0.17):

The Kermeta environment now includes a parser, an interpreter, the ability to load an store models with EMF and a simple development environment integrated within Eclipse. A debugger is under development. In addition, 23 feature requests are open.

In terms of features we are close to what we need to release version 1.0.0, but the stability and reliability of the platform needs to be improved: 47 of the 68 reported bugs are still open.

Errata Kermeta development stats:
During the workshop we said that kermata was about 16000 LOC according to statcvs. It turns out statcvs is wrong, the project is made of 59760 lines of JAVA code and 16806 lines of Kermeta. This count includes test cases.

* The Kermeta language

- Concrete syntax: We have decided to keep the current syntax. Some minor problems have to be fixed in this syntax but we do not want to design a new syntax from scratch.

- Composition semantics: The semantics of composition is not clear to new users. The fact that primitive types are treated like regular objects (By reference and not by value) is confusing. A discussion about this issue has started in the Kermeta user list (Assignments and associations pitfall in Kermeta). Clearly the tutorial should include some warnings about this as it a one of the difference between Kermeta and a regular OO language.

- Model Typing: Jim is developing a type system for models. There are still some minor issues with the formalization of the type system but the implementation in the Kermeta type system should start in the next few weeks.

- Yet another language syndrom ?
Entering the language war is pointless. Kermeta has to be presented as an experimental vehicle that we use to better understand the issues related to metamodel engineering.

* The Kermeta workbench

- Command line interface outside eclipse:
One of the most important request from users would be to have a command line interface to Kermeta. This has been added to the feature request with a high priority.

- Graphical editor:
We (and the users) are not satisfactory with Omondo for editing metamodels. Cédric Dumoulin presented the editor that has been developed for TopModl and this editor looks close to what we want to have in the Kermeta environment. The Kermeta development plan have been updated to start the integration of this editor shortly.

- Debugger:
The priority of developing a debugger has been lowered, as the availability of a graphical editor seems more important to the users. A basic debugger will be released soon, but it will not include all the features that were originally planned.

- Compiler:
Not a priority for now. However, we will take care to keep the language “compilable”.

- Synthesis of Graphical editor:
Basically, this is based on the use of a presentation metamodel that holds the necessary information. A Master student (supervised by PAM) will work on this topic from January to June 2006.

- Prototyper:
This extension to the generic editor or to the generated editor adds the ability to run the method defined in the metamodel. It has some connection to the debugger. Not a priority for now. An alternative for the time being would be to use the Model Prototyper from ObjeXion; this implies representing Kermeta metamodels in (UML 1.3, XMI 1.1).

- Synthesis of Parser:
Interesting problem. PAM and Franck F have defined a metamodel to express the concrete syntax of a metamodel. Frédéric Fondement is also working on this problem. We do not have resources to work on this for the moment.

- OCL:
Checking constraints appears as a very important feature for a metamodeling workbench. Some actions are in progress to reuse existing code from F. Fondement

* Kermeta Community:

We do not have many users and we do not know how Kermeta should be "sold" to new users. We do not want to restrict Kermeta to one of its use cases. The four use cases we have identified are: Model transformation, Language engineering and Simulation, Aspect Oriented Modeling and Process.
These use cases still have to be defined precisely. We planed to organize the Kermeta web site according to these use-cases.
We think that it would be valuable to have an on-line demo of Kermeta on the web site. It could be an applet or a cgi if the applet is too big.

 - Meta-model repository:
It turned out that what we want to do with the "ZOO" and what R. France is doing at CSU are two different things. At CSU they are building some kind of CVS tool for models, and, what we want is a centralized place to share metamodels. We are a use case for the tool they are building: we could use their tools. However, as their tool is not ready yet, we can start using PAM's prototype tool.

- Diffusion in Eclipse:
The proposed way to distribute Kermeta is to create a Kermeta project as a subproject of GMT that will contain the main sources of Kermeta, and then create another project into MDDi that will contain the necessary adaptors for the ModelBus of MDDi.

 - List of active Kermeta users (excluding Triskell members):
    * Martin Monperrus (Brest)
    * Jean-Marc Perronne (Mulhouse)
    * Frédéric Fondement (Lausane)

- Position of Kermeta in the market:
We try to be more flexible as we don't have strong marketing constraint as opposed to our competitors.
Identified competitors are:
   * Microsoft who targets the Web services domain
   * MetaCase who targets Nokia developments
   * Xactium who targets aerospace domain
  
 - Misc :
Kermeta was presented by Clémentine Nebut in a Master (DEA) course on MDE in Montpellier. She plans to use Kermeta with students.