Back in December, I wrote an article for TSS, trying to introduce concepts from OMG's Model Driven Architecture (MDA) to developers. I'm reproducing it here (with some minor editorial corrections), with the goal of elaborating on some of the things in more detail, as well as addressing some of the comments posted in the the TSS discussion, as well as in other places around the web.
Comments
Rockin’ post. The one quibble I have is the standard canard that “code generation didn’t work.” There are a lot of banks and big organizations that jumped on the CASE bandwagon and got a LOT done. Target Corporation (Wal-Mart’s #1 competitor) runs core transactional systems built by a CASE tool (CA’s Advantage:Gen, formerly Cool:Gen, formerly Composer, formerly Information Engineering Facility [IEF]).
The fundamental problem is that CASE did not scale down to smaller systems, or out to distributed systems. The secondary problem was that one was depending on the CASE tool vendor for repository, modeling tool, code generator, and in some cases you were even locked into their software development lifecycle. The OMG standards change all that.
I have serious reservations about the MDA which I published in IEEE Software in the Autumn of 2003. A PDF of the article can be found at www.agilemodeling.com/essays/mda.htm. I’ll also be linking to forthcoming articles that I’m writing about the MDA which further question it’s viability. Gut feel tells me that less than 1% of organizations will be able to acheive the MDA vision, the other 99% need to try something else. As I write at www.agilemodeling.com/essays/simpleTools.htm I’m a firm believer in using CASE tools when appropriate, I’ve just seen the MDA vision fail before (we called it ICASE in the late 80s) so experience has jaded me.
the images are missing in teh file. i guess either the path is wrong or the images are moved. looking at these images along with the explanation makes it an easy read.
Shiv, thanks for pointing this out - one of the recent re-arrangements broke the links. I have fixed them ..
Incredible good article!
I’m doing code generation (MDA?) since 2001 in production environments and live projects. I started it without knowing all the MDA theory. But MDA in the interpretation as in the article i exactly that I’m going evolutionary to do. My first try was to use modeling without UML/XMI/MOF overhead, but it may/will change in the future.
What I have PROVEN is, that modeling with code-generation simply works, save my time and makes software development more agile. I have made code-generators for Java and PHP. It give me incredible feeling of power to make a “one change” in 15 places spread among the project by simply changing one line of my model, sometimes one day before deadline and sometimes on the eyes of customer. Adding one new property for a class stored in DB and edited by some GUI may in most optimistic case take under 2 minutes. The more mature your generator is, the more often optimistic case happens to you. I think, it is the strongest argument for unsing MDA, even stronger then technology independence that is actual slightly virtual.
Someday i write down all my experiences down to discuss with all the MDA community, but at now phone is ringing…, kinds are crying… i have simply no time to do it.
Good article on MDA. I hope to hear more on this, in this blog.
Having used CASE tools for a few years as well as building an xml/xslt generation package I can say MDA’s long-reaching potential is appealing. MOF is clearly the key if it can be applied to either a set of services or components within the system domain. I am planning on implementing just such a model.
Thanks for the intro.
Excellent article! Thank you very much.
-Suhas