The MDA Framework is the architecture that enables a series of tools to work together to accomplish the MDA goal. These tools can be generation tools, modeling tools, programming IDEs, etc. Central to the architecture is the notion of model. Each tool should be able to use a model either as input or as output or both. Thereto tools should agree on what the syntax and structure of a model is. That is, they need to agree on a common metamodel, or on a number of metamodels for different purposes. (A metamodel is a definition of what a model is.) Once they agree, the relationship between two models in a different language (that is, built according to different metamodels) can be standardized. This relationship is called a Transformation Definition. Tools that transform one model into another model can than be built according to the standard Transformation Definition. Plaatje!!!