MDA Explained: The Model Driven Architecture--Practice and Promise
For many years, the three of us have been developing software using object-oriented techniques. We started with object-oriented programming languages like C++, Small-talk, and Eiffel. Soon we felt the need to describe our software at a higher level of abstraction. Even before the first object-oriented analysis and design methods like Coad/Yourdon and Object Modeling Technique (OMT) were published, we used our own invented bubble and arrow diagrams. This naturally led to questions like, What does this arrow mean? and What is the difference between this circle and that rectangle? We therefore rapidly decided to use the newly emerging methods to design and describe our software. Over the years we found that we were spending more time on designing our models than on writing code. The models helped us to cope with larger and more complex systems. Having a good model of the software available made the process of writing code easier, and in many cases, even straightforward. In 1997 some of us got involved in defining the first standard for object-oriented modeling called Unified Modeling Language (UML). This was a major milestone that stimulated the use of modeling in the software industry. When the OMG launched its initiative on
Model Driven Architecture (MDA), we felt that this was logically the next step to take. People try to get more and more value from their high-level models, and the MDA approach supports these efforts. At that moment we realized that all these years we had been naturally walking the path toward model-driven development. Every bit of wisdom we acquired during our struggle with the systems we had to build fitted in with this new idea of how to build software. It caused a feeling similar to an AHA-experience: Yes, this is it! -;the same feeling we had years before when we first encountered the object-oriented way of thinking, and again when we first read the GOF book on design patterns. We feel that MDA could very well be the next major step forward in the way software is being developed. MDA brings the focus of software development to a higher level of abstraction, thereby raising the level of maturity of the IT industry. We are aware of the fact that the grand vision of MDA, which Richard Soley, the president of the OMG, presents so eloquently, is not yet a reality. However, some parts of MDA can already be used today, while others are under development. With this book we want to give you insight into what MDA means and what you can achieve, both today and in the future. Anneke Kleppe Jos Warmer Wim Bast Soest, the Netherlands, March 2003 032119442XP04072003
Reviewer: Thomas Paul (Plainview, NY USA)
If you are interested in Model Driven Architecture (MDA) but you don't have a clear grasp of what it is or where the designers of MDA see it heading then you might want to pick up this brief, well-written description written by three authors who are well acquainted with MDA.
MDA is the concept of using models developed using a modeling language (UML) to generate real applications. This book can be seen as a high level overview of MDA and at 150 pages it is a fairly easy and quick read. The authors show both what is available today (not too much) and what might be available in the future (perhaps all applications will be generated from models). The authors do try to make the book practical by showing how you can use modeling tools to at least build skeletons of code that can be the start of code development. MDA brings a new set of acronyms but this book explains each of them without too much pain.
So how much of what is discussed here is needed by a typical developer or designer? Probably not too much. But if you want to keep your eye on the future of IT then this book is well worth the read. Perhaps one day writing code will be thought of the same way we think of writing machine language. When that happens you will be able to say you knew it was coming.