Model Driven Engineering
From Suhrid.net WikiJump to navigationJump to search
- All forms of engineering rely on models as essential to understanding complex real-world systems.
- The basic ideas of models, modeling, and model transformation are the basis for a set of software development approaches that are known as model-driven development (MDD).
- OMG champions a style of MDD called Model-Driven Architecture (MDA). It is based on a set of emerging standards for how to define a set of models, notations, and transformation rules.
- The MDA approach provides an open, vendor-neutral basis for system interoperability via OMG’s established modeling standards: Unified Modeling Language (UML), Meta-Object Facility (MOF), and Common Warehouse Metamodel (CWM). Platformindependent descriptions of enterprise solutions can be built using these modeling standards.
- By thinking of software and system development as a set of model refinements, the transformations between models become first-class elements of the development process.
- The ability to analyze, automate, and transform models requires a clear, unambiguous way to describe the semantics of the models. Hence, the models intrinsic to a modeling approach must themselves be described in a model, which we call a metamodel.
- OMG defined a set of metamodeling levels, and defined a standard language for expressing metamodels, the Meta-Object Facility (MOF). A metamodel uses MOF to formally define the abstract
syntax of a set of modeling constructs.
The Graphical Editing Framework (GEF)
- The Graphical Editing Framework (GEF) provides a foundation for building rich, interactive user interfaces which are not easily built using native widgets found in the base Eclipse platform.
- GEF has two plug-ins:
- Draw2D : the lightweight toolkit for painting and layout on an SWT Canvas
- GEF : an interactive MVC framework built on top of Draw2d. Draw2d focuses on efficient painting and layout of figures. The GEF plug-in adds editing on top of Draw2d.
- Epsilon is a component of Eclipse that provides infrastructure for implementing uniform and interoperable model management languages.
- It can be used to manage models of diverse metamodels and technologies.
- At the core of Epsilon is the Epsilon Object Language (EOL) which provides features such as model modification, multiple model access, conventional programming
constructs (variables, loops, branches etc.), user interaction, profiling, and support for transactions.
- Although EOL can be used as a general-purpose model management language, its primary aim is to be reused in task-specific languages.
- Thus, a number of task-specific languages have been implemented atop EOL, such as model comparison (ECL) , modelmerging (EML) , model validation (EVL), model refactoring (EWL) and model-to-text transformation (EGL).
- EGL provides a language tailored for model-to-text transformation (M2T).
- EGL is a template-based code generator (i.e. EGL programs resemble the text that they generate), and provides several useful features.
- A sophisticated and language-independent merging engine (for preserving hand-written sections of generated text) - To preserve user customizations of user modifications to ANT Build file. [As opposed to rolling out own merging solution using Java]
- An extensible template system (for generating text to a variety of sources, such as a file on disk, a database server, or even as a response issued by a web server),
- Formatting algorithms (for producing generated text that is well-formatted and hence readable) and traceability mechanisms (for linking generated text with source models). [Both distinct advantages].