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 a set of guidelines which are further used for specifying structures of 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 the architecture of software systems. 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). For implementation of the model, it 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 it. 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
Now a day’s technologies are emerging rapidly, this creates need to find a way which can make application independent from infrastructure. This enables a business to gain a competitive advantage of the latest technologies. The approach used as per Model-driven architecture consists of 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 concept of MDA works.
In the beginning, a problem statement is perceived with computation independent viewpoint (CIV). The focus of this view is to gather the requirement of system irrespective of the computation required thus we get computation independent model (CIM). CIM has all the data and information about the model. In order to reach to 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). In a work process, there might be a need to compare different platforms, (might be) with prototypes to analyze the best fit for the problem.
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 to track 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 transformed java platform (PSM1) and also the same marked to be transformed to .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 platform-independent model. Further, the information from these PIM 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 diagram along with the component. You may also have a look at the following articles to learn more –