B Support for Model Driven Architecture
The OMG's Model Driven Architecture (MDA) initiative is an evolving conceptual architecture for a set of industry-wide
technology specifications that will support a model-driven approach to software development. Although MDA is not itself
a technology specification, it represents an approach and a plan to achieve a set of cohesive set of model-driven
technology specifications.
The MDA initiative was initiated relatively recently, after the UML 2.0 RFPs were issued. However, as noted in the
OMG's Executive Overview of MDA (www.omg.org/mda/executive_overview.htm): "[MDA] is built on the solid
foundation of well-established OMG standards, including: Unified Modeling LanguageTM (UMLTM), the ubiquitous
modeling notation used and supported by every major company in the software industry; XML Metadata Interchange
(XMITM), the standard for storing and exchanging models using XML; and CORBATM, the most popular open middleware
standard." Consequently, it is expected that this proposed major revision to UML will play an important role in furthering
the goals of MDA.
At the time of this writing, there appears to be no official, nor commonly agreed upon definition of MDA or its
requirements. However, the OMG provides an executive summary for the initiative, along with a collection of white
papers and presentations at www.omg.org/mda. In addition, the OMG Object Reference Model Subcommittee has
produced a "Text for an MDA Guide" draft (ormsc/02-10-01) that is intended to be used in a future MDA Guide. This
MDA Guide draft characterizes MDA as follows:
"MDA provides an approach and tools for:
- specifying a system independently of the platform that supports it,
- specifying platforms,
- choosing a particular platform for the system, and
- transforming the system specification into one for a particular platform."
In addition, this MDA Guide draft and many other MDA documents commonly refer to a "UML family of languages,"
which is described in the MDA Guide draft as: "Extensions to the UML language [that] will be standardized for specific
purposes. Many of these will be designed specifically for use in MDA."
Given the nascent and evolving state of MDA, and the lack of common and precise definitions and requirements, it is
problematic to show strict architectural alignment with it. However, the following sections explain how UML 2.0
supports the most prominent concepts in the evolving MDA vision.
- Family of languages: UML is a general purpose language, that is expected to be customized for a wide variety of
domains, platforms and methods. Towards that end, this UML 2.0 proposal refines UML 1.x's Profile mechanism so
that it is more robust and flexible, and significantly easier to implement and apply. Consequently, it can be used to
customize UML dialects for various domains (e.g., finance, telecommunications, aerospace), platforms (e.g., J2EE,
.NET), and methods (e.g., Unified Process, Agile methods). For those whose customization requirements exceed these
common anticipated usages, and who want to define their new languages via metamodels, the proposed
InfrastructureLibrary is intended to be reused by MOF 2.0. Tools that implement MOF 2.0 will allow users to define
entirely new languages via metamodels.
- Specifying a system independently of the platform that supports it: As was the case with its predecessor, the
general purpose UML 2.0 specification is intended to be used with a wide range of software methods. Consequently, it
includes support for software methods that distinguish between analysis or logical models, and design or physical
models. Since analysis or logical models are typically independent of implementation and platform specifics, they can
be considered "Platform Independent Models" (PIMs), consistent with the evolving MDA terminology. Some of the
proposed improvements to UML 2.0 that will make it easier for modelers to specify Platform Independent Modelers
include the ability to model logical as well as physical Classes and Components, consistent with either a class-based or
component-based approach.
- Specifying platforms: Although UML 1.x provided extremely limited support for modeling Platform Specific Models
(PSMs, the complement of PIMs), this proposal offers two significant improvements. First, the revised Profile
mechanism allows modelers to more efficiently customize UML for target platforms, such as J2EE or .NET. (Examples
of J2EE/EJB or .NET/COM micro-profiles can be found in the Superstructure part of this proposal.) Secondly, the
constructs for specifying component architectures, component containers (execution runtime environments), and
computational nodes are significantly enhanced, allowing modelers to fully specify target implementation
environments.
- Choosing a particular platform for the system: This is considered a method or approach requirement, rather than a
modeling requirement. Consequently, we will not address it here.
- Transforming the system specification into one for a particular platform: This refers to the transformation of a
Platform Independent Model into a Platform Specific Model. The Superstructure part of this proposal specifies various
relationships that can be used to specify the transformation of a PIM to a PSM, including Realization, Refine and
Trace. However, the specific manner in which these transformations are used will depend upon the profiles used for the
PSMs involved, as well as the method or approach applied to guide the transformation process Consequently, we will
not address it further here.