Addressing Problems with Model Driven Architecture
What is the Model Driven Architecture (MDA)?
The Model Driven Architecture (MDA) initiative from the Object Management Group seeks to create a specification to protect the UML investments made during business domain modeling and to provide adequate agility to encompass the challenges facing implementation of a UML domain model over a software infrastructure. As shown in Figure 1, this goal is accomplished by differentiating between the platform independent model (PIM) and platform-specific models (PSMs).
Figure 1: OMG's Model Driven Architecture
The PIM represents the logical view in which the composition and behavior of all components (but not their implementation) are fully specified. The PIM serves a function that is similar to that of a refined analysis model. Since the PIM, by definition, does not contain technology details, it is envisaged that the PIM will be mapped to one or more platform-specific models (PSMs). The PSM serves the function of a refined physical model to target platforms such as Microsoft .NET (COM+), Enterprise JavaBeans (EJB) or the CORBA Component Model (CCM). The PSM represents the source code or its UML representation. There will be as many PSMs as there are different implementations of a given PIM.
What are the benefits of MDA?The MDA approach offers a number of benefits:
- Enhanced portability and interoperability between platforms;
- Business models and technologies that evolve at their own pace;
- Improved productivity for architects and programmers;
- Lower cost of application development and management;
- Reduced application time to market by allowing independent reuse of business domain code from platform specific code;
- Lowered risk associated with technology and business requirements evolution.
Who should adopt MDA?
In the long term, because of MDA's benefits, every large enterprise will adopt MDA principles. However, early adopters will be organizations that have strong experience with UML modeling and large enterprises that are starting new projects. You do not start implementing MDA in the middle or at the end of a project. They will implement MDA at early stage for one of two reasons: either because they need to develop applications requiring portability and interoperability between different middleware platforms or because they need business domain code that is loosely coupled with platform specific code in order to gain the flexibility and agility to evolve business requirements independently from technology.
Page 2 of 3