MOFLON Architecture
Basically, MOFLON enables its users to visually specify the domain-specific metamodel of a considered software or system. Furthermore, the behavior of the system can be visually modeled in a rule-based manner. Last but not least, MOFLON provides means for visually specifying consistency and traceability patterns in order to integrate multiple models with each other. From all specifications MOFLON generates Java code which complies to Sun's Java Metadata Interface (JMI) standard. This code can then be utilized in order to analyze, transform, and integrate models that conform to the domain-specific metamodels.
To this end, MOFLON provide a set of visual editors:
- Metamodels can be specified using a fully MOF 2.0-compliant class diagram editor with a textual OCL 2.0 editor.
- Dynamic behavior and transformations of models can be specified using Fujaba's Story Driven Modeling (SDM) paradigm based on UML activity and collaboration diagrams.
- Model integration patterns can be specified using a declarative QVT notation compliant Triple Graph Grammar editor.
MOFLON stores all specifications in their own metamodeled model repositories:
- The metamodel of the MOF 2.0-editor is bootstrapped by itself.
- OCL constraints are stored utilizing the latest Dresden OCL Compiler metamodel.
- Graph Transformations are made persistent in SDM's metamodel as provided by Fujaba.
- Model integration specifications are stored using an own triple graph grammar metamodel.
MOFLON includes a number of code generators in order to generate applicable Java code from all specifications:
- MOF 2.0 specifications are translated by applying XSLT-transformations as provided by its MOMoC code generator.
- OCL 2.0 constraints are translated by utilizing the Dresden OCL compiler.
- Graph Transformations are translated by reusing Fujaba's Velocity Template mechanism
- Model integration rules are not directly translated into code. Rather, they are translated into sets of normal graph transformation rules that can then be translated into Java code as presented above.
In addition to the plain JMI-compliant Java code that consists of reflective and tailored interfaces and their implemenentaions as well as a generic XMI reader and writer, MOFLON generates event notification support compliant to Netbean's Meta Data Repository (MDR) technology. Furthermore, MOFLON generates code that allows to check constraints on models, transform and repair them, and finally integrate them with other models.

