MOFLON Bootstrap

From the very beginning, MOFLON has consequently followed a bootstrapping approach. Each version of the metamodel used by the MOF2.0 editor and the code generator are generated using a previous version of MOFLON. Besides, a MOF2.0 meta-metamodel instance is generated, that can be queried for metamodel-information during runtime. Considering the complexity of the underlying metamodel, the major benefit of this approach is, that we receive immediate feedback on bugs in our code generator and thus can finally deliver a high quality tool. As we will discuss Öffnet internen Link im aktuellen Fensterbelow, this process also revealed a considerable number of shortcomings with respect to the precise semantics of the official UML 2.0 / MOF 2.0 specification. We were able to find solutions for these issues and exploit them in the MOFLON tool [Öffnet internen Link im aktuellen FensterAS06].

Initial Bootstrap approach with MOMoC

The initial version was created using the console-based MOMoC generator, which was a predecessor project at the University of the Federal Armed Forces Germany, Munich [Öffnet internen Link im aktuellen FensterBic04]. A simplified MOF 2.0 metamodel was maintained as Rational Rose model and imported into MOMoC as XMI file and represented internally as a MOF 1.4-compliant model. From this representation, MOMoC could generate a Java representation with tailored (i.e. typed) JMI interfaces and a corresponding implementation.

Current Bootstrap approach with MOFLON

The MOFLON project extends MOMoC with a much more sophisticated, MOF 2.0-based JMI representation. It  features fully implemented tailored and reflective interfaces, corresponding XMI representation and an in-memory MOF 2.0 instance as meta-metamodel representation. On top of this standard-conform core, MOFLON provides over a suitable graphical user interface and incorporates graph transformations, OCL 2.0 constraints, and QVT-compliant Triple Graph Grammar implementation into the approach.

Evaluation of the UML 2.0/MOF 2.0 specification

As MOFLON implements the MOF 2.0 specification (i. e. mostly the UML 2.0 Infrastructure Library), its semantics must be defined precisely. However, we found numerous errors and missing constraints in the specification, which we needed to repair to be able to implement MOFLON, as discussed in [Öffnet internen Link im aktuellen FensterAS06]. The complete list of identified inconsistencies and its corrections can be found here. Summarizing, we found the following results:

From 90 analyzed constraints of the specification, 42 (47%)
are erroneous
48(53%)
are correct
To 86 constraints 101 improvements have been applied, of which 50(50%)
are additional constraints
51(50%)
are corrections
From the 51 corrections of the specification, 16(29%)
are due to a wrong metamodel reference
19(34%)
are due to wrong semantics
    21(37%)
are due to wrong syntax
 

Literature

[AS06]   Carsten Amelunxen, Andy Schürr. On OCL as Part of the Metamodeling Framework MOFLON. In Birgit Demuth, Dan Chiorean, Martin Gogolla, Jos Warmer (eds.): Proc. Workshop on OCL for (Meta-) Models in Multiple Application Domains, pp. 182-193, 2006. Technical Report TUD-FI06-04-Sept. 2006 (TU Dresden).
[Bic04] Lutz Bichler. Codegenerierung für MOF-basierte Modellierungssprachen. Universität der Bundeswehr München, 2004. Dissertation in German (Universität der Bundeswehr München).