Model-driven engineering is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing concepts.
Overview
The MDE approach is meant to increase productivity by maximizing compatibility between systems, simplifying the process of design, and promoting communication between individuals and teams working on the system. A modeling paradigm for MDE is considered effective if its models make sense from the point of view of a user that is familiar with the domain, and if they can serve as a basis for implementing systems. The models are developed through extensive communication among product managers, designers, developers and users of the application domain. As the models approach completion, they enable the development of software and systems. Some of the better known MDE initiatives are:
The Eclipse "eco-system" of programming and modelling tools represented in general terms by the. This framework allows the creation of tools implementing the MDA standards of the OMG; but, it is also possible to use it to implement other modeling-related tools.
History
The first tools to support MDE were the Computer-Aided Software Engineering tools developed in the 1980s. Companies like Integrated Development Environments, Higher Order Software, Cadre Technologies, Bachman Information Systems, and Logic Works were pioneers in the field. The US government got involved in the modeling definitions creating the IDEF specifications. With several variations of the modeling definitions they were eventually joined creating the Unified Modeling Language. Rational Rose, a product for UML implementation, was done by Rational Corporation responding automation yield higher levels of abstraction in software development. This abstraction promotes simpler models with a greater focus on problem space. Combined with executable semantics this elevates the total level of automation possible. The Object Management Group has developed a set of standards called model-driven architecture, building a foundation for this advanced architecture-focused approach. According to Douglas C. Schmidt, model-driven engineering technologies offer a promising approach to address the inability of third-generation languages to alleviate the complexity of platforms and express domain concepts effectively.
Tools
Notable software tools for model-driven engineering include: