Model Driven Architecture(MDA) is an approach to model-driven, generative software development. The MDA architecture was published as a standard by the Object Management Group( OMG) back in 2001 with the aim of combining all the results known to date about models, modeling and transformation - supplemented by other standards - into an official specification for MDA. Models are at the center of the MDA paradigm.
Thus it is the goal of the MDA architecture to represent the entire process of the production of software and with all its layers in models, so that the software can be produced even to a high portion generatively - i.e. over the transformation of models. An important side effect are the transformers developing thereby, which - if they are then completely present - a high reusability and maintainability of the program code generated in such a way ensure. In contrast to earlier approaches of the modeling all development levels - from the requirement analysis up to the implementation of the target system - are included by the MDA. Thus the process of the software development is to be altogether more efficient, more favorable regarding the costs and in a higher quality representable.
The concept of the Model Driven Architecture
The central concept of MDA consists in the separation of functional as well as technical aspects in the form of platform-independent models( PIM) and specific models( PSM), which are aligned to the respective platform and can thus both be reused independently of each other. The independence of models from a specific platform is an important argument for their reusability. Therefore, the future specification of standards in connection with the MDA architecture by the OMG is aimed at developing specifications for a universally valid definition of platforms. Frameworks such as OpenArchitectureWare are also frequently used for the automated processing of models. In addition, MDA is regarded as a further step in the direction of so-called requirements-driven software development, since the technical aspects are already separated as far as possible from the content (also semantic) aspects when applying the MDA architecture.
The basis of model-driven software development is the realization that models are important artifacts in the software development process. Thereby models are always context-related abstractions. The MDA concept now consists of generating a model for the ultimate target platform (PSM) from a very general, platform-independent model (PIM). A basic mechanism of MDA is the model transformation. First, the model-to-model transformation takes place, which derives a platform-specific model from the domain-oriented specification. Only then is the intended code generation for the respective platform realized. Accordingly, the MDA principle is based on successive models, which are explained briefly below:
Computation Independent Model (CIM) Here, the requirements of an application are summarized in a formal specification, which is independent of the realization of the system. The goal here is to describe the tasks of a system in its environment, so that CIM model is also frequently called domain or business model. Usually a glossary of the vocabulary for the corresponding domain is also connected with it. Here, diagrams of the Unified Modeling Language (UML2) such as activity, class or use case diagrams can already be used for notation.
Platform Independent Model (PIM) This refers to an abstract model that is independent of the technology of the implementation or platform. The PIM model builds on the CIM model and describes the structure and behavior of the planned software system. The diagrams of UML 2 can again be used for notation.
Platform Model (PM) According to the OMG definition, a platform can be described as a set of technologies that defines functionalities through interfaces and usage patterns. Often a platform is also described as a setup of specific architectures, technologies and functionalities. If an application is based on a platform, the application can access the entire functionality of the platform without having to go into the details of how the functionality is realized by the platform. Generic platforms offer concepts such as objects, inheritance or interfaces. Technological platforms are for example CORBA for distributed and heterogeneous software systems or Java 2 Enterprise edition( J2EE) as component-oriented platform. Manufacturer-specific platforms are established by a high use as for example the BEA WebLogic server or Microsoft . NET. Thus, a Platform Model( PM) always defines the technical concepts and elements of a particular platform, providing elements necessary for modeling a platform-specific software system.
Platform Specific Model (PSM) The PSM extends the general PIM model to include aspects that are purely platform-specific. A platform-specific PSM model can be derived from this PIM model by means of a model transformation, whereby its properties were specified by the platform model (PM). The implementation is then adapted to the properties of the respective target platform. The PSM model can be translated into program code by a model-to-code transformation, since all the information for the automated generation of code has now been brought together in the platform-specific model.