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.
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.
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.
To generate the artefacts the tool "pmMDA Explorer" is used. Each of the cartidges process the UML model and generate its artefacts.
The .net-dog cartridge generates C# source code for data objects and other sterotypes.
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.