|
Model-Driven Development (MDD) has become an important paradigm in software
development. The approach claims to provide a solution for systematic and
efficient software development for the highly complex systems developed nowadays.
It uses models, i.e. abstract representations of certain aspects of a system,
as primary artifacts in the development process. Models are often visual models,
like Unified Modeling Language (UML) models, but can also be represented in
textual formats like the Extensible Markup Language (XML). A model-driven
development process usually makes use of different models on different levels of
abstraction. Model transformations are used to transform a model (semi)
automatically into another (usually less abstract) model and finally into implementation
code. MDD provides a large number of powerful concepts and tools to deal
with models, meta-models, and model transformations.
Model-driven development of user interfaces applies the principles of MDD to
the target domain of user interfaces. Modern user interface development requires
the usage of extensive pre-fabricated software libraries and frameworks and has a
strong tendency that the code becomes rather platform-specific. Therefore, MDD
is a highly interesting technology for user interface development. MDD can help
to hide the complexity of libraries and frameworks by using adequate abstractions,
and MDD can achieve some degree of platform-independence through abstract interface
models. The fact that different models of the same system may describe
different views of the same system is also helpful, for instance, to separate the
content (what is displayed) from the design (how it is displayed) into distinct
models. Also for the emerging the paradigm of ubiquitous computing MDD is an
interesting technology. Ubiquitous computing requires user interfaces which run
on diverse target platforms in a consistent way, can adapt at runtime to the current
application context or even migrate at runtime between different devices. Platform-
independent, abstract models provide an excellent base to address such
requirements. |