Subweb Home
Aims and Objectives
MDA Introduction
MDA Benefits
MDA History
OMG Introduction
UML Introduction
MDA Explained
MDA User Guide
MDA Tool Support
Management Stuff
MDA Links
Acronyms
The OMG's MDA User Guide
Introduction

The OMG published a document called the "MDA Guide" during the summer of 2003. The table below provides the document's details:

MDA Guide Document Information
TitleMDA Guide
Version1.0.1
Numberomg/2003-06-01
DateTHU-12-JUN-2003
OriginatorObject Management Group
EditorsJoaquin Miller and Jishnu Mukerji
PDF URLhttp://www.omg.org/docs/omg/03-06-01.pdf

The guide provides the most current description of the MDA approach. It gives details of how it should be used and information on the other standards adopted by the OMG that support it.

The Salient Points

The contents of the MDA Guide have been treated as a set of requirements which have been slightly engineered to produce the table below:

ReferenceHeadingStatement
1OMG Vision and Process
1.1The OMG VisionMost software continues to be written ignoring the realities of constantly shifting infrastructure and constantly changing requirements.
1.2Enter ModelingThe interest in modeling data and applications has picked up significantly.
The promise of the MDA approach is to allow definition of machine readable application and data models.
The MDA allows for: a flexible implementation infrastructure in which a new technology can be integrated; automatically producing data integration bridges; making maintenance much simpler; and allows for flexible testing and simulation.
1.3Modeling is EvolutionaryThe MDA is really just another evolutionary step in the development of the software field.
The magic of software automation from models is truly just another level of compilation.
Compilers exist that translate data and application models defined in UML to high level languages and to platforms that implement existing and any future systems.
1.4The Object Management GroupThe OMG was formed to help hasten the introduction of software applications by managing complexity and reducing costs.
The OMG is accomplishing this goal through the introduction of the MDA architectural framework with supporting detailed specifications.
The OMG is an international trade association incorporated as a nonprofit corporation in the United States with affiliate organizations around the globe.
1.5 The OMG ProcessThe OMG Board of Directors (BoD) approves standards on a technology-by-technology basis.
Each Technology Committees (TC) provide technical guidance and recommendations to the BoD.
The Platform Technology Committee (PTC) focuses on horizontal standards such as MOF and UML.
Domain Technology Committee (DTC) generates standard models in vertical markets.
An Architecture Board (AB) ensures coherence and consistency of the standards.
1.6ConclusionThe goal of interoperability for existing and future systems can be achieved by agreeing on models and how to translate between them.
2Introduction to MDA
2.1Introduction
2.1.1BackgroundIn about 1995 the OMG adopted the UML standard.
In 2001 the OMG adopted the MDA framework.
The MDA is an approach to using models in software development.
2.1.2OverviewThe MDA provides an approach that separates the specification of the operation of a system from the details of the way that it uses the capabilities of its platforms.
The goals of MDA are portability, interoperability and reusability through architectural separation of concerns.
2.2The Basic Concepts
2.2.1SystemIn the MDA approach, a system may include anything; discussion tends to focus on software within the system.
2.2.2ModelA model of a system is a description or specification of that system and its environment for some certain purpose.
A model is often presented as a combination of drawings and text.
The text may be in a modeling language or in a natural language.
2.2.3Model DrivenThe MDA approach provides a means for using models to direct the course of understanding and design.
2.2.4ArchitectureThe architecture of a system is a specification of the parts and connectors of the system and the rules for their interaction.
The MDA prescribes certain kinds of models and how they relate.
2.2.5ViewpointA viewpoint on a system is a technique for abstraction in order to focus on particular concerns within that system.
Abstraction is the process of suppressing selected detail to establish a simplified model.
Concepts and rules may be considered to form a viewpoint language.
The MDA specifies a computation independent viewpoint, a platform independent viewpoint and a platform specific viewpoint.
2.2.6ViewThe view of a system is a representation of that system from the perspective of a chosen viewpoint.
2.2.7PlatformA platform is a set of subsystems and technologies that provide a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented.
2.2.8ApplicationAn application refers to functionality being developed.
A system is described in terms of one or more applications supported by one or more platforms.
2.2.9Platform IndependenceThe platform independence of a model is the degree to which that model is independent of the features of a platform of any particular type.
2.2.10MDA Viewpoints
2.2.10.1Computation Independent ViewpointThe computation independent viewpoint focuses on the environment of the system and the requirements for the system.
2.2.10.2Platform Independent ViewpointThe platform independent viewpoint focuses on the operation of a system while hiding the details necessary for a particular platform.
A platform independent view may use a general purpose modeling language or a language specific to the area in which the system will be used.
2.2.10.3Platform Specific ViewpointThe platform specific viewpoint combines the platform independent viewpoint with an additional focus on the detail of the use of a specific platform by a system.
2.2.11The Computation Independent Model (CIM)A computation independent model is a view of a system from the computation independent viewpoint.
A CIM is sometimes called a domain model.
2.2.12Platform Independent Model (PIM)A platform independent model is a view of a system from the platform independent viewpoint.
A PIM exhibits a specified degree of platform independence so as to be suitable for use with a number of different platforms of similar type.
A common technique for achieving platform independence is to target a PIM for a technology neutral virtual machine platform.
A virtual machine is defined as a set of parts and services which are defined independently of any specific platform.
2.2.13Platform Specific Model (PSM)A platform specific model is a view of a system from the platform specific viewpoint.
A PSM combines the specifications in the PIM with the details that specify how that system uses a particular type of platform.
2.2.14Platform ModelA platform model provides a set of technical concepts representing different kinds of parts, services and elements.
A generic platform model can amount to a specification of a particular architectural style.
2.2.15Model TransformationModel Transformation is the process of converting one model to another model of the same system.
The PIM and other information are combined by the transformation to produce a platform specific model.
Transformations are not necessary for PIMs based on virtual machines. Instead, it is the PIM of the virtual machine itself that needs to be transformed to a PSM for a particular platform.
2.2.16Pervasive ServicesPervasive services are services available in a wide range of platforms.
MDA will provide common platform independent models of pervasive services.
2.2.17ImplementationAn implementation is a specification that provides all the information needed to construct a system put it into operation.
3How is MDA Used?Model transformations form a key part of MDA.
3.1CIMA CIM is sometimes called a Business Model.
A CIM describes the situation in which the system will be used and provides a source of a shared vocabulary for use in other models.
CIM requirements should be traceable to PIM and PSM constructs.
A CIM consists of one or more UML models.
3.2PIMA PIM information model is different from a CIM information viewpoint model.
A PIM will be suited for one or more architectural styles.
3.3Platform ModelA PSM will be expressed in UML and OCL.
3.4MappingA MDA mapping provides specifications for transformation of a PIM into a PSM.
3.4.1Model Type MappingsModel type (object) mappings specify mappings from types specified in the PIM to types specified in the PSM.
Mappings may also specify mapping rules in terms of instance values.
3.4.1.1Metamodel MappingsA metamodel mapping is a specific example of a model type mapping.
The types of model elements in the PIM and the PSM are both specified as MOF metamodels.
The metamodel mapping results in the generation of instances of types in the PSM metamodel.
3.4.1.2Other Type MappingsThe types available to model the PSM or PIM may not be specified as a MOF metamodel when expressed in other languages, including natural language.
3.4.2Model Instance MappingsMap PIM model elements to PSM model elements.
3.4.2.1MarksAn element of the PIM is marked to indicate how it is to be transformed to a concept in the PSM.
Marks are not part of the PIM or PSM.
3.4.3Combined Type and Instance MappingsMost type and instance mappings will be used in combination.
Marks can be used to indicate non-functional or stylistic characteristics of the PSM independently from the PIM.
3.4.4Marking ModelsMarks may come from model types and roles, UML profile stereotypes, MOF model elements, or a metamodel.
A mark may provide a requirement on the transformation to a PSM.
Marks may be structured, constrained or modelled.
Some marks may need one or more parameters.
A set of marks may be specified by a mark model, which can used with different mappings.
The mark model may be supplied with a UML profile.
3.4.5TemplatesA mapping may also include templates, which are parameterized models that specify particular kinds of transformations.
Templates can be used in model type mappings to transform a pattern of PIM elements into another pattern of PSM elements.
Marks can be used indicate instances in a PIM which should be transformed according to a template.
Marks can be used to specify which values in a PIM fill the parameters in a template.
3.4.6Mapping LanguageA transformation description may be in natural language. It may also be an algorithm in an action language or model mapping language.
Model mappings will be specified in the MOF Query/Views/Transformations standard.
3.5Marking a ModelSeveral PIM elements can be marked to indicate their roles in a mapping.
An element of the PIM may be marked one or more times to indicate its role in several mappings.
When an element is marked several times, it will be transformed according to each of the mappings and accumulate features in the PSM.
In model type transformations where rules are applied to automatically generate a PSM, there may be insufficient information in the mark model. The user will be asked for additional mapping information that is recorded in the mark model.
3.6TransformationTransformations produce a PSM from the mapping and a marked PIM.
3.7Direct Transformation to CodeA tool might transform a PIM directly to code without producing a PSM.
3.8Record of TransformationThe record of transformation details the mapping of elements from the PIM to the corresponding elements of the PSM and also which parts of the mapping were used in the transformation.
A MDA modeling tool that keeps a record of transformation may keep a PIM and PSM in synchronization when changes are made to either.
3.9PSMThe PSM produced by the transformation is a model of the same system specified by the PIM.
The PSM specifies how a system makes use of the chosen platform.
A PSM will be an implementation if it provides all the information needed to build a system.
A PSM may act as a PIM that is used for further refinement to a PSM.
A PSM that is an implementation provides information that may include program code and configuration specifications.
3.10Model Transformation ApproachesThere are several approaches that can be used for transforming models.
3.10.1MarkingA mapping for a platform is prepared which includes a set of marks.
The marks are used to mark elements of the model.
The marked PIM is transformed using the mapping to produce the PSM.
3.10.2Metamodel TransformationThe mapping is specified by selecting concepts in the metamodels.
A PIM is prepared using the UML platform independent profile specified by a metamodel.
A PSM is prepared using the UML platform specific profile specified by a metamodel.
The transformation specification in terms of a mapping between metamodels is prepared.
The mapping guides the transformation of the PIM to produce the PSM.
3.10.3Model TransformationTypes specified in models are used for the mapping.
A PIM is prepared using platform independent types specified in a model.
The elements in the PIM are subtypes of the platform independent types that declare generic capabilities and features.
The elements in the PSM are subtypes of the platform specific types.
A specification of a transformation for a platform is prepared.
The transformation specification is in terms of a mapping between the platform independent types and the platform dependent types.
3.10.4Pattern ApplicationThe model and metamodel mapping approaches can be extended to include patterns in addition to the platform independent types.
Both the types and patterns can be mapped to platform specific types and patterns.
The metamodel mapping approach can also use patterns.
The marked model approach can be extended to include patterns.
The PIM is marked with the names of design patterns that are specific to a platform.
3.10.5Model MergingThere are several MDA approaches that are based on merging models that produce a PSM from a PIM.
3.11Additional InformationAdditional information can be supplied to guide the transformation from PIM to PSM.
Information can be added to produce the marked PIM.
More information can be added when the marked PIM is further transformed to produce the PSM.
4MDA TransformationsThe PIM is transformed to be a PSM specific to a particular platform.
4.1Degrees and Methods of Model TransformationTransformations can use different mixtures of manual and automatic transformation.
There are different approaches to putting into a model the information necessary for a transformation from PIM to PSM.
4.1.1Manual TransformationDesign decisions are considered and taken in the context of a specific implementation.
The MDA approach adds value by explicitly distinguishing between a PIM and the transformed PSM and recording the transformation.
4.1.2Transforming a PIM Prepared Using a ProfileA PIM may be prepared using a platform independent UML profile.
This model may be transformed into a PSM expressed using a second, platform specific UML profile.
The transformation may involve marking the PIM using marks provided with the platform specific profile.
A UML profile enables the specification of a transformation by supplying rules using operations.
4.1.3Transformation Using Patterns and MarkingsA mapping specification includes patterns and marks. The marks correspond to elements of the patterns.
In model instance transformations, marks are used to prepare the marked PIM.
The marked elements of the PIM are transformed according to the corresponding pattern to produce the PSM.
Several patterns may be combined to produce a new pattern. A new mark is specified for use with the new pattern.
In model type transformations, rules will specify that all elements in the PIM which match a particular pattern will be transformed into instances of another pattern in the PSM.
Marks will be used to bind values in the matched part of the PIM to the appropriate slots in the generated PSM.
In this usage the target patterns can be thought of as templates for generating the PSM, and the use of marks as a way of binding the template parameters.
4.1.4Automatic TransformationThere are contexts in which a PIM can provide all the information needed for implementation, and there is no need to add marks or use data from additional profiles, in order to be able to generate code.
Mature component-based development is a context where middleware provides a full set of services and where the necessary architectural decisions are made once for a number of projects, all building similar systems.
These decisions are implemented in tools, development processes, templates, program libraries, and code generators.
In such a context, it is possible for an application developer to build a PIM that is complete as to classification, structure, invariants, and pre and post conditions.
The developer can then specify the required behavior directly in the model, using an action language.
This makes the PIM computationally complete. The PIM contains all the information necessary to produce computer program code.
The tool interprets the model directly or transforms the model directly to program code.
4.2Kinds of Input to Transformation
4.2.1PatternsGeneric transformation techniques can work with patterns supplied by the architect.
Different patterns may be chosen by the architect or by a transformation tool using supplied selection criteria.
When specifying type based transformations, patterns describe groups of concepts in the PIM that correspond to a concept or group of concepts in PSM.
Tools can be made responsible for matching the patterns in the PIM and using the patterns in the PSM as templates.
4.2.2Technical ChoicesTechnical choices are made by the architect to guide the transformation.
Technical choices might also be made by the analysis tools during transformation.
Choices in most transformation approaches will be made by both the architect and the tool.
4.2.3Quality RequirementsA range of quality of service requirements can be used to guide transformations.
Transformation choices will be made according to the particular qualities required at each conformance point in the model.
5Other MDA Capabilities
5.1Multi-Platform ModelsMany systems are built on more than one platform.
A transformation can use marks from several different platform mappings to transform a PIM into several PSMs.
5.2Federated SystemsA PIM can specify a system with several parts, each under separate control.
The transformation of that PIM to a PSM can be made recognizing that the system is federated.
That PIM can also be transformed into different PSMs for use by different parts of the system.
This approach will require the identification of bridges between the platforms.
If a generic interoperability mechanism is available, the PIM will allow generation tools to create the bridges.
5.3Multiple Applications of the MDA PatternThe MDA pattern includes a PIM, a class of platforms and a PSM which is specific to the class of platforms.
What counts as a PIM depends on the class of platform that the MDA user has in mind.
The MDA pattern can be applied several times in succession.
A PSM resulting from one application of the pattern will be a PIM in the next application.
5.4General Model to Model TransformationsThe same approaches that enable transformation of a PIM to a PSM can be used to transform any model into another related model.
5.5Reuse of MappingsMappings may be reused in several ways.
5.5.1ExtensionExtension adds to the properties of a base mapping to create a derived mapping by incremental modification.
Mappings can be arranged in an inheritance hierarchy according to derived base mapping relationships.
Inheritance is multiple if mappings can have several base mappings.
Inheritance is strict if the suppression of properties from the base mappings is prohibited.
5.5.2CombinationCombination uses two or more mappings to create a new mapping.
The ways in which mappings may be combined include sequential combination and concurrent combination.
5.6Enabling InteroperabilityAn interoperability mapping uses mappings for two different platforms.
These are combined to create a mapping to transform a PIM into a PSM in which some objects are on one platform and others on the second.
This mapping is then extended further to include connectors that bridge between the two platforms and specifications for the use of these connectors in a transformation.
The resulting mapping is used to transform a PIM into a PSM of a system that makes use of both platforms and provides for the interoperability of the subsystems on the different platforms.
6Using the MDA PatternThe MDA pattern may be applied more than once.
An original PIM is an application model which is represent by a rectangle divided into three.
A platform is represented by a bent horizontal line with two vertical bent lines joined near the ends.
Depending on the viewpoint taken, lower level platforms may be hidden and considered to be part of the implementation of higher level platforms.
A platform goes all the way down to a complete implementation.
A PSM is not required to include all details necessary to implement the platform because it may make implicit or explicit reference to the specifications of those platform capabilities it uses.
Either these specifications are available to complete the PSM or actual platforms are available which will provide the support required to complete the implementation.
If a PSM does not include a detailed model of a platform it may either make reference to other models that provide the details or it is an abstract model that hides the details.
A model is not a PSM unless it can be used to produce an implementation.
What counts as a platform depends on the kind of system being developed and is relative to the purpose of the modeler.
A PIM of a middleware system appears to be a PSM from the point of view of an original PIM application developer.
7MDA and Standards
7.1The MDA Technology BaseThe MDA approach is enabled by a number of technologies that have been adopted by the OMG.
OMG specifications for these technologies are available here.
7.1.1UMLThe Unified Modeling Language (UML) is a standard modeling language for visualizing, specifying and documenting software systems.
Models used with MDA can be expressed using UML.
7.1.2MOFThe Meta Object Facility (MOF) technology provides a model repository that can be used to specify and manipulate models.
The MOF encourages consistency in manipulating models in all phases of the use of MDA.
7.1.3MOF ModelsThe Common Warehouse Metamodel (CWM) is a MOF model.
7.1.4ProfilesA profile is a UML extension mechanism that applies to the language specification.
A UML profile specifies a new modeling language by adding new kinds of language elements or restricting the language.
The UML profile may be used to build a model.
The new or restricted language elements defined in a UML profile may be applied to specific elements of an existing model.
Any number of profiles can be applied to an existing model by extending or restricting elements of that model.
The application of a profile to a model can be removed, leaving the model as it was before the profile was applied.
7.1.5PlatformsThe OMG has adopted a number of specialized platform technologies.
7.2Examples of an Adopted MDA TechnologyThe UML Profile for EDOC specification is an example of the application of MDA.
The EDOC profile defines a set of modeling constructs that are independent of specific middleware platforms.
The modeling constructs may be used as marks.
The UML Profile for EDOC define PSMs for some specific middleware platforms such as EJB.
Mappings from a EDOC profile to middleware models are also defined to facilitate the transformation of a EDOC defined PIMs into corresponding PSMs.
Transformation is enabled either by using a model mapping approach where the models are prepared following the EDOC specification or by using a marking approach where a generic UML PIM is marked according to the EDOC profile.
Any model is platform independent or platform specific only relative to some particular class of platforms.
7.3What OMG Adopts
7.3.1The Adoption ProcessOMG adopts specifications by explicit vote on a technology-by-technology basis.
The specifications selected each satisfy the architectural vision of MDA.
OMG bases its decisions on both business and technical considerations.
Once a specification is adopted by OMG it is made available to all.
7.3.2What Is AdoptedOMG technology adoptions include a PIM and at least one transformation specification that produces a PSM and an implementation of the same for at least one platform.
Specifications may also include the PIM to PSM mapping used and the record of the transformation that produced the PSM.
OMG adopts specifications that are expressed in terms of models that exploit the MDA pattern.
7.3.2.1Service SpecificationsThese are domain-specific, cross-domain or middleware services where “Platform” usually refers to middleware.
“Platform Independent” means independent of middleware and “Platform Specific” means specific to a particular middleware platform.
The PSM may be expressed in a UML profile or MOF compliant language that is specific to the platform concerned.
Alternatively, the specification may express the PSM in the language that is native to the platform in question.
7.3.2.2Data Model SpecificationsA PIM is independent of a particular data representation syntax. The PSM is derived by mapping a PIM onto a particular syntax.
7.3.2.3Language SpecificationThe abstract syntax of the language is specified as a MOF compliant metamodel.
7.3.2.4Mapping SpecificationsThese contain one or more transformation models or textual correspondence descriptions.
7.3.2.5Network Protocol SpecificationsThe MDA pattern can be used to specify network protocols by viewing network transport layers as platforms.
7.3.3Domain ModelsThe many OMG domain technology adoptions each have an implicit model that is partly expressed in an IDL specification.
Domain technologies adopted in the future can be expected to provide explicit normative PIMs expressed using UML augmented by normative PSMs.
7.3.4Platform Independent ModelsThe OMG and vendors will prepare a generic library of reusable PIMs.
7.3.5Platform ModelsMDA platform models may be made available as UML models in MOF repositories, MOF models, UML profile models or languages specified using the MOF model.
7.3.6UML ProfilesWork has started on UML profiles for CORBA, EDOC, enterprise integration and real-time platforms.
7.3.7UML Family LanguagesExtensions to the UML language will be standardized for specific purposes.
7.3.8Model and Metamodel MappingsThe capability to specify model transformation mapping in complete detail are likely to be incorporated into future versions of UML.
Work is underway on transformation specification technology for MOF that facilitates model and metamodel mappings.
7.3.9Architectural IDEs / MDA ToolsMDA envisions automatic transformation of a marked PIM into a PSM.
7.3.10Conformance TestingTo support the MDA, the OMG must concentrate on conformance testing, certification and branding of products.

MON-22-DEC-2003