What is MDA? MDA is actually three things:
What are these technologies and techniques? There are many. The most well-known is probably the UML, which people use to capture abstract semantics models as well as the software structure of object systems. Others include the following:
It's the job of this book to explain each of these concepts and most importantly how they relate to one another.
Is that all? No. At present, MDA is still in development, and some of the technologies need to be developed further and standardized, while others need further definition.
If they're not defined, what good are they? The ideas behind MDA have been around for years; they're only just now in the process of formalization and standardization. For example, people have been building executable models, generating code, and refining and transforming models for some years now, and gaining significant benefits from doing so.
It takes a long time to build standards. Should I wait? No. Much of the technology has been around for a while, and you may even have been using it. It also takes time to bring a new technology into an organization, and in any case, you can do so progressively.
What is the purpose of this book? As the title indicates, it's a "distilled" discussion of MDA. We think it's the book you have to have to help you understand MDA and not be caught out by your colleagues.
What does the book do? It explains what MDA is, what makes it up, what each of the relevant technologies and tools is, and what their importance is in the larger context of MDA. In so doing, we also explain the benefits.
Who are the people that should read this book? Developers who are trying to get ahead of the crashing MDA wave.
I'm a manager. Should I read this book? If you need to understand how the benefits of MDA derive from the associated technologies and tools, this is the book for you. We explain technologies and tools so you can understand the benefit, but we don't just tell you why something is important we also explain the technology.
What do I need to know to read this book? Nothing, except an acquaintance with UML.
I know all about MOF and UML. Do I need this book? Yes, if you want to know how UML and the rest fit into the larger picture. MDA relies on these technologies and takes them forward a step. We also identify those parts of these technologies that don't apply to MDA.
I'm in real-time. Does this book apply to me? The principles behind MDA apply to software development in general; they aren't specific to a certain kind of software. The ideas described here apply equally to real-time and regular IT systems; some of them, such as Executable and Translatable UML, were developed first for real-time systems.