I agree mostly with Scott Ambler’s
assessment. See below for a more detailed analysis. I do not agree that
MDA does not have a test-driven approach. That is just a lack of
architecture discipline and customer focus.
This link explains what a good UML
modeling process is. You have to create three modeling methodologies
(Domain, System, Design) and then cross check for consistency and extensibility
(change case???) in the plethora of generated models. This paper outlines
the requirements for high quality modeling.
http://www.inferdata.com/resources/whitepapers/WP.HQModeling.pdf
Even if you do all of the above, you still
have some problems outlined in the following paper.
http://www.clearviewtraining.com/literatemodeling/literatemodeling.pdf
The above paper is really Chapter Three of
Enterprise Patterns and MDA
http://www.amazon.com/exec/obidos/tg/detail/-/032111230X/qid=1077751470/sr=1-1/ref=sr_1_1/104-5550600-7933542?v=glance&s=books
My take from Chapter Three of the book
follows:
UML Model Visual Formalisms are too
complex for Business Domain Experts à need simpler formalisms for design by contract to work
UML Models are divorced from the Business
Context Document but they try to use UML Tags to link the CMS with the Model
repository à this means you are going to take a dive into XMI for automated
traceability and test generation. Round Tripping is problematic and high
skilled at best.
Business context that gives rise to a set
of business requirements that is not well captured or explained by use cases or
by ANY UML Model
UML doesn’t provide built in support
for linking models to external documents. This can be done using UML
extension mechanism called tagged values.
RosettaNet resorted to tagging comments
and then transforming XMI using XSLT. I suggest using Prozac Nation as
your programming manual for this.
This is not a good model because free text
annotations, notes and constraints are spread through the UML model. This
bumps into intentional programming .
It looks like the JBOSS folks and
Microsoft are both on this vector.
http://techupdate.zdnet.com/techupdate/stories/main/Charles_Simonyi_creates_software_intentionally.html
The above are the links I promised in the
conference call on the book. I also attached the Forum9000 Paper on Predicting Mass
Cooperation and Complex Adaptive Systems.
However, I am holding off on the Digital
Bag paper as I am integrating some of the above concepts into CAM
and a collaboration editor. I am struggling with the appropriate levels
of abstraction through the CAM Template Generation, the CAM Digital Bag
Generation and the Linking and Switching of Choice Points at RunTime in
executing a Digital Bag. OpenEHR and others in the medical
community have struggled with the appropriate concrete levels of abstraction.
It looks like Archtypes are all the rage this year since most people don’t
understand UML Profiles. The good news is that Inferdata’s book Design by
Contract by Example is starting to sell well. Guess the time is right.
<Dan/>
From: David RR Webber
[mailto:david@drrw.info]
Sent: Wednesday, February 25, 2004
1:22 PM
To: BCM OASIS
Subject: [bcm] BCM and Agile
Model-Driven Development
Message text written by TechNews
>"Are You Ready for MDA?"
Model-Driven Architecture (MDA) is touted to be applicable to a wide-range
of development tasks by vendor-backed organizations and modeling experts,
but other software development thinkers understand MDA has serious flaws.
MDA relies on complex modeling tools to transform platform-independent ...
http://www.acm.org/technews/articles/2004-6/0225w.html#item13
<
Seems to me that BCM inherently supports Agile MDD.
Do we have any contacts into the AMDD community?
=====================================
"Are You Ready for MDA?"
Software Development (02/20/04); Ambler, Scott W.
Model-Driven Architecture (MDA) is touted to be applicable to a wide-range of
development tasks by vendor-backed organizations and modeling experts, but
other software development thinkers understand MDA has serious flaws. MDA
relies on complex modeling tools to transform platform-independent models into
platform-specific models and then finally into the end-result working system.
All the models are built using Unified Modeling Language (UML) from the Object
Management Group, which also created MDA. Despite the advertised benefits of
MDA tools, organizations need to carefully examine their needs and resources
before attempting to use the architecture: First, only a very small percentage
of software developers are adept modelers, meaning that organizations either
have to train existing developers or hire expertise, which is likely to be in
high demand; second, abstract models and UML are not well understood by
business stakeholders and difficult to learn, which prevents users from being
actively involved in system specification, as opposed to the simpler tools and
techniques advocated in user-centered design. MDA technology itself may prove a
problem as a preferred tool may not work on the platform at hand, and is really
not appropriate for business application development. Additionally, MDA tools
at this point almost always lose data when sharing models between them, thus
leading to vendor lock-in. Finally, MDA does not have a test-driven approach
similar to test-driven development used in programming-based development. These
limiting factors mean MDA is actually useful for just a small number of
companies who have adequate skills and job requirements; Agile Model-Driven
Development, which does not rely on complex modeling tools but requires
thoughtful planning, is a much better model-based approach.