1. From MDD to MDRE and then to Data Modeling
While MDE was limited to MDD, i.e. essentially to code generation from more abstract models generated by human operators using tools like UML or SysML editors, the size of the models was usually quite limited and thus the issues of scalability were rarely mentioned. This has changed since MDRE (Model Driven Reverse Engineering) is becoming an important practice. And this is becoming a key challenge to MDE when users are going to start processing models of data.
Typically a UML model could contain between 500 and 5000 elements. Usually (depending on the metamodel), a model element may be either a class (node) or an association (edge). But when we are dealing with models of legacy code in MDRE, it is not rare to get models of one million elements or more. Of course this is a new situation to which we have to adapt.
2. Dimensions of modeling scalability
There has been in the past month some interesting studies on how MDE may scale up. For example a nice presentation may be found at:
In this blog entry I plan to develop later a number of dimensions of MDE scalability. The most obvious one is size, but as we’ll see, this is not the only one and there are several facets to size. But for now, let us say that the characteristics of scalabilty do not apply to models per se, but to the different operations we wish to apply to models. There are four main operations to be considered here:
- browse
- edit
- persist (store and retrieve)
- transform
The last operation may take different forms because a measurement, a merge, a check and many different operations may be viewed as special cases of transformation.