Join GitHub today
Consider allowing multi-level modeling: Native support for the abstraction-occurrence pattern #1393
The abstraction-occurrence pattern is when instances of a class in a model has occurrences that are modelled as instances of another class. Examples include:
TVSeries -- Episodes
In programming languages, both classes in each pair need to be at the same 'level', i.e. classes. However the multi-level modeling concept suggests that in models the abstraction (e.g. BookTitle) could have instances (specific BookTitles) that are the classes for their copies. The abstraction would become a metaclass.
Beginner modelers tend to get confused as to where the 'instance-of' relationship lies, so Umple support would be useful. But we also would have to be careful to avoid adding confusion, or generating code that is overly complex.
One suggestion would be to tag the abstraction-occurrence association with a stereotype. Then we could generate delegation methods automatically such that attributes of occurrence instances 'inherit' the attributes of their related abstraction instance.
Lots of info about multi-level modeling can be found here: