What is MDA?
We are presently witnessing an important paradigm shift occurring in the area of information system construction, namely from object and component technology to model technology. The object technology revolution has allowed the replacement of the more than twenty-years old step-wise procedural decomposition paradigm by the more fashionable object composition paradigm. Surprisingly this evolution seems itself to be triggering today another even more radical change, towards model transformation.
To understand the extent and the real meaning of the recent move from object-based to model-based architectures of information systems, it is very instructive to study the proposed new vision of the OMG (Object Management Group) called Model Driven Architecture (MDA) [1], [1]. The OMG has proposed a modeling language called UML (Unified Modeling Language) that is a great industrial success, but which applicability scope is not yet completely stabilized. In order to allow the definition of other similar languages as well, the OMG uses a general framework based on the MOF (Meta-Object Facility). Both UML and the MOF are basic building blocks of the new MDA architecture.
In this transition from code-oriented to model-oriented software production techniques, a key role is now played by the concept of meta-model. The MOF has emerged from the recognition that UML was one possible meta-model in the information system landscape, but it was not the only one. Facing the danger of having a variety of different non-compatible meta-models emerging and independently evolving (data warehouse, workflow, software process, etc.), there was an urgent need for an integration framework for all meta-models in the software development scene. The answer was thus to provide a language for defining meta-models, i.e. a meta-meta-model together with a general framework for their design, verification, evolution and maintenance. In this context, the need for general model transformation tools clearly appears. One of the main targets of MDA is parametric generation from high-level models to variable middleware platforms (CORBA, DotNet, EJB, Web, etc.).
Models are defined (constrained) by meta-models. A meta-model is an explicit specification of a set of concepts and relations between them. It is used as a consensual abstraction filter in a particular modeling activity. A meta-model defines a description language for a specific domain of interest (platform or business). For example UML describes the artifacts of an object-oriented software system. Some other meta-models may address other domains like process, organization, test, quality of service, etc. They correspond to highly specialized identified domains (platform or end-user) and their number may be very important. They are defined as separate components and many relationships exist between them. The long awaited silver bullet for separation of aspects could be finally in sight. Model engineering considers meta-models as first-class entities with low granularity and high abstraction. This emerging technology could be related and compared to knowledge engineering (ontologies), meta-data management, formal grammars and XML semi-structured data engineering.
文章来源于领测软件测试网 https://www.ltesting.net/