Introduction to Model Driven Architecture
The MDA or ModelDriven Architecture is nothing but an approach to design software.MDA was introduced in 2001 by OMG or Object Management Group. In this approach, the idea is to establish guidelines that are further used for specifying structures of the model. MDA relates to standards like Unified Modelling Language (UML), Common Warehouse Model (CWM), Meta-Object Facility (MOF), Object Management Architecture (OMA) and XML Metadata Interchange (XMI). Here one thing is noteworthy that architecture in MDA doesn’t refer to software systems’ architecture; rather, it refers to the architecture of standards followed in software systems architecture. MDA provides guidelines for transformation techniques, which are used to transform platform-independent models into platform-specific models. With MDA techniques, it is possible to transform between platform-specific models also.
What is Model Driven Architecture?
In simple words, MDA is an approach used for software development, design, and implementation. MDA provides a set of guidelines for specifications used in structuring software models. It distinguishes the application logic from platform technology. According to MDA System, first is defined with PIM (platform-independent model) with the information of business functionality and application logic which is not related to any technology or any language. This actually insulates the application logic from any technology.
Available platforms for any model are CORBA, J2EE, .NET, Web Services, etc.; the PIM can be translated into any available model or models that are nothing but platform-specific models (PSMs). The implementation of the model may use any DSL (Domain-specific language) like C#, python, java, etc. MDA provides flexibility with its specified model transformation tools, which provides easy translation between PIM (platform-independent model) and any PSMs (Platform specific models). This flexibility provides the opportunity to explore the different models and techniques available and make the best use of them. As we see that the architecture is model-driven, so it is called model-driven architecture.
MDA brings efficiency in model creation and implementation. MDA enables translation facilities both across the platform boundaries and within the platform. This has made possible for application logic & business aspect to evolve apart from integrated platform and technology. If there is a new application logic and new enhancement in technology, both can be integrated as per the need of the business.
Model-Driven Architecture with Diagram
A day’s technologies are emerging rapidly; this creates a need to find a way to make application independent from infrastructure. This enables a business to gain a competitive advantage with the latest technologies. The approach used as per Model-driven architecture consists of the following key points:
- Define a system independent of the platform.
- Specify the available platforms.
- Chose a platform where you want to develop your system.
- Transform specifications of the system to the chosen platform.
A system is referred to as Platform independent if it has a generic description, but if the system is described using java or .Net technologies, it is referred to as platform-specific. Transformation techniques facilitated by MDA enables operations of PIM to transform to operations of PSMs.
The above diagram shows a very basic idea of how Model-driven architecture facilitates the models to communicate through transformation techniques; below diagram of how the concept of MDA works.
In the beginning, a problem statement is perceived with computation independent viewpoint (CIV). This view’s focus is to gather the system’s requirement irrespective of the computation required; thus, we get a computation independent model (CIM). CIM has all the data and information about the model. To reach any solution for any problem, there is a need to follow a process that contains certain operations. A platform-independent view (PIV) works on creating such operations or analytical approaches which are not dependent on any platform. The platform-independent model consists of all such operations without considering any features of any specific platform. A platform-specific viewpoint (PSV) considers the platform to perform operations in order to design/ implement the same. Features of a specific platform are utilized in the Platform-specific model (PSM). There might be a need to compare different platforms (might be) with prototypes to analyze the best fit for the problem in a work process.
Components of Model-Driven Architecture
As we already have discussed the features of MDA, now we shall discuss other important components like mappings and transformations.
Mappings are a set of rules or specifications that must be followed in order to transform information from PIM to PSM. Mapping considers model type to provide mappings for that specific model elements. That is how the PIM elements should be mapped to the specific PSM. Elements of PIM are marked for tracking how they are transformed. Different mappings are defined according to different models and their elements.
Transformation is a process that provides the workflow of how the PIM shall be transformed into PSM without losing any information. Mappings are used for the model as well as model instances transformation. In the case of instance, transformation PIM marks provide useful information on what instance of PIM shall be mapped as what instance in PSM.
For example, a marked PIM is to be a transformed java platform (PSM1) and the same marked to be transformed to the .Net platform (PSM2) of Microsoft. In both the PSM transformation mappings are defined in MDA, it could be the same or could be different it further depends on instances of the model considered for mapping.
MDA provides an approach to solve problems. MDA leverages the knowledge of different models to address complex problems. The model-driven architecture provides independence from the model-specific approach and lets the ideas flow in a platform-independent model. Further, this PIM information is then transformed into a Platform-specific model using transformation techniques and mappings defined in MDA. MDA provides flexibility to view/ approach the problem without any restriction of the platform. Once operations are well defined in a platform-independent system with MDA transformation, they shall be converted to PSM.
This is a guide to Model Driven Architecture. Here we also discuss model-driven architecture with a diagram along with the component. You may also have a look at the following articles to learn more –