Throughout the history of the software industry, many new development tools and methodologies have emerged onto the IT landscape proclaiming to revolutionize software development. Sadly, many of these hoped-for revolutions in IT have failed to bring about improvements in the status quo, further supporting the argument of Frederick Brook that there is no silver bullet [Brooks, 1995].
MDA is the new kid on the block, and its advocates are not shy about proclaiming the virtues of the MDA paradigm. Only time will tell if MDA can succeed where so many other development approaches have failed.
The software engineering industry's thought leaders are divided on the likely future for MDA, with some quarters dismissing the paradigm as unworkable. Nevertheless, the reasons for adopting MDA are compelling, and those advocating the uptake of MDA are pointing to an ever-increasing number of success stories as proof the paradigm is effective.
MDA encourages a business-centric approach to development and uses modeling as a means of allowing the architect to focus on business-critical system functionality without the distraction of technical implementation constraints. From these early models, MDA-compliant tools generate executable code, thereby reducing dramatically the effort involved in producing a functioning system.
This use of models and code generation means some of the touted benefits of MDA will sound familiar from our discussions in previous chapters:
These are some of the promises; but what exactly is MDA, and how does it differ from the traditional use of models within the software development process? Moreover, how can MDA help us write quality J2EE solutions in a reduced timeframe?
Models and the Unified Modeling Language are covered in Chapter 5.
To answer these questions, the next section walks through some of the main concepts underpinning MDA.