MDA problems

I did a search on javablogs to see what other people are writing about MDA. Found one interesting entry by Ara, RE Visually Explicit Programming.

He first argues that UML diagrams have no resemblance to the real program and are therefor not useable for programmers. I find this a very strange statement. So why is it that most design patterns are explained by class diagrams? Why is it that if i want to understand an existing program i like to have a look at some class and sequence diagrams to quickly understand how it works? Because UML diagrams actually tell me a lot about the program.

I very much want to use MDA tools, because it avoids me from doing some very boring programming. Normally, for me a project starts by reading some functional designs, translating them into technical designs. I use a lot of UML diagrams in these TDs. Then translating these diagrams into java is for the most part pretty straightforward, so instead of doing that manually i would like to generate the code. To generate it i would first have to enter the requirements into a generator, or be able to generate the code from the UML diagrams, which is what MDA is all about.

Next Ara quotes some statements from SD magazine. The second statement basically says that MDA doesn’t appeal to developers. Now that may be the case for some developers, especially the ones that are doing Java right now. But i also know that there are a lot of developers who right now will not touch java, because it’s too much work, not productive, compared to tools suchs as Oracle Designer.

Ofcourse there are problems with MDA, but not that UML diagrams do not resemble real programs or that programmers do not like MDA. After working with OptimalJ for a week now, i think one of the problems is the complexity. Another problem is that i see right now is that the models used by OptimalJ seem very specific to the tool. Can you export the application model diagrams from OptimalJ, import them into a competing MDA tool and generate the code model using different technology patterns (i.e., instead of using EJB’s, use oracle’s BC4J for example)?

So right now Java developers mostly learn standardized API’s, which are usable in every J2EE server environment, but what happends when you adopt a MDA tool? Your knowledge will probably be more vendor specific.

blog comments powered by Disqus