Designing an application is not a child’s play in any sense and developing an enhanced user experience for the same is quite a task at hand. For this matter, there are numerous approaches adopted by developers and enterprises to design better application and its interface to transform the entire user experience.
User interface is the gateway of users to your application, a rather common point of interaction between the user and system that defines the user experience(UX). To develop and design better interfaces the architecture and infrastructure of applications should be optimized to meet the customer’s requirements.
Model-Driven Architecture(MDA): What is MDA?
Object management group initiated the Model Driven Architecture(MDA), as an approach to develop the system, which is more flexible and yet, stays true to customer needs. This approach leverages the modular architecture throughout the development process. This approach is divided into three abstract layers of modular transformation.
Computer Independent Model(CIM):
It represents the specification of functionalities and describes, what system offers while hiding the technical specifications.
Platform Independent Model(PIM):
A common concept of application can be extracted independently from platform target through PIM. It also allows mapping to one or more platforms.
Platform Specified Model(PSM):
It combines the PIM model with the specifications of a particular platform. It allows the model to conform to a specific platform and helps the generation of appropriate source code.
Image Source: Schema of Model Adaptation
The Transformation Process for General MDA:
It transforms the models from one layer to another by transformation from one abstracted layer or model to another by transformation from one model view to a lesser view. The target meta-model can be tapped through the addition of information to the models.
There are two types of transformation approaches that can be used in the MDA approach for designing an application.
Model to Model(M2M):
It is a transformation process of models from CIM to PIM or from PIM to PSM. In simple words, it can be said as an automatic generation of m target models from n source models. Each model conforms to a reference model, which can be the same for several models. M2M transformation allows having productive modular transformation, independently of any execution platform.
Model to Text(M2T):
Model to Text is important to model the management process for the generation of text from models. It allows the generation of codes from the entry model PSM to a programming language related to the chosen platform. The generation of the text is not limited to codes, it can be anything like, documents, manuals, etc. as it is independent of the target language. In M2T transformations, the text is often arbitrary structure and does not conform to any meta-model.
Using Model-Driven Development Method for Apps:
A model-driven development method can be used to enable automatic generation of Model-View-Controller type rich applications. The model-driven method will focus on the graphical part by initiating a simplified design model. It uses graphical and visual components to help developers construct an application visually. it exploits the abstraction model and later converts the same into a working software or application.
PIM and PSM Proposed Meta-Models:
The development of meta-models which initiate the modeling process is specifically done more commonly to reduce the complexity for developers. Meta-models translate the user’s vision and need in terms of actions and interactions, by representing the user requirements from the system in the graphical point of view.
PSM meta-model is developed, taking into account the relation between different layers of MVC architecture. The MVC architecture is made of View/Controller layers that describe the structure and content of views in terms of graphical elements, while the navigation flow is ensured through the controller’s handler that is connected to specified services from the model layer.
This approach ensures that enterprises can hire Indian developers or developers for any demographic that focuses on the dynamics of appearance between different layers of the application. A hierarchical relationship between graphical components based on their type can be established using the PIM and PSM based models.
Transformation of Modular Development:
Once the meta modeling phase is over, the transformation of models takes place. It transforms the source models into the output models or the target models. Mapping and relations of modular layers are considered as the pre-defined specializations of the transformation process. Mapping is a uni-directional transformation process, whereas the relations are considered bi-directional transformations.
Transformation by Type:
In a model-driven development method, the transformation has the sequence of CIM to PIM, PIM to PIM, PIM to PSM and PSM to code. A computational independent model can be refined. It means that a CIM model can be mapped to other CIM models and the same can be done with PIM. Though, the transformation of models in a backward direction is not possible. i.e. PIM to CIM, PSM to PIM or PSM to CIM.
Transformation by Complexity:
The transformation process in model-driven development becomes complex due to the involvement of models from different sources. Models from different sources are combined through transformation to achieve one target model. The transformation process is categorized as simple or merge based on the number of model sources involved in the transformation.
Transformation Based on Abstraction Layer:
Transformations can be defined as three layers of abstraction- models, instances and meta-models. A transformation at a meta-model level is the conversion of specific source models into other types of models or targets models. Transformation affects all types of sourced elements of a model.
A transformation at a model level includes the identification of particular model elements that will be transformed with certain pre-defined rules and transformation at an instance level involves the identification of an object that can be transformed in a certain way.
How to Set the Rules of Transformation?
Transformation rules are defined through certain marks-types, patterns, templates or UML profile elements. These definitions help in selecting the elements on which the rules can be applied. These marks are sometimes added as separate inputs or as a part of the elements so that they don’t pollute the source models.
Models itself provides marks such as classes and stereotypes of UML profiles. Other patterns identifiable in the source models are also used as a mark in a transformation rule, other marks are only required for the mappings and are not integrated in the source model. For example, the selection of certain classes or states are kept in separate marking models and combined with the source models during the mapping process.
Templates are external input providers of input for transformations. These templates are more like patterns, but with additional information to guide the transformation. This additional information is provided by the designer from the knowledge of the application domain and platform.
Execution of The Process:
Transformation processes are categorized under automatic, semi-automatic and manual based on source models and target models selected by the designer. A transformation can be called automatic, if it does not require any intervention by the user or the system. If the transformation is semi-automatic the decision is taken by the user of which source model will be transformed to its target model. The designer has the final say when it comes to the manual transformation.
The development process of applications can be a complex task and using a simplified and flexible approach like model-driven architecture can help make it more efficient. Graphic user interface that facilitates the first point of contact between the user and the system can leverage such a method to induce a visual approach of designing and achieving better applications UI.
The bottom line to any business today is user experience and that is where a model-driven development approach can render higher user experiences through flexible systems based on modular development.