Model-driven architecture (MDA) is a software design approach for the development of software systems.
It provides a set of guidelines for the structuring of specifications, which are expressed as models.
Model-driven architecture is a kind of domain engineering,and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.
The Model-Driven Architecture approach defines system functionality using a platform-independent model (PIM) using an appropriate domain-specific language.

Then, given a platform definition model (PDM) corresponding to CORBA, .NET, the Web, etc., the PIM is translated to one or more platform-specific models (PSMs) that computers can run.
The PSM may use different Domain Specific Languages, or a General Purpose Language like Java, C#, PHP, Python, etc.. Automated tools generally perform this translation.

The OMG organization provides rough specifications rather than implementations, often as answers to Requests for Proposals (RFPs). Implementations come from private companies or open source groups.
MDA principles can also apply to other areas such as business process modeling where the PIM is translated to either automated or manual processes.

MDA approach
OMG focuses Model-driven architecture on forward engineering, i.e. producing code from abstract, human-elaborated specifications. OMG’s ADTF (Analysis and Design Task Force) group leads this effort. With some humour, the group chose ADM (MDA backwards) to name the study of reverse engineering.
ADM decodes to Architecture-Driven Modernization. The objective of ADM is to produce standards for model-based reverse engineering of legacy systems . Knowledge Discovery Metamodel (KDM) is the furthest along of these efforts, and describes information systems in terms of various assets (programs, specifications, data, test files, database schemas, etc.).

One of the main aims of the MDA is to separate design from architecture. As the concepts and technologies used to realize designs and the concepts and technologies used to realize architectures have changed at their own pace, decoupling them allows system developers to choose from the best and most fitting in both domains. The design addresses the functional (use case) requirements while architecture provides the infrastructure through which non-functional requirements like scalability, reliability and performance are realized. MDA envisages that the platform independent model (PIM), which represents a conceptual design realizing the functional requirements, will survive changes in realization technologies and software architectures.
Of particular importance to model-driven architecture is the notion of model transformation.
A specific standard language for model transformation has been defined by OMG called QVT.

MDA tools
The OMG organization provides rough specifications rather than implementations, often as answers to Requests for Proposals (RFPs). The OMG documents the overall process in a document called the MDA Guide.
Basically, an MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels. In the following section “model” is interpreted as meaning any kind of model (e.g. a UML model) or metamodel (e.g. the CWM metamodel). In any MDA approach we have essentially two kinds of models: initial models are created manually by human agents while derived models are created automatically by programs. For example an analyst may create a UML initial model from its observation of some loose business situation while a Java model may be automatically derived from this UML model by a Model transformation operation.

An MDA tool may be one or more of the following types:
* Creation Tool: A tool used to elicit initial models and/or edit derived models.
* Analysis Tool: A tool used to check models for completeness, inconsistencies, or error and warning conditions.
Also used to calculate metrics for the model.
* Transformation Tool: A tool used to transform models into other models or into code and documentation.
* Composition Tool: A tool used to compose (i.e. to merge according to a given composition semantics) several source models,
preferably conforming to the same metamodel.
* Test Tool: A tool used to “test” models as described in Model-based testing.
* Simulation Tool: A tool used to simulate the execution of a system represented by a given model.
This is related to the subject of model execution.
* Metadata Management Tool: A tool intended to handle the general relations between different models, including the metadata on each model (e.g. author, date of creation or modification, method of creation (which tool? which transformation? etc.)) and the mutual relations between these models (i.e. one metamodel is a version of another one, one model has been derived from another one by a transformation, etc.)
* Reverse Engineering Tool: A tool intended to transform particular legacy or information artifact portfolios into full-fledged models.

Some tools perform more than one of the functions listed above. For example, some creation tools may also have transformation and test capabilities. There are other tools that are solely for creation, solely for graphical presentation, solely for transformation, etc.

One of the characteristics of MDA tools is that they mainly take models (e.g. MOF models or meta models) as input and generate models as output. In some cases however the parameters may be taken outside the MDA space like in model to text or text to model transformation tools.

Implementations of the OMG specifications come from private companies or open source groups. One important source of implementations for OMG specifications is the Eclipse Foundation. Many implementations of OMG modeling standards may be found in the Eclipse Modeling Framework (EMF) or Graphical Modeling Framework (GMF), the Eclipse foundation is also developing other tools of various profiles as GMT. Eclipse’s compliance to OMG specifications is often not strict. This is true for example for OMG’s EMOF standard, which Eclipse approximates with its ECORE implementation. More examples may be found in the M2M project implementing the QVT standard or in the M2T project implementing the MOF2Text standard.

Power RAD is being developed by Outline Systems Inc. Microsoft is proposing the DSL tools approach which is a similar approach, not based on OMG standards. Another open source project called AndroMDA provides an extensible framework for generating code using virtually any technology/platform (e.g., .NET, Java, etc.) and is meant to be used repeatedly as part of the build process (i.e., instead of just generating starter code once at the beginning of a project).

One should be careful not to confuse the List of MDA Tools and the List of UML tools, the former being much broader. This distinction can be made more general by distinguishing ‘variable metamodel tools’ and ‘fixed metamodel tools’. A UML CASE tool is typically a ‘fixed metamodel tool’ since it has been hard-wired to work only with a given version of the UML metamodel (e.g. UML 2.1). On the contrary, other tools have internal generic capabilities allowing them to adapt to arbitrary metamodels or to a particular kind of metamodels.
Source : Wikipedia












Pingback: garment sales worldwide
Pingback: Diagnose Asthma
Pingback: residential window film
Pingback: LOS ANGELES SEO
Pingback: Electrician Atlanta
Pingback: Baccarat online
Pingback: Need votes
Pingback: swisstgallery