I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

How Popular is Model Driven Software Development?

05.31.2010
| 12190 views |
Model driven software development is a methodology that makes sense in a lot of areas.  The Eclipse eco-system in particular has a number of options for MDD, with projects like EMF and GMF. This makes sense in the Eclipse context as most applications built on the platform are editor based. However, looking across the wider development community, do you use models to drive your software development? For those of you who adopt this approach, what enabling technologies do you use for this?
I use Model Driven Development
40% (246 votes)
I don't use Model Driven Development
60% (363 votes)
Total votes: 609

Comments

Maxim Zakharenkov replied on Mon, 2010/05/31 - 7:11am

I think that there is missing one answer option:

"I'm using Model-Drieven-Development and I like it"

Chris Treber replied on Mon, 2010/05/31 - 7:18am

Hi,

MDA can do really good things, when expectations are set right.

In example, I was overseeing a diploma thesis about transforming EJB 2.x persistence into EJB 3.x persistence. This worked very well because the input data was already modeled in a machine-readable form (in example, EJB 2.x-style XML descriptors), that is, the human part of the work was largely done.

Regarding MDA often promises are made - especially by vendors of MDA products - that inevitably create disappointement because improvements by an order of magnitude rarely materialize, for various reasons inherent to the way software development works.

First off, "coding" is only a small part of the whole process of creating software. Even if you could reduce code production effort to 10% of the conventional approach: if code production is 20% of the overall cost, you achieved an overall reduction of 8% (which still is not bad, but not as spectacular as 90%).

Secondly, all automatic approaches require that some human already did the thinking part. You'll never get a class model generated from requirements written in prose (but you can create the DB from a class model), and you'll never get code generated from the informal description of an algorithm (but you can create method stubs and calls from a sequence diagram).

One (big) problem that keeps me at a distance from MDA approaches so far is that round trip engineering often works rather poorly. If you always generate foward there is no problem; if you need changes in the generated code reflected back into the model (refactoring comes to mind), you're often s* out of luck.

Cheers,

Chris

Artur Sobierajczyk replied on Mon, 2010/05/31 - 11:51am

I don't use MDA and don't like this approach. I like much more to create reality by coding, not by drawing squares in some limited, "enterprise" tool. Maybe this is good for corporations where "coders" are little payed or outsourced to India... I think due to success of "agile" methods in SE approaches like MDA will die.

Jilles Van Gurp replied on Mon, 2010/05/31 - 12:32pm

I don't use it and I would run screaming if somebody tried to force use of it where I work. Sorry but I think it is that bad.

In a nutshell,  MDA is being pushed by the same people who were in the past on any or all of  the following bandwagons: formal methods;  corba, SOAP, UML, rational unified. In short, overpaid designers with an abstraction and modeling fetish and a distaste of getting their hands dirty writing real production stuff. It's especially popular in organizations that love to hand over their cash in large volumes to IT parasites like IBM, Oracle and expensive consultants. Seriously, Rational and the OMG were one of the biggest and longest running scams in the industry that did a lot of damage selling absolute crap products and consultancy to a shitload of underpeforming IT departments. I have nothing against getting rich of other people's ignorance and stupidity. These were surely nice bandwagons to be on (easy money) and there is still some good money to be made maintaining all the misguided crap that was built with it. But for new stuff, please use something sensible like test driven development, REST, whiteboards & wikis, domain specific languages, and other more effective approaches that achieve the 80% of the stuff you actually needed without slowing you down with the complexity of the 20% you never really needed at a fraction of the cost.

Most of the valid usecases for MDA are actually good use cases for any DSL type approach as well. Probably the meta model engineering that you need to do to get the MDA approach right is about the same or worse than the effort to practice some TDD on a OO framework + DSL that any competent developer can maintain and extend. It all stands or falls with how good your people are. The latter approach will prove less rigid and more future proof. MDA is already on the way out in my view. Like SOAP, Corba and UML, the industry seems to have moved on. Don't ignore the mounting evidence for that.

