Skip to main content

skip to main content

developerWorks  >  Architecture  >

Architectural manifesto: MDA for the enterprise

An architect's approach to more productive development

developerWorks
Document options

Document options requiring JavaScript are not displayed


New site feature

Check out our new article design and features. Tell us what you think.


Rate this page

Help us improve this content


Level: Introductory

Mikko Kontio (mikko.kontio@softera.fi), Production Manager, Softera

29 Jul 2005

Model Driven Architecture (MDA) is an approach that separates a system's desired functions from its implementation on a specific technology platform, resulting in an architecture that is not tied to any one language, platform, or vendor. In this month's Architectural manifesto, Mikko introduces you to the MDA approach and explains where it can most usefully be applied to your development projects.

Model Driven Architecture (MDA) is a platform- and vendor-neutral approach to software architecture design and development. MDA is applicable to the complete development life cycle of designing, deploying, integrating, and managing applications, using open standards such as Unified Modeling Language (UML), Extensible Markup Language (XML), XML Metadata Interchange (XMI), and Common Object Request Broker Architecture (CORBA).

MDA systems are modeled based on functions, rather than language, platform, or technology, meaning that a well-built MDA-based system can be changed or extended over time without disrupting the core infrastructure. The MDA approach eases integration, shortens development time, and conserves company resources by making it possible to develop more solutions without needing more people or time.

In this month’s column, I'll introduce you to the MDA approach and explain the systems and scenarios for which it most beneficial.

The basics of MDA

In the MDA lexicon, a model is a description of a system and its environment. It is often a combination of drawings and text. A model-driven approach is one that uses a model to direct the design, development, and maintenance of the system. It naturally follows that a model driven architecture is one where the architecture of the system is derived from the model of the system.

MDA has three viewpoints. A viewpoint is a technique for focusing individually on particular concerns in a system. The first MDA viewpoint is called the Computation Independent Viewpoint (CIV). Its role is to separate the fundamental logic of the system from the platform-specific specification. The CIV focuses on the environment and requirements of the system. In this viewpoint, the structure and implementation of the system are hidden, or possibly not yet implemented.

The second viewpoint is the Platform Independent Viewpoint (PIV). This viewpoint focuses on the operation of the system while hiding the platform-dependent details. It may use a general-purpose, platform-independent modeling language such as UML.

The third viewpoint is called the Platform Specific Viewpoint (PSV). This viewpoint focuses on the implementation details of a certain platform.

Each of the viewpoints has its own model:

  • The Computation Independent Model (CIM), which shows the business model of the system and is usually made by a business analyst.
  • The Platform Independent Model (PIM), which is a model of the system functions, usually made by an architect.
  • The Platform Specific Model (PSM), which models the implementation, on one or more platforms, of the PIM.

The PIM and PSM are more important to the software .



Back to top


Model transformations

The real value of MDA lies in the fact that the CIM can be translated to a PIM by a simple mapping. Likewise, the PIM can be translated to a PSM (by a mapping), and the PSM can be translated to code. The key elements are the mappings and the MDA tool or tools that do the translation.

Figure 1 shows how the different models are connected to each other. The CIM in the upper part of the image is where everything starts. The CIM is translated to a PIM and the architect or designer creates the rest of the model. After the design the PIM is translated to one or more PSMs. Before the translation can happen the models need to be marked for the translation tool.


Figure 1. MDA models are connected using model mappings
MDA models are connected using model mappings


Back to top


A model system

Think, for example, about a typical enterprise system that deals with customer orders. The CIM of the Orders system shows what the system should do. The CIM would likely consist of a few high-level UML diagrams created by a business analyst. The architect would then use the translation of the CIM as a basis for creating the PIM.

The PIM shows the functions and structure of the system, but hides implementation-specific and platform-dependent information. The PIM consists of detailed UML diagrams that do not contain any technology-related information. The PIM is then translated, for the sake of this example, to three different PSMs: one for the database, one for the Enterprise JavaBean (EJB), and one for the JavaServer Page (JSP). The JSP will handle the user interface and, therefore, requires its own PSM (separating it from the EJB function).

The next steps would be for developers to add marking to the models (prepping them for translation) and glue code to the final output. Even with the remaining work to be done the company will have saved considerable time and money with MDA process so far.


