1.What isMDA
MDA (Model Driven Architecture)Is a model-driven architecture, which is composedOMGDefine a software development framework. It is based onUMLAnd other industrial standard frameworks that support software design and visualization, storage, and exchange of models. AndUMLCompared,MDAA machine-readable and highly abstract model can be created. These models are stored in a standardized manner independently of the implementation technology.MDAThe modeling language is used asProgramming LanguageIt is not just a design language.MDAThe key is that the model plays a very important role in software development.
MDA is derived from the well-known idea of separating system operation specifications from the details of how the system uses the underlying platform capabilities. MDA provides a way (through related tools) to standardize a platform independent system, standardize the platform, select a specific implementation platform for the system, and convert the system specifications to a specific implementation platform. The three main goals of MDA are: lightweight, interoperability, and reusability through the separation of modularity.
InMDAThe software development process is driven by the Modeling Behavior of the software system. Below isMDASoftware development cycle:
MDA There is no big difference between the life cycle and the traditional life cycle. The main difference is that the artifacts created during the development process, including Pim ( Platform Independent Model , Platform-independent model ), PSM ( Platform specific model , Platform-related models) andCode. Pim Is a model with a high abstraction level and independent implementation technology. Pim Is converted to one or more PSM . PSM Is tailored to a specific implementation technology. For example, EJB PSM Yes EJB System Model of structure expression. The last step of development is PSM Changed to code, PSM It is closely related to application technologies. The transformation from model to model or from model to code in the traditional development process is manually completed. However MDA The changes are automatically completed by the tool. Slave Pim To PSM , And then from PSM The code can be implemented by tools. Pim, SMS, and code models are used as design artifacts in the software development lifecycle. In traditional development methods, documents and charts are used. What's important is that they represent abstraction of different levels of systems, looking at our systems from different perspectives, and converting high-level PIM to the capabilities of MSPs to improve the abstraction level. This allows developers to have a clearer understanding of the entire system architecture without being "contaminated" by specific implementation technologies. At the same time, it also reduces the workload of developers for complex systems.
MDATo improve the efficiency of software development, enhance the portability, collaborative working ability and maintainability of the software, as well as the convenience of documentation.MDAIt is predicted by the object-oriented technical community as the most important methodology in the next two years.The main problem with modeling today is that it is only a practical exercise for many enterprises. This causes the model and code to be not synchronized. The Code will be constantly modified, and the model will not be updated. This will make the model meaningless. The key to bridging the gap between modeling and development lies in turning modeling into an essential part of development.MDA is a model-driven development framework, and its vision is to define a new way to describe and create a system. MDA makes the purpose of UML go further, not just beautiful pictures. Many experts predict that MDA may lead us to another golden age of software development.
2.MDAFramework
MDA separates software system models into platform-independent models (PIM) and specific platform models (MSPs). At the same time, they can be unified through conversion rules, in this way, we try to get rid of the dilemma caused by demand changes. The platform-independent model Pim is a high-level abstraction of the system. It does not include any information related to the implementation technology. The platform-specific model PSM is a platform-specific model. In the MDA framework, the platform-independent modeling language is used to build the platform-independent model Pim, and then the ing rules of specific platforms and implementation languages are used, convert PIM to generate the platform-related model, and finally generate the application.ProgramCode and test framework.
MDAThe Framework's "Building Materials" includes: High-level models; one or more standard and precisely defined languages used to compile high-level models;PimTransformPSMThe language of these definitions, which can be executed by the conversion tool, the tool that can execute the transformation definition, and the tool that can execute the transformation definition.PSMCode Conversion Tool.
YesMDAThe main elements of the framework include the model,Pim,PSMLanguage, transform, transform definition, and transform tool.MDA is an open architecture neutral to software vendors. It supports different application fields and technical platforms and can become a lever between application fields and specific technical platforms. In the development path of MDA, Pim represents the modeling of requirements, and PSM represents the model after applying specific technologies, which makes MDA a lever between requirements and technologies; their respective changes can be independent of each other, without the close integration of business logic and implementation technology. At the same time, MDA can bridge the gap between them through conversion, this protects our investment. The MDA development path allows our system to be flexibly implemented, integrated, maintained, and tested. The simplicity, interoperability, and reusability of the system can be maintained for a long time and can respond to future changes.
3.MDAStatus quo
MDA is still in development, MDA is still evolving. Although MDA is thriving, people can see its problems. MDA the biggest benefit is the persistent value of the business model, however, the cost is to increase the abstraction layer. At present, the conversion between layers is not as smooth as we expected, at least, from PIM to PSM , from PSM to code, this implementation process is far more difficult than generating machine code from 3gl . In terms of modeling technology, UML is exposing its inherent defects, it needs to expand more mechanisms to support precise modeling and analysis models, although OCL provides some support for precise modeling, however, such support is far from the ideal of an executable model. looking back at the history of MDA, we can see that the success of UML has laid a solid foundation for the generation of MDA, at the same time, I also felt that in the long journey from software technology to software engineering, MDA was only a small step forward, but it set off a wave of waves for the entire software industry, it will have a profound impact on future IT technologies in terms of model definition and development process.
CurrentlyIn the market of MDA development tools, most of the large manufacturers such as IBM and Borland are cautious because the standardization of the transformation methods from PIM to SMS has not yet been completed, although some of the MDA functions are provided in their development tools, they do not fully comply with the MDA specifications defined by OMG. Even so, in addition to adding the MDA function to rational, IBM also proposed the innovative MDA Code Generation System Project EMF (eclipse modeling framework) in eclipse, an open-source project, it can be seen that IBM attaches great importance to the developing technology of MDA. Borland claims that they are also focusing on the MDA technology and are ready to configure the automatic generation function of the model based on MDA in together. Compared with the cool-down and tolerance of major manufacturers in the industry, some small and medium manufacturers are particularly active, such as the famous arcstyler of interactive objects and the famous optimalj of compuware, in addition, open-source version of andromda and other OMG-compliant MDA tools have been widely used in some projects and achieved remarkable results.
4.MDARelated Standards
To achieveMDAThis grand idea,OMGA series of standards have been developed:
UML : UML by MDA describes various models. It is not born for MDA , but is currently the most popular modeling language, UML already occupies the global modeling language field 90 % market share, has become a de facto standard for modeling languages, therefore, OMG uses it as the basis of MDA technology is naturally a wise choice. It is the basis of MDA , it is also the most powerful weapon for MDA .
MOF : MOF ( Meta Object Facility metadata mechanism) is a higher level abstraction than UML , it aims to describe UML extensions or other classes that may appear in the future UML modeling language. Although MOF is not generated by MDA , however, we can appreciate the painstaking efforts and long-term eyes of OMG engineers.
XMI:XMI(XML-based Metadata Interchange) Is based onXMLMetadata Exchange. It passes the standardizedXMLDocument Format andDtds(Document Type Definitions) DefinesXML. This makes it very important to pass the model as the final product in a variety of tools. It ensuresMDAIt will not be added with a new constraint after it is broken.
CWM:CWM(Common warehouse metamodelThe metadata model of the public warehouse) provides a means of data format transformation, which can be used at any level of the model.CWMTo describe the ing rules between the two data models. For example, you can convert a data entity from a relational databaseXMLFormat. InMOFUnder the framework,CWMThis makes it possible to use a universal data model conversion engine.
InOMGIn the blueprint,UML,MOF,XMI,CWMAnd other standards to solveMDAModeling, scaling, switching, and transformation.OMGTrying to expand through standardized definitionMDAApplication Scope. At the same time, through such a scalable modeling language environment,ItVendors can freely implement their own modeling languages and ing between languages and executable code. HoweverOMGUnder the standardization framework.