Formal specification languages, object-oriented methods, CASE tools, component-based software production, agent-oriented, aspect-oriented ... During the last two decades many techniques have been proposed from both research and industry in order to generate a correct software product from a higher-level system specification. Nevertheless, the many failures in achieving this goal have resulted in scepticism when facing any new proposal that offers a 'press the button, get all the code' strategy. And now the hype around OMGs MDA has given a new push to these strategies. Oscar Pastor and Juan Carlos Molina combine a sound theoretical approach based on more than 10 years research with industrial strength and practical software development experience. They present a software process based on model transformation technology, thus making the statement 'the model is the code' instead of the common 'the code is the model' finally come true. They clearly explain which conceptual primitives should be present in a system specification, how to use UML to properly represent this subset of basic conceptual constructs, how to identify just those diagrams and modeling constructs that are actually required to create a meaningful conceptual schema, and, finally, how to accomplish the transformation process between the problem space and the solution space. Their approach is fully supported by commercially available tools, and the subsequent software production process is dramatically more efficient than todays conventional software development processes, saving many man-days of work. For software developers and architects, project managers, and people responsible for quality assurance, this book introduces all the relevant information required to understand and put MDA into industrial practice.