Model Driven Architecture (MDA)

Model Driven Architecture (MDA)

Liliana María Favre (Universidad Nacional del Centro de la Pcia. de Buenos Aires, Argentina)
DOI: 10.4018/978-1-61520-649-0.ch002

Abstract

The architecture of a system is a specification of software components, interrelationships, and rules for component interactions and evolution over time. In 2001 OMG, adopted an architecture standard, the Model Driven Architecture (MDA). MDA is an architectural framework for improving portability, interoperability and reusability through separation of concerns (MDA, 2003) (MDA, 2005). It is not itself a technology specification but it represents an evolving plan to achieve cohesive model-driven technology specifications. MDA is built on OMG standards including the Unified Modeling Language (UML), the XML Metadata Interchange (XMI) (XMI, 2007) and CORBA (CORBA, 1992) (CORBA, 2002) a major middleware standard. MDA is model-driven because it uses models to direct the complete lifecycle of a system. All artifacts such as requirement specifications, architecture descriptions, design descriptions and code, are regarded as models. MDA provides an approach for specifying a system independently of the platforms that it supports, specifying platforms, selecting a particular platform for the system, and transforming the system specification into one implementation for the selected particular platform. Why MDA? OMG has focused on the creation of open specifications to encourage application interoperability. It was defined to solve enterprise application integration. A middleware describes a piece of software that connects two or more software applications, allowing them to exchange data. To achieve this, it must be implemented for all different languages and platforms that need linking.
Chapter Preview
Top

Introduction

The architecture of a system is a specification of software components, interrelationships, and rules for component interactions and evolution over time.

In 2001 OMG, adopted an architecture standard, the Model Driven Architecture (MDA). MDA is an architectural framework for improving portability, interoperability and reusability through separation of concerns (MDA, 2003) (MDA, 2005). It is not itself a technology specification but it represents an evolving plan to achieve cohesive model-driven technology specifications. MDA is built on OMG standards including the Unified Modeling Language (UML), the XML Metadata Interchange (XMI) (XMI, 2007) and CORBA (CORBA, 1992) (CORBA, 2002) a major middleware standard.

MDA is model-driven because it uses models to direct the complete lifecycle of a system. All artifacts such as requirement specifications, architecture descriptions, design descriptions and code, are regarded as models. MDA provides an approach for specifying a system independently of the platforms that it supports, specifying platforms, selecting a particular platform for the system, and transforming the system specification into one implementation for the selected particular platform.

Why MDA? OMG has focused on the creation of open specifications to encourage application interoperability. It was defined to solve enterprise application integration. A middleware describes a piece of software that connects two or more software applications, allowing them to exchange data. To achieve this, it must be implemented for all different languages and platforms that need linking.

With the emergence of internet applications, the interoperability problem moved from the integration of platforms and programming languages on a company intranet to the integration of different middleware on Internet. In this situation, the middleware is part of the problem itself. The original inspiration around the definition of MDA had to do with this internet middleware integration problem. Apart from interoperability reasons, there are other good benefits to use MDA such as to improve the productivity, code and processes quality and, software maintenance costs.

MDA defines a framework that separates the specification of the system functionality from its implementation on a specific platform. It distinguishes different kinds of models:

  • Computation Independent Model (CIM), a model that describes a system from the computation independent viewpoint.

  • Platform Independent Model (PIM), a model with a high level of abstraction that is independent of any implementation technology.

  • Platform Specific Model (PSM), a tailored model to specify the system in terms of the implementation constructs available in one specific platform.

  • Implementation Specific Model (ISM), a description (specification) of the system in source code.

The Unified Modeling Language (UML) (UML, 2009a) (UML, 2009b) combined with the Object Constraint Language (OCL) (OCL, 2006) is the most widely used way for writing either PIMs or PSMs.

Model Driven Development (MDD) refers to a range of development approaches that are based on the use of software models as first class entities. (Sztipanovits and Karsai, 1997) and (Kulkarni and Reddy, 2005) describe approaches for MDD. Selic (2006) positions UML 2 as a model driven development tool. Hailpern & Tarr (2006) illustrate “the good, the bad and the ugly” of MDD and improvements to meet major challenges at all stages of the software life cycle. France and Rumpe (2007) describe a research roadmap of MDD of complex software.

MDA is the specific realization of MDD proposed by OMG. It is carried out as a sequence of model transformations: the process of converting one model into another one of the same system preserving some kind of equivalence relation between them.

Complete Chapter List

Search this Book:
Reset