Why Metamodels?


So, what's the point of having metamodels, and why should you care? Because models must be stated in a way that yields a common understanding among all involved parties, we need a way to specify exactly what a model means. Metamodels allow you to do just that: They specify the concepts of the language you're using to specify a model.

Metamodels simplify communication about models. Rather than say "A Customer is something that can have attributes and operations and whose instances potentially live as long as the software system lives," we can simply say "Customer is an instance of Entity," or even just "the Customer entity," and refer to the appropriate metamodel that tells us precisely what an Entity is (something that can have attributes and operations and whose instances potentially live as long as the software system lives, presumably).

Moreover, mapping functions (see Mapping Between Models in Chapter 2) can be stated crisply using concepts defined in the metamodel. For example, a mapping function could state that an element of the source model, such as Class, corresponds with an element of the target model, such as Entity. The key ideas here are that the meaning of class is defined in a metamodel and that the meaning of entity is also defined in a (different) metamodel.

These three reasons specification of the language, communication about models, and a way to specify mapping functions constitute compelling reasons to venture into The Meta-Zone.



MDA Distilled. Principles of Model-Driven Architecture
MDA Distilled. Principles of Model-Driven Architecture
ISBN: B00866PUN2
EAN: N/A
Year: 2003
Pages: 134

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net