Report on the Kermeta workshop
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.