Information Technology Reference
In-Depth Information
the system. One of the main reasons for the attractive
power of MDE is its ability to address the entire software
development process (requirements, architecture, coding,
testing, and traceability) in an iterative view well suited
to modern software lifecycles. This trend allows designers
to specify software using platform-independent descriptions
called models. These models are then gradually (manually
or automatically) transformed into executable applications
for different platforms and targeted devices. Models help
us in understanding, building, verifying, maintaining, and
documenting software systems. MDE shares with more
traditional compilation techniques, or “the gammarware way”,
some concerns such as abstraction, early verification, and
automatic code generation.
This chapter presents the main concepts involved in
the MDE paradigm: models, metamodels and model
transformations. It also briefly introduces the object constraint
language (OCL), a valuable tool to complement structural
model descriptions. Additionally, this chapter introduces
some representative modeling frameworks and model
transformation languages. These MDE-frameworks and
the transformation languages provide specific functionality to
create and process models based on the MDE principles.
3.2. Models and metamodels
MDE uses models as first-class entities during the whole
software development process. There is no standard definition
of a model, even in the software engineering field. There is,
however, a common consensus among many definitions about
one fundamental characteristic: a model is an abstraction of
a system and/or its environment. The MDA guide [OMG 03]
defines a model of a system as follows: “A model of a system is a
description or specification of that system and its environment
for some certain purpose” .
Search WWH ::




Custom Search