This post originated from an RSS feed registered with Java Buzz
by Hugo Pinto.
Original Post: MDA Explained book Review
Feed Title: Hugo Out There
Feed URL: http://sedoparking.com/search/registrar.php?domain=®istrar=sedopark
Feed Description: Welcome to my blog. It happened. I succumbed to the vanity exercise that a weblog is and started my own one. Here youll find information and thoughts (some worth reading, some not) on Java, J2EE, Software Architecture, Music and Parapolitics
Turns out that I ended up a bit disappointed with it. Don't get me wrong: the book is a good introduction to the MDA idea. But, au contraire to an Amazon reviewer that found it eye-opening, I found it so so limiting!
The book starts with an introduction on how MDA fits in the development process, and explains that the process per se almost doesn't change, but now becomes supported with tools. It lists the benefits of using these tools, and then goes on describing the basic idea behind MDA.
Now, this is where the harm starts: the authors, although knowledgeable people, limit their description of the MDA concepts within the boundaries of today's tools capabilities. When they describe what MDA is and is not, many of the times the tone is actually what MDA can and cannot do today. And they go on and on throughout the book.
Let's keep on. After the presentation of a simple MDA framework (which is quite OK), they start explaining the existing OMG standards and how they fit the MDA picture, and they go full-throttle to an MDA example, Rosa's breakfast delivery service (quite a good idea, actually).
This code section is quite interesting, but as they limit themselves to what the version of Optimal/J (one of the authors, Wim Bast, is Compuware's Lead Architect for the product) they had available could do, they only show how the code structure is generated from a PIM (Platform Independent Model). The resulting code is infrastructural (that is, they do not model behaviour) - and results a bitt deceptive (specially if you think about XDoclet for a while).
Chapters 7, 8 and 9 save the book. Chapter 7 talks about transformations between models. By reading it, it finally struck me why people would even care to meta-model the java syntax in MOF. Code generation then becomes a "simple" transform. It's actually very cool. Chapter 8 talks about meta-models. Very simple explanation of meta-modeling, and a very good one. Finally, chapter 9 proposes a transformation language to define your own inter-model transforms. Interesting read. We're then back to Rosa's example (to apply the now-learnt transformations) in chapter 10.
The book closes how it should have began: with an summary overview of the current technologies and a mapping of those in the MDA arena, and a glimpse of what the future will probably hold.
Don't get me wrong - I'm not trying to blindly bash what is a clearly well written piece of text. The book is kind of OK for HIGHLY introductory material. But it won't give you any new ideas. The authors guide your thru the obvious, and present an automated technique to make the obvious an easier process. I was expecting new insights on how these technologies could be harnessed into the software engineering efforts of tomorrow. Unfortunately, what I got was a review today's defficitary technology.