Robust implementation of OMG standards for research and development

UCL Logo
Sourceforge project page
UML 1.5 API Logo

About the project:

The objectives of the UCL MDA Tools project are to produce and distribute a set of lightweight, platform independent tools for software development following the Model-Driven Architecture approach.

The tools are designed to be compliant, as far as possible to OMG standards including EMOF, XMI, OCL 2, and the JCP standard JMI.

The tools were originally developed in the Department of Computer Science, University College London. The tools support and are supported by research into MDA/MDA performed at UCL.

Recent research at UCL has focussed on improving the usability of OMG language specifications such as UML. The UCL MDA tools implement extensions to the EMOF specification to allow semantic documentation to be embedded in meta-models. Consequently, meta-models become full language specifications and can be used as the definitive reference for a language. We are working on converting UML standards to this machine- readable format. In consequence we are also making available a JMI implementation for UML 1.5 featuring embedded documentation and full constraint checking.

The toolset is implemented in Java, and licensed under the Mozilla triple licence.


  • Parsing and type-checking of textual EMOF and OCL 2 meta-models into XMI.
  • A JMI repository generator from XMI meta-models. Full generation of interfaces and implementation. Full support for:
    • Reflective interfaces;
    • Multiple inheritance;
    • Composition relationships;
    • Collection-typed features;
    • Multiplicity constraint checking.
  • Extended JMI interfaces implementing pub/sub tracking of model edits, deep and shallow copying of model elements, and runtime configuration of implementation.
  • XMI serialisation automatically generated for JMI implementations.
  • An OCL 2 interpreter integrated with the JMI implementation for evaluating meta-model constraints and arbitrary queries.
  • Generic tree-based graphical editing component for JMI repositories implementing reflection.
  • Formalisation of UML 1.5 standard as EMOF/OCL specification with embedded documentation.


The above screenshot depicts the generic editor component applied to a UML 1.5 repository. The tree uses elements from the meta-model (accessed via JMI reflection) such as packages, types and attributes, to organise the display of model level elements such as objects and attribute values.


The UCL MDA tools are licensed under the Mozilla Triple Licence. According to the terms of the licence, their source code may be reused in open-source software with compatible licence terms, or in proprietory software, providing all modifications to the source code are made available under a compatible open-source licence. The tools themselves may be used without limitation for any purpose, although we offer no warranty for them, and disclaim all liability possible relating to damage caused by their use. View the licence terms here.

Obtaining the packages:

The source code for all modules is available via CVS from Sourceforge. We also periodically provide both binary and source code file releases for (relatively) stable versions of the UCL MDA tools and UCL UML project.

The UCL MDA tools have a large and complex code base and build process. We are keen to hear your experiences in using them, and provide support wherever possible. Please post bug reports, feature requests, and request for support to our Sourceforge forums, or mail James Skene.

Contributing to the project:

If you are interested in contributing to this project, either to help improve the robustness and functionality of the existing tools, or to contribute novel tools or features that you think would add to the usefulness of the toolset, please contact James Skene. Also, if you are interested in helping but don't know what to do, we may be able to suggest a project.