Model Driven Architecture
The OMG turned its attention from Common Object Request Broker Architecture to MDA with a white paper in 2000, beginning an effort at classification and standardization and in the process producing a new lexicon, including core notions of the platform-independent model (PIM), platform-specific model (PSM) and Meta-Object Facility (MOF).
UML has a role in MDA, but models do not have to be created in UML to conform to the OMG’s MDA. Instead, both text-based and graphical languages must conform to MOF, which could be called a kind of mother language. (However, it’s hard to say what came first; MOF was abstracted from UML, and UML is one of MOF’s best examples.) MOF is general and universal enough that the disparate companies that make up the OMG do not have to agree to use the same modeling languages. They only have to agree to follow the same principles.
After requirements analysis, modeling in MDA begins with PIMs. These models are meant to capture an algorithm but to ignore the computer hardware and software that will be used to implement them. The models are intended to be pure expressions of the algorithm, with the best division between design and implementation possible.
PIMs are translated into PSMs in the next stage, “compilation,” in which the algorithms are made more ready to run. PSMs have features that correspond to the capabilities of hardware and software. In addition, PIMs may have been” marked” to facilitate this transformation. Finally, PSMs are translated into actual code, which will run on actual hardware or on actual middleware on actual hardware.
Automated Code
The vision behind MDA is to automate as much of the process of code generation as possible, leaving designers to focus on the algorithm instead. Using tools and languages that will make the design as good as possible, the implementation will come later and will have as little of the pesky interference of fallible humans as possible.
If the underlying hardware or operating system is changed, the model is simply "recompiled" or "retranslated" to work on the new system. If maintenance is required, the model serves as an accurate document of how the algorithm works, and only the model needs to be maintained. The idea is that implementation and coding errors will be minimized.
Fear that this process will produce inefficient code is similar to the reaction when the compilation of third- generation languages was compared to the direct writing of assembly code, which generated a fear that in many cases proved to be unfounded.
The OMG lists several large projects on its Web site that have successfully used automated MDA to produce efficient, successful code with fewer resources than would have been used in more traditional projects. These include work done for Wisconsin's Department of Workforce Development, Postgirot Bank AB, Looking Glass Networks Inc., Credit Suisse Group and others.
With the software crisis introduced in the 1960s, people have realized the importance of software engineering. The emergence of the new methods such as object-oriented, Component-based development, design patterns etc.promoted the development of software engineering and solved a part of the software developing difficulty. But some problems still have not be solved thoroughly. For instance, documents and the source code are out of joint during the develop process, and soft interoperability in different platforms. To these problems,OMG released a fire-new software development framework----Model Driven Architecture(MDA).
Firstly this paper analyzes the problems that traditional software developing unable
to overcome,then provides the concept of MDA-based developing pattern.It separates the
system requirement from the programming,and focuses on creating the Platform
Independent Model(PIM).
This paper does research systematically on the basic theories of MDA,including
MDA model architecture,Meta Object Facility,Unified Modeling Language,XML
Metadata Interchange and Common Warehouse Metamodel.It elucidates the advantage
and the challenge of MDA-based developing pattern,analyzes the definition and the rules
about the model transformation.Finally,taking the case of a part of Rural Social
Endowment Insurance System,the paper explains the process about how to use the
MDA-based developing pattern to develop software.It comes through creating PIM and
transforming of PIM-PSM and PSM-Code,until the system’s first step carries out.The
case indicated the advantage of the MDA-based developing pattern synchronizing the
document and the source code and improving the software reusing and software quality.
As we all know, there are lots of redundant work in the software development process, which also tedious repetitive work that is not efficient, constraining the development of individuals and enterprises.
The author has been considering whether or not there is a model-based development. Development can only repeat some of the work to the computer to handles the code generated automatically by the computer. Automatic code generation techniques based on model-driven development (MDA) as a theoretical basis research and implementation in the J2EE platform and the main direction of research is rapid development of information management systems. Automatic Code Generation of the study is based on the idea of MDA, so the author is thinking about it from MDA.
MDA (Model Driven Architecture) is a model-driven framework. It is a software development framework defined by the OMG. It can be for any software development and not be application platform, language and other factors affecting development. MDA software for the platform-independent model of the separation model PIM and PSM model specific platform, the same time to change their rules to unify. PIM model in the range between demand analysis and design will be responsible for the design needs change; and PSM model lies between design and code in which is designed to transfer into code. MDA traced throughout the entire software development and gave it to play a very important role in software development roles. The OMG's definition of MDA is just the development framework. Although the major manufacturers have made great efforts to study the based on MDA software products, b} so far there is no real sense of a product's full support MDA.Automatic Code Generation author's ideology is based on the MDA, but it is targeted toward specific areas, specific model under specific language study. Automatic code generation technology now being studied in the field of information management systems. Taken into account in the development of MIS system, similar to the development of the module, which is why it easy for a lot of duplication of effort. Automatic Code Generation aims to reduce duplication of development, so the authoer choses MIS as a research direction. MDA model is the core of the same model without Automatic Code Generation.Currently examining the data model; a growth of the data is deleted, and changed four inquiries operation. Frequently appeared as a result of such model in the development process, some of this work into the computer automatically, also has a practical significance. No mention is not what the final language Java.The main characteristic is its platform independence. By utilizing this property, but also help to the model code conversion. Particularly for cross-system, cross-platform, the use of the Web interface.eventually they can take advantage of automatic code generation technology to achieve rapid construction
Automatic code generation prototype system was constructed in the J2EE environment. It is mainly involved in the process of achieving a metadata component library concept and template. type reflex, DHTML and XML technology. Prototype development of the entire system is divided into three phases: Phase creation model, code generation and code-period operating period. Code generation phase model has become the preferred template definition of a series of documents and the rules. Automatic Code Generation to prepare. Operation of the code, the code actually operates on an established Framework.The Framework includes the initialization of components, information dissemination components, data conversion components and so on. With the support of these components, automatic generation of code to operate normally. Automatic code generation prototype is conducive to the rapid development of new projects and the premise of the project includes a new model of the prototype system. Corresponding adjustments in the template documents and information related to the definition of Meta,finally, automatic generation tool also created a new framework of the overall project. The author also "Inner Management System of ICBC 20d Dept" project found more examples: Automatic Code Generation prototype based on the efficiency in certain circumstances better than the traditional pattern of development, validating the use of automatic code generation technology development feasibility and efficiency.
Currently, the entire automatic code generation prototype system has been completed; it is the main application field of the development of information management systems and invested in a number of projects implemented and achieved good results. Automatic Generation of writers involved in the design and implementation of the code, the code automatically generated by the entire design framework a core of the model to changes in the code, and also participated in the development of public components. But automatic code generation technology is not perfect; still need further testing and improvement.
Along with development of the computer technology continuously, the requests of
software and hardware are too more and more high. For the sake of continuously raising the efficiency of software development, people have always been at work hard to investigate. The emergence of the new methods such as object-oriented, component-based development, patterns, distributed computing etc. make a certain contribution on raising software quantity and prolonging fifes. However people usually seem to be at a loss while facing the problems such as interoperability of different platform, portability of software and desynchronized of documentation and codes. The Model Driven Architecture (MDA) is a new framework for software development that is defined by the Object Management Group (OMG) in 2001.It not only resolves the existed problems of traditional software development, but also complements each other with other new methods. So it uncovers a new literary piece for the software development.
Key to MDA is within MDA the software development process is driven by the activity of modeling your software system. MDA raises the level of abstraction to the degree of the model. Within MDA the developers transfer the center of gravity to model of the business logic but ignore the target platform. The model of software system is divided into the Platform Independent Model (PIM) and the Platform Specific Model (PSM) by MDA.The PIM has a high level of abstraction and does not include any information of implementation technology. The PSM is a model, which is related with specific platform. In framework of MDA, first a PIM is set up by platform independent language, then the PIM is turn to generate one or many PSMs according to the model transformation rules based on specific platform and implementation language. The application codes and the test frames are generated finally. The MDA applies XMI, MOF, OCL and CWM etc. to set up the business model. As long as the technology or platform is replaced, model can be immediately converted to other procedure structures such as .NET, JAVA, CORBA, Web Services etc.
The MDA provides many business applications such as event handling, safe mechanism, trade and catalogue service etc. Even it is applied to the differently field including health care, electronic commerce, manufacturing, finance, telecommunication etc. Because of the adjustment of the business model it is can be seen that this mode of development implements the reusing of model on the different platforms.
This thesis studies the architecture of MDA and the framework of metamodeling
systematically, and the level of metamodeling is made to expatiate thoroughly. The core
criterions of MDA which are defined by OMG such as Unified Modeling Language(UML),Meta Object Facility(MOF), Common Warehouse Metamodel(CWM)and XMI. Metamodel Interchange(XMI) is studied thoroughly. On the basic of analyzing the current supporting tools of MDA, I summarize eight problems of manual intervention within the model transformation such as setting initial value, marking component etc. The PIM of the on-line project management system is transformed into the relation, EJB and Web PSMs, and the PSMs are transformed into the code models via the transformation rules at each level based on the formalization of transformation rules. This thesis makes use of a MDA development tool-ArcStyler that implements the transaction of model and the generation of code in the system. It is a proof that the development mode of MDA is possible in practice finally.
Model Driven Architecture(MDA) is a general modeling standard for software systems. It is proposed by Object Management Group(OMG), the largest organization of software industry standard around the world. MDA's main content includes: a unified and precise Platform Independent Model(PIM) should be created at first, then with the help of transforming tools, this PIM will be transformed automatically to Platform Specific Model(PSM), which may be based different concrete technologies. Finally, code and
deployment archive will also be generated. Through this process, MDA will improve the
productivity of software, and make it easier to develop platform-crossing systems.
This research is based on the basic theories of MDA, and makes some extensions’ to them. The aim of this research is to develop a complete MDA process, which starts from Metamodel design and model creating to model transformation and system generation. More important things is the extension of the process to the general MDA process. It reflects on an extended UML meta model and a new transformation process which is lighter weighted and easier to use.
In the beginning part of this work, some problems that happen often in the Enterprise Applications' development will be proposed, then I will give a brief introduction about MDA's basic theory. The main part of this work is composed of 3 topics. Firstly, it wills Great an Enterprise domain Metamodel, as well as the description of the metamodel by a UML2 profile. The second part is a light weight model transformation approach and its realization with several open source software and a technical framework. The last part analyzed model configuration management and other possible topics about MDA.
Model Driven Architecture is a new software development paradigm released by Object Management Group. Comparing with traditional development method, MDA makes the developer's focus shift from code to model and makes system's model associate tightly with its realization, so it heightens the abstract tier of system development. This model-centric development paradigm provides a new method for solving some problems in current software development (e.g. demand alteration, document maintenance, system integration).
This dissertation introduces the basic concepts and core specifications in Model Driven Architecture and analyses realization technologies of model transition.
The principle of AndroMDA, an open source tool which supports MDA, is dissertated, and the modeling methods which are separately suitable for Hibernate Cartridge, Spring Cartridge and Bpm4Struts Cartridge, three model transition components of AndroMDA, are expounded.
A development method of application system based on AndroMDA is dissertated completely. This method follows the thought of MDA, solves some deficiencies of traditional development, and presents a flow of using this method. Because the development of model transition component is very important in this development process, a method of extending the model transition component of AndroMDA is brought forward and the Bpm4Struts Cartridge is extended using this method. The extended Bpm4Struts Cartridge can generate application system's code which based on Struts framework and DWR framework from its model of presentation layer.
An application system named HBEMIS is developed using the method presented above. Firstly we construct the CIM of the system. Then we construct the PIM. At last we generate the code for PIM using AndroMDA and its model transition components, which are Hibernate Cartridge, Spring Cartridge and the extended Bpm4Struts Cartridge. To make the generated code become a system which can be delivered to our client we complement it by hand.