MDA

MDA is a technique to represent the functions of an application as a diagram and thereby enables us to develop software etc. based on the model information. Model Driven Architecture.

Overview of MDA
MDA is a technique to develop software etc. by focusing on models instead of source codes.

MDA creates platform-independent models in the business analysis and design phase. Because models are not dependent on any specific platform, once the models are created, we do not need to conduct analysis of business processes to create models tailored to each platform even when we develop multiple software products or develop software customized for each platform. After models are defined, by using such models, we also can automatically map them to specific languages or products and achieve system administration and system integration.

The remarkable advantage of MDA is that we can change the business and the system separately by modeling business without depending on OS or languages. By componentizing functions of software etc. that support business process execution, we can develop or modify each individual function. MDA was proposed by a group of organizations including OMG (Object Management Group), a standards organization, in 2001.

Procedure of MDA
In general, development of software etc. is done by following a cycle comprised of business analysis, design, development, and maintenance phase. However, MDA creates the models listed below to develop software etc..
 * CIM: Models of functions that are to be automated by software etc. Computation-Independent Model.
 * PIM: Business models that are independent of OS or languages. Created in the analysis phase. Platform-Independent Model.

After PIM is created, PSM is sometimes created. We can convert PIM to PSM and PSM to source codes in an automated manner by using tools.

PSM: Models dedicated to a specific platform (OS, language, etc.). Created in the detail design phase. Platform-Specific Model.

The development procedure is shown below.
 * 1) Based on users' requirements and results of business analysis, create CIM.
 * 2) Based on CIM, create PIM as a business process that utilizes functions of software etc.
 * 3) Based on PIM, create PSM that is specialized for each platform technology.
 * 4) Based on the information of PIM or PSM, implement software etc. by converting the models into actual source codes by using tools. To do such conversion, we can rely on the standard called QVT.

MDA enhances the re-usability of models by independently defining models in each phase of the development process.

Tools advocating MDA can be categorized into two types.
 * Tools mainly aiming at creation of framework, including data modeling
 * Tools aiming at automatic generation of source codes, including behavior modeling

UML
UML (Unified Modeling Language) is a language that unifies and standardizes the notations for various models used in system development. It is used to represent PIM and PSM. Moreover, UML Profile can be used to exchange models designed for a specific purpose.

MOF
MOF (Meta Object Facility) is a model to create models. It defines concepts required in programming languages.

XMI
XMI (XML Metadata Interchange) converts model information based on MOF into the XML format. It is the technical specification that enables the model exchange among tools used in each step of the development process.

CWM
CWM (Common Warehose MetaModel) is the technical specification to define models for a database (data warehouse).

Outstanding Issues Regarding MDA
Regarding MDA, there is a gap between what is proposed by OMG and how it is generally understood. The characteristic of OMG's MDA is that "visual modeling tools enable information exchange with other design tools, applications, and databases." However, on the other hand, the understanding of many people is that "modeling tools enable the automatic code generation to develop software etc." There is a slight disagreement between the two, and the concept of MDA has not been fully defined yet.

In addition, there are some other issues as shown below.
 * Even though MDA tools, in nature, do not depend on a platform, some tool vendors bundle all of their tools to enclose customers.
 * The standardization concerning MDA has not made enough progress.
 * Development based on MDA requires special skills, and creation of MDA models also requires significant efforts.
 * If we actually create models to develop software etc., it would make the models very complicated.

Relationship of MDA and BPM/BPMN
By developing individual software etc. based on MDA, we can make the continuous process improvement by BPM more effective. By componentizing individual software etc. used in the processes, we can partly modify business processes and also introduce new software etc. Furthermore, it also enables us to develop and introduce software etc. in a process-oriented manner.

In addition, there is BPMN, another modeling notation different from UML. Both UML and BPMN are provided by OMG. However, BPMN is considered as a standard notation to model business processes as workflow. In the future, it is expected that models in MDA phases can be created by using BPMN and those models are exchanged.

Related Articles

 * OMG
 * BPM
 * BPMN
 * SOA