pmMDA approach


pmMDA implements a pragmatic approach to realize MDA concepts in comercial and industrial products. The approach of pmMDA is sometimes called light MDA in the literature.
The platform independent model - PIM - and the platform specific model - PSM - are defined in the same model. This model is defined using UML and is called "pmMDA model". To support all major UML tools, pmMDA reads and saves the UML model as XMI file.

The tool "pmMDA Explorer" can process the model and thereby generate artefacts such as source code and configuration files. The generation of the artifacts is done with pluggable cartridges which interpret the pmMDA model.

Currently the following artefacts for the .NET framework are generated:

To run the generated artefacts on the different tiers, the pmMDA.NET framework is used.


The PIM is defined using UML tools, which support XMI. This means that the PIM model is an UML class diagram which consists of packages, classes and their members.

Not supported UML features

Note: Not every concept in class diagrams defined by UML is supported by pmMDA.NET. See the limitations for a list of not supported concepts.

UML extensions

pmMDA needs some information which can not be specified in a nativ UML class diagram. To specify this information tagged values are used. Tagged values are a well defined UML feature and are used to extend information about UML elements (package, class, association, ...). Tagged values have a name, which is used as key, and a value.
pmMDA.NET specifies which tagged values can be set on each UML element and the possible values of each tagged value. Some of the tags are platform independent and must be specified.


The platform specific attributes are defined using tagged values which are specified by pmMDA.NET. This means that the platform specific attributes are also defined in the same UML diagram as the independant information.

Generate artefacts

pmMDA Explorer

To generate the artefacts the tool "pmMDA Explorer" is used. Each of the cartidges process the UML model and generate its artefacts.

.net-dog cartridge

The .net-dog cartridge generates C# source code for data objects and other sterotypes.

.net-nhibernate cartridge

The .net-nhibernate cartridge generates the MySQL script to create the database and data integrity and the mapping files for NHibernate which map the classes to the tables.