Point-Counterpoint article in IEEE Software
(September/October 2003) (90k PDF)
The Model-Driven Architecture (MDA) defines an approach to modeling that separates the
specification of system functionality from the specification of its implementation
on a specific technology platform. In
short it defines a guidelines for structuring specifications expressed as
models. The MDA promotes an
approach where the same model specifying system functionality can be realized on
multiple platforms through auxiliary mapping standards, or through point
mappings to specific platforms. It
also supports the concept of explicitly relating the models of different
applications, enabling integration and interoperability and supporting system
evolution as platform technologies come and go.
As I have written in
Enterprise Architecture Techniques I'm concerned
about the viability of the MDA. My feeling is that
although the MDA is a very wonderful idea I suspect that
it will succeed in only a very small percentage of
organizations. Because of my writings questioning
the viability of the MDA vision I was invited to be
involved in a
Point-Counterpoint article in IEEE Software.
Interesting questions that I think need to be asked
regarding the MDA:
- What level of education and training is required
by developers to use MDA tools?
- What makes us think that the tool vendors will
honestly try to support model sharing standards in a
competitive marketplace? Particularly when past
experiences with other industry standards such as
CORBA have shown a willingness of vendors to announce
support for standards but in practice to implement the
standard in their own unique manner?
- What makes us think that the underlying modeling
the UML, is sufficient for the task at hand?
Perhaps we should define the modeling languages
which we use via
source, not via committee? I
suspect that we need to
extend the UML beyond object and component
- How will MDA-based models be tested?
- How will MDA-based models handle the inherent
complexities of legacy system integration?
- What evidence exists that MDA isn't simply a
repeat of the 1980s I-CASE vision?
- Is developing these complex models really more
productive than other options, such as agile
- How will configuration management of models work
in team-based environments?
- How could you possible develop a "platform
independent model (PIM)" when there isn't a standard
action semantic language (ASL) supported across the
toolsets of various vendors? The PIMs will be
dependent on the modeling tool.
- Have you ever had one of your business
stakeholders ask you to develop detailed,
sophisticated, platform independent models using a
precise industry-standard modeling language which
describes their business?
Are You Ready For the MDA?
Is the MDA vision simply a solution desperately
looking for a problem?
is Copyright 2003 IEEE. Reprinted from (all relevant publication
This material is posted
here with permission of the IEEE. Such permission of the
IEEE does not in any way imply IEEE endorsement of any
of my products or
or personal use of this material is permitted. However,
permission to reprint/republish this material for
advertising or promotional purposes or for creating new
collective works for resale or redistribution must be
obtained from the IEEE by sending a blank email message
You can also visit
http://computer.org/copyright.htm for more
The Object Primer 3rd Edition: Agile Model Driven
Development with UML 2 is an
important reference book for agile modelers,
describing how to develop 35
types of agile
models including all 13
UML 2 diagrams.
Furthermore, this book describes the techniques
Full Lifecycle Object Oriented Testing
(FLOOT) methodology to give you the fundamental
testing skills which you require to succeed at
agile software development. The book also
shows how to move from your agile models to
source code (Java examples are provided) as well
as how to succeed at implementation techniques
(TDD). The Object Primer also includes a
chapter overviewing the critical database
development techniques (database refactoring,
legacy analysis, and
database access coding) from my award-winning
Agile Database Techniques
Agile Modeling: Effective Practices for Extreme
Programming and the Unified Process is the seminal
book describing how agile software developers approach
documentation. It describes principles and
practices which you can tailor into your existing
software process, such as
Rational Unified Process (RUP), or the
Agile Unified Process (AUP), to streamline your
modeling and documentation efforts. Modeling and
documentation are important aspects of any software
project, including agile projects, and this book
describes in detail how to
architect, and then
design your system in an agile manner.
The Elements of UML 2.0 Style describes a collection
of standards, conventions, and
for creating effective
UML diagrams. They are based on sound, proven
software engineering principles that lead to diagrams
that are easier to understand and work with. These
conventions exist as a collection of simple, concise
guidelines that if applied consistently, represent an
important first step in increasing your productivity as
a modeler. This book is oriented towards
intermediate to advanced UML modelers, although there
are numerous examples throughout the book it would not
be a good way to learn the UML (instead, consider
The Object Primer). The book is a brief 188
pages long and is conveniently pocket-sized so it's easy
to carry around.
We actively work with clients around the world to
improve their information technology (IT) practices,
typically in the role of mentor/coach, team lead, or trainer. A full
description of what we do, and how to contact us, can be
found at Scott W.
Ambler + Associates.