Oh and please don't cite your shitty financial application with simplistic db model that you did on an afternoon in Rational Crapware x.y as a "success story".  Seriously, what passes for a success story in this industry to sell the latest silver bullet is unbelievable. I've yet to see an MDA success story that survives a good bit of scrutiny.

I see somebody's master thesis project was already cited as evidence in this thread. I find that depressing (no offense to the student involved).

 

 

 

Alessandro Santini replied on Mon, 2010/05/31 - 4:24pm in response to: Jilles Van Gurp

I guess your contribution made your resume very clear also to the non-techies.

Mladen Girazovski replied on Tue, 2010/06/01 - 6:18am

Probably the meta model engineering that you need to do to get the MDA approach right is about the same or worse than the effort to practice some TDD on a OO framework + DSL that any competent developer can maintain and extend.

While i agree that the inital effort to create the Metamodel is big, imho even bigger than with other approaches, i fail to understand why you distinguish between the DSL approach and the MDA approach in general, models can be written in a DSL as well for MDA, no need for the usual boxes & lines (UML and other graphical notations).

Eclipse is pushing EMF and xtext, i doubt that the end for MDA is near, of course, it's never such a revolution as hyped by marketing.

Igor Laera replied on Tue, 2010/06/01 - 10:19am

I think the question is: what do you want to achieve with MDA?

Some people just use MDA to keep their models up-to-date, so they can
simply generate database and/or BusinessObjects boilerplate code out of it.

This alone can save huge times when you have +300 Tables and frequent changes.

Others expand their simple object-relationsship diagrams with Activity Diagrams,
not necessary for code-generation, but for their quality testing between "what
does the code and what is implemented?" Sometimes a good activity diagram
is much simpler to read than +35 pages of bad written documentation.

The third part is, that our industry (especially java) doesn't have the amount of
ready to use black boxes a real MDA approach would need. I can download 300
jar files off apache.org, but I still have no working user-rights-management nor
any other sort of highlevel functionality. It's just technology, and you can't stick
technology together by simple "arrows" in a diagram.

I totally like the MDA approach, I like the theory behind it. But we just need much
more high level objects like "User Management", "Financial Calculator", "Workflow
Engine" etc. with defined interfaces, where a true MDA approach would be widly
useful.

In the current state of affairs, we see discussions like this: the coders in the trenches
are annoyed by incomplete, hastly drawn Visio-Diagrams ("It's just a click and we have
our international business app ready in days out of the magic machine") and the
UML-designers simply despise the "just add some jars and we go! the rest is done
by spring and some mixed in agile thing-y"-approach even some senior developer
still try to implement (because it's the only one they see 'working').

Without any larger availability of useful allround highlevel modules, better priced
MDA tools and much more real life usecases, this discussion will continue ad infinitum.

This is a shame, because its really more a problem about the current practical approach
of things, and less a real problem of the theory behind it.

Javier Paniza replied on Wed, 2010/06/02 - 5:31am

Since my message in this thread was removed by an evil moderator. I tried to put my comment again. The second time I tried to put this comment, JavaLobby says me "Your submission has triggered the spam filter and will not be accepted". Now I removed all the links from the comment.

The idea behind MDD and MDA is good, but the way it is applied is very heavy. However, there is a lightweight way to do MDD. I wrote a free whitepaper about this issue. In the introduction of this whitepaper I said:

... for today, the MDD usage is still very complex. It's needed to make a big
investment of time, expertise, and tooling; usually building your own DSL's and
combining them into a software factory, and it costs a lot of effort. Therefore, only
big companies can afford MDD, and it can only be paid back when using it multiple
times for different projects. And, of course, MDD is a hard alternative for mid-size
and small companies.
Fortunately you can enjoy the goodness of MDD without its pains. Just removing
MDA, DSLs, UML and code generation from MDD and you'll obtain a simple but
effective way to do Model Driven Development

I cannot put a link to the FREE whitepaper because the spam filter does not allow it. So, if you are interested in the document about MDD search using google using "MDD paniza"

Rob Ert replied on Thu, 2011/02/17 - 4:34am

Today using internet has become a trend in each and every kids at home and also in cyber café.As considered at home one should take Internet safety for kids in the sense to avoid the future bad things on their kids.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.