Chapter 1, Introduction, provides a high-level overview of MDA in terms of how it's aimed at raising the levels of abstraction and reuse. It also discusses design-time interoperability, which ties these ideas together into a greater whole, and the concept of models as assets.
Chapter 2, MDA Terms and Concepts, offers introductory definitions of the various acronyms and terms at the heart of MDA. It also provides a road map for the rest of the book.
Chapter 3, Building Models, explains why modeling systems is important, describes the key aspects of good models, and discusses the important concepts of abstraction, classification, and generalization. This chapter also introduces a banking system example that will run throughout the book and provides initial definitions of the terms platform-independent model (PIM) and platform-specific model (PSM).
Chapter 4, Building Metamodels, focuses on the core concepts of metamodels, which are models of modeling languages. This chapter explores the Meta-Object Facility (MOF), which is the OMG's adopted standard for metamodeling. This chapter also expands the discussion of the banking system to show the relationship between elements of the basic model and the elements of the Unified Modeling Language (UML) metamodel.
Chapter 5, Building Mappings, describes the need for mappings between models and describes some mapping functions that might apply in connection with transforming an "analysis" model to a "design" model. It also discusses various types of "horizontal" and "vertical" mappings and issues associated with merging mappings.
Chapter 6, Building Marking Models, discusses marks, which are nonintrusive extensions to models and metamodels that capture necessary information without polluting them. In particular, the focus is on what marks are good for and how to find them for a given mapping function. This chapter also defines the concept of marking models, which serve as adapters between metamodels.
Chapter 7, Building Languages, describes how to use a metamodel to define a language for the purposes of improving communication among team members and with machines. This discussion includes an exploration of two different approaches to building languages, one of which involves the MOF and the other of which involves UML profiles.
Chapter 8, Elaborating Models, addresses the idea that a model can be modified after it has been generated. This includes three topics that support MDA's open-minded attitude: managing manual changes to target models, reversibility of mappings, and, most important of all, legacy code.
Chapter 9, Building Executable Models, describes the principles behind models that have everything required to produce the desired functionality of a single domain. These models confer independence from the software platform, which makes them portable across multiple development environments. The chapter also discusses Executable UML, a profile of UML that defines an execution semantics for a carefully selected streamlined subset of UML.
Chapter 10, Agile MDA, discusses an approach to MDA that involves linking models together rather than transforming them, and then mapping all of these models to a single combined model that is subsequently translated into code according to a single system architecture. This approach relies on the Executable UML profile discussed in Chapter 9.
Chapter 11, Building an MDA Process, describes how to select models, mapping functions, and marking models so they fit together into a process suitable for MDA development. Topics include charting the MDA process, identifying models, identifying metamodels and marking models, and constraint propagation.
Chapter 12, Executing an MDA Process, discusses how a model-driven development process works in terms of the key activities and their interdependencies. The discussion includes descriptions of the high-level activities required for conducting any model-driven process, the issues involved in defining a specific process for a project in the presence of multiple platforms and then how to go about it, and how to implement the process and test the resulting system.
Chapter 13, The Future of MDA, describes the authors' views of the most likely directions in which the OMG will take MDA.
The book also includes a glossary, which contains definitions for all of the terms introduced in the body of the text; a bibliography; and an index.