Reading time: 30 minutes
Model Driven Architecture (MDA) is an effective design approach that is taken by developers to capture the project requirements, plans and implementation design and follow it to implement the system.
- MDA is a software design approach launched in 2001 by Object Management Group (OMG).
- System functionality is first defined as Platform Independent Model (PIM) through domain-specific language like CORBA, .Net, the Web etc.
- PIM then translated to platform-specific models (PSM) through domain-specific or general purpose language like Java, C#, Python, etc.
- Translations between PIM and PSMs done using automated tools, like model transformation tools.
- MDA model is related to multiple standards, such as Unified Modeling Language (UML)
MDA is intended to support the model-driven engineering of software systems. Developed by the Object Management Group (OMG) in 2001. The MDA is a specification that provides a set of guidelines for structuring specifications expressed as models. MDA is an open and vendor-neutral architectural framework that leverages associated OMG standards (and models specifically) within the systems development lifecycle across various domains and technologies.
The overall process of MDA is documented in a document produced and regularly maintained by the OMG and called the MDA Guide. The principles of MDA can also be applied to other areas like business process modelling where the architecture and technology neutral PIM is mapped onto either system or manual processes.
Note that the term “architecture” in MDA does not refer to the architecture of the system being modelled but rather to the architecture of the various standards and model forms that serve as the technology basis for MDA. One fundamental aspect of MDA is its ability to address the complete development lifecycle, covering
analysis and design, programming, testing, component assembly as well as deployment and maintenance.
MDA itself is not a new OMG specification but rather an approach to software development which is enabled by existing OMG specifications such as the Unified Modeling Language (UML), the Meta Object Facility (MOF) and the Common Warehouse Metamodel (CWM). Other adopted technologies which are of interest are the UML Profile for Enterprise Distributed Object Computing (EDOC),including its mapping to EJB, and the CORBA Component Model (CCM). Since MDA is the topic of interest here, we will not be seeing the other OMG specifications.The MDA approach is aimed at separating design from architecture. Design: Addresses the functional requirements (use cases) of the application.
Architecture: Infrastructure for non-functional requirements like scalability, reliability and performance.
Advantages of MDA
The advantages of MDA are as follows.
- Portability: The migration of existing functionalities to new environments and platforms, as per the business requirements, can be rapidly done.
- Productivity and Time-to-Market: Many of the tasks are automated and the development team can concentrate on the core logic. Thus productivity is increased and time to reach market becomes shorter.
- Quality: The consistency and reliability of the components built, contributes to the overall quality of the system.
- Integration: The MDA greatly facilitates the production of integration bridges with legacy and/or external system.
- Maintenance: Since the design is available in a machine-readable form, analysts, developers and testers can directly access the specifications of the system and thus maintenance process is simplified.
- Testing and Simulation: The models can be validated against requirements and tested against various infrastructures.
- Return on Investment: The investments done on tools generates greater value
The following are the important concepts related to MDA:
System: The context of MDA is the software system, either pre-existing or the one being built.
Model: A formal specification of the function, structure and behavior of a system in a given context.A model is usually represented by a combination of pictures and text, the formal notation being UML. In order for the specification to be formal, a model is expressed in XML in accordance with a well-defined schema (XMI). This is because, XML has a well-defined semantics associated with each of its constructs, which makes it more meaningful than a diagram with shapes and lines.
Model-driven: An approach to software development, where models are the primary sources of documentation, analysis, design, construction, deployment and maintenance of a system.
Architecture: The specification of the parts and connectors of a system, and the rules that define how the parts interact using the connectors. In MDA, inter-related models are used to represent
the parts, connectors and rules.
Viewpoint: An abstraction technique for focusing on a particular set of concerns within a system. A viewpoint can also be represented by one or more models. Three default MDA viewpoints: computation independent, platform independent and platform specific
MDA specifies three default viewpoints on a system: computation independent, platform independent and a platform specific.
- The computation independent viewpoint focuses on the context and requirements of the system without consideration for its structure or processing.
- The platform independent viewpoint focuses on the operational capabilities of a system outside the context of a specific platform (or set of platforms) by showing only those parts of a complete specification that can be abstracted out of that platform. A platform specific viewpoint augments a platform independent viewpoint with details relating to the use of a specific platform.
Platform: A set of subsystems and technologies that provide a coherent set of functionality through interfaces and usage patterns. Common examples of platforms are operating systems, programming languages, databases, user interfaces, middleware solutions, etc.
Platform Independence: A characteristic exhibited by a model when it is expressed independently of the features of another platform. Independence is a measure of abstraction, that separates one platform from another.
Platform Model: A platform model provides the set of technical concepts representing the constituent elements and the services it provides. Platform model also specifies the constraints on the use of the elements and services by other parts of the system.
Model Transformation: The process by which one model is converted to another, within the same system is called Model Transformation. The Transformation combines the concepts of platform, independent model with additional details to produce a platform specific model.
Implementation: A specification that provides the necessary details for constructing a system and rolling it out for operation
There are three major MDA models specified by MDA based on the three viewpoints stated in the previous slide. These models can perhaps more accurately be described as layers of abstraction since within each of these three layers a set of models can be constructed, each one corresponding to a more focused view of the system (user interface, information, engineering, architecture, etc.).
Computation Independent Model (CIM): It is termed business or domain model because it uses a vocabulary familiar to the subject matter experts. Provides exact specifications as to what the system must do but hides all the IT specifications. This is to ensure the model remains independent of how the system will be implemented. The role of CIM is significant in bridging the gap that exists between the subject matter experts and IT people who implement the system. In an MDA specification, CIM requirements should be traceable to the PIM and PSM constructs that implement them.
Platform Independent Model (PIM): This model exhibits its degree of independence so that it could be mapped to one or more platforms. To make this happen, a set of services is first defined in a way, that abstracts out technical details. Other models then specify a realization of these services in a platform-specific manner.
Platform Specific Model (PSM): A combination of specifications mentioned in PIM and additional details, which elaborates how a system uses a particular platform. A PSM is considered abstract,if it does not include details of implementing the platform. In these cases, it relies on other explicit or implicit models that contain these details.
With this, you have the complete knowledge of Model Driven Architecture (MDA). Enjoy.