5.1 DEEP INSTANTIATION-BASED METAMODELLING

In contrast to the traditional, instantiation-based approach in which the specification of an attribute of a class in the metamodel is converted into a value within a normal user-defined model, the notion of deep instantiation permits this specification-value attribution to span more than two contiguous meta layers. Originally introduced in the context of modelling [2], it has also more recently been applied in the programming domain [14].

To exemplify the problem and how deep instantiation may provide a solution, consider a class Task with an attribute Duration. Usually, instances of Task will be objects with a specific value for Duration (say, 50 units of time). Using deep instantiation, it is possible to defer the value attribution such that an attribute that is specified at level Mn can defer having its value stated until a level Mn — x where x can be any number. The number x is called the potency [2;3]. At all intermediate levels (i.e. between Mn and Mn — x + 1), the attribute retains the same characteristic (a definition or specification) that it has at level Mn. It is as if it had been inherited (in an object-oriented sense), i.e. it is passed down through all intermediate levels unchanged. The potency value itself remains attached to the attribute at all levels but is decremented by one for each level down. In other words, the value of the potency determines how many levels the attribute must be transferred down the instantiation ...

Get Metamodelling for Software Engineering now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.