Figure 2. Mapping and translations for the Orders example
Mapping and translations for the Orders example

As you can see in Figure 2, the models are connected using mappings and translation tools, for which there are fortunately numerous providers. See Resources for a listing of MDA tools vendors.



Back to top


Benefits of MDA

MDA provides a nice, solid framework that just happens to let the system architecture define the models of the system before any implementation effort has begun. It also uses ready components and existing mappings to produce similar functions regardless of the platform or technologies used.

Further benefits of MDA include the following:

Portability
After you have a PIM in place, it is easy to create a new PSM based on that model. You need the mapping for the desired platform and the glue code, of course, but the underlying model of the system will be unchanged.
Cross-platform interoperability
In addition to being able to port a system model to various implementations, you can also use a special mapping to translate a PIM into a heterogeneous PSM, in which components from multiple platforms comprise the end system.
Productivity
MDA is a highly efficient design and development approach, making it possible to get the same work done with fewer people, or to do more work with the same number of people, all without additional strain on the development team.
Quality
The incidence of human error is greatly reduced when the majority of system code is generated and derived from a single model.
Rapid inclusion of new technology
MDA's mapping approach makes it possible to implement a given model with new and emerging technologies, or to add newer technologies into an existing system with little strain on the development team or the core system.

Further benefits to this list are the benefits of platform independence, domain specificity, reduced cost, and reduced development time.



Back to top


MDA in the field

The MDA approach is best suited for enterprise applications. Enterprise applications are usually customer-, product-, or service-oriented applications that are essential to a corporation's everyday operations. Business rules change rapidly in the enterprise environment and systems must change with them -- often by being extended to incorporate new technologies.

The MDA approach is especially valuable for these types of applications due to the benefits of rapid change management, lowered strain on the development team, lowered development cost, reduced development time, and other benefits mentioned above.

Of course, if the enterprise environment isn't tough enough, it is worth noting that MDA has also been used in the software underlying F-16 fighter jets!



Back to top


In conclusion

The chief advantage of the model driven architecture approach is that the architecture of the system is derived from the model of the system. The MDA framework consists of three viewpoints: the computation-independent viewpoint (CIV), platform-independent viewpoint (PIV), and platform-specific viewpoint (PSV). Each of the viewpoints has its own model. The platform-independent model (PIM) and platform-specific model (PSM) are typically most important for developers.

In a typical MDA design process, the business system is modeled as a CIM and the CIM is translated to a PIM. The architect then designs the functions and the structure of the system and the PIM is translated to one or more PSMs with the help of an MDA tool.

The main purpose of the MDA approach is to shorten development time and cost by easing the programming burden. In MDA, most source code is generated from the PSMs and generated by the transform tool. MDA is an efficient development tool for cross-platform development in enterprise systems. See Resources to learn more about MDA and related tools.



Resources

  • Alan Brown's three-part "Introduction to Model Driven Architecture" (developerWorks, February 2004 through May 2005) explains the importance of the modeling approach and introduces four key principles of MDA, as well as discussing related tools and standards.

  • The Rational Edge has published the entire first chapter of MDA Distilled: Principles of Model-Driven Architecture (Addison-Wesley, 2004), an excellent resource for architects interested in learning more about MDA.

  • In "The role of the service-oriented architect" (The Rational Edge, May 2003) Jason Bloomberg contrasts model-driven and service-oriented architectures and shows you how to apply the 4+1 view model in the design of a service-oriented architecture.

  • Visit IBM's SOA and Web Services technical library to learn more about service-oriented architectures.

  • The Object Management Group hosts an MDA homepage where you can read MDA success stories and learn about MDA tools and products.

  • Visit Mikko's blog, where he writes frequently about architectural design and documentation.

  • Don't miss a single installment of the Architectural manifesto column! See the column series page for a complete listing of previous installments in this series.

  • The developerWorks Wireless zone specializes in articles covering various wireless solutions.


About the author

Mikko Kontio works as a Production Manager for the leading-edge Finnish software company, Softera. He holds a Masters degree in Computer Science and is the author and co-author of several books, the latest being Professional Mobile Java with J2ME, published by IT Press. Mikko can be reached at mikko.kontio@softera.fi.




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top