You are previewing MDA Distilled: Principles of Model-Driven Architecture.
O'Reilly logo
MDA Distilled: Principles of Model-Driven Architecture

Book Description

"A readable and much needed introduction to MDA."
--Dr. Jim Arlow, coauthor of UML and the Unified Process (Addison-Wesley, 2002) and Enterprise Patterns and MDA (Addison-Wesley, 2004)

"This book provides an excellent introduction to the ideas and technologies that will form the foundation of the model-driven architecture over the coming years. I recommend it wholeheartedly."
--Dr. Andy Evans, Managing Director, Xactium Limited, UK

"Excellent job of distilling MDA down to its core concepts."
--Krzysztof Czarnecki, Univeristy of Waterloo, coauthor of Generative Programming (Addison-Wesley, 2000)

As systems have grown more crucial to the operations of organizations worldwide, so too have the costs associated with building and maintaining them. Enter model-driven architecture (MDA), a standard framework from the Object Management Group (OMG) that allows developers to link object models together to build complete systems. MDA prevents design decisions from being intertwined with the application and keeps it independent of its implementation. The result is an application that can be combined with other technologies as well as other applications, and models that become highly reusable assets.

MDA Distilled is an accessible introduction to the MDA standard and its tools and technologies. The book describes the fundamental features of MDA, how they fit together, and how you can use them in your organization today. You will also learn how to define a model-driven process for a project involving multiple platforms, implement that process, and then test the resulting system.

MDA Distilled will help you understand:

  • The MDA framework, including the platform-independent model (PIM) and the platform-specific model (PSM)

  • The Meta Object Facility (MOF)--the OMG's adopted standard for metamodeling

  • Horizontal, vertical, and merging mappings between models

  • Building marks and marking models

  • Elaborating models, including viewing generated models, and managing manual changes

  • Building executable models with Executable UML

  • Agile MDA development

Developers and architects can dramatically improve productivity, portability, interoperability, and maintenance with MDA. Find out how with this essential reference, and quickly learn how to harness the significant power of this new framework.

Table of Contents

  1. Copyright
  2. The Addison-Wesley Object Technology Series
  3. The Component Software Series
  4. Figures
  5. Foreword
  6. Preface
  7. Introduction
    1. Raising the Level of Abstraction
    2. Raising the Level of Reuse
    3. Design-Time Interoperability
    4. Models as Assets
  8. MDA Terms and Concepts
    1. Models
    2. Metamodels and Platforms
    3. Mapping Between Models
    4. Marking Models
    5. Building Languages
    6. Model Elaboration
    7. Executable Models
    8. Agile MDA
    9. Building an MDA Process
    10. Executing an MDA Process
  9. Building Models
    1. Why Model?
    2. Abstraction, Classification, and Generalization
    3. Subject Matter and Language Abstraction
    4. Model Projections
    5. Models and Platforms
    6. Using Models
  10. Building Metamodels
    1. Why Metamodels?
    2. Metamodels
    3. The Four-Layer Architecture
    4. MOF: A Standard For Metamodeling
    5. Using Metamodels
  11. Building Mappings
    1. Why Mappings?
    2. An Informal Example
    3. Mapping Functions
    4. Query, Views, and Transformations (QVT)
    5. Scenarios for Mappings
    6. Merging Mappings for Weaving
    7. Using Mappings
  12. Building Marking Models
    1. Why Marks?
    2. Marks and Marking Models
    3. Applying Marks and Marking Models
    4. Relating Marks and Model Elements
    5. Other Marks
    6. Mark and Marking Model Implementations
    7. The Theory of Marking Models
    8. Using Marks
  13. Building Languages
    1. Why Build a Language?
    2. Who Defines a Language?
    3. What's In a Language?
    4. Building a Language Using MOF
    5. Building a Language Using Profiles
    6. Building Graphical Notations
    7. Using Languages That You've Built
  14. Elaborating Models
    1. Why Elaborate Models?
    2. Managing Manual Changes to Generated Models
    3. Reversibility of Mappings
    4. Incorporating Legacy Code
    5. Using Elaboration
  15. Building Executable Models
    1. Why Executable Models?
    2. Executable UML
    3. The Execution Model
    4. Translating Models
    5. Model Compilers
    6. Using Executable UML
  16. Agile MDA
    1. Why Agile MDA?
    2. Agile Methods
    3. Models, Models, Models
    4. Design-Time Interoperability Revisited
    5. Using Agile MDA
  17. Building an MDA Process
    1. Why Build an MDA Process?
    2. How to Approach the Problem
    3. Charting the MDA Process
    4. Identifying Models
    5. Identifying the Metamodels and Marking Models
    6. The Long and the Short of Mapping Chains
    7. Constraint Propagation and Verification
    8. Using an MDA Process
  18. Executing an MDA Process
    1. Formalizing Knowledge
    2. Building Bridges
    3. An Example Model-Driven Process
    4. Iterating the Process
    5. Testing the System
    6. Executing an MDA Process
  19. The Future of MDA
    1. Why Not MDA?
    2. The Importance of Standards
    3. Building a Tool Chain
    4. Working with Models-as-Assets
    5. Beyond UML
    6. Back from the Future
  20. Glossary
  21. Bibliography
  22. Index