A great conference has finished. What a crowd and what a group of Eclipse decision makers, all in one place. Definitely worth the while.
This year we took the opportunity to present two components which will help users of the Eclipse Modeling Framework (EMF) to validate their models much faster than was possible before. Given the huge number of submissions we were happy to get a slot at all where we combined our presentation with an introductory talk on the Object Constraint Language (OCL). After Ed Willink and Adolfo Sanchez-Barbudo Herrera had explained the general concepts and applications of OCL, I motivated the challenge of validating large sets of OCL-defined model constraints on large models. Obviously, evaluating all constraints on all objects after each change in an EMF model is simply not feasible for performance reasons. Yet, this may seem necessary at first glance to ensure validity of the entire model as an OCL constraint may well navigate throughout the graph of EMF model elements, including cross-resource references.
The following two key ideas make holistic OCL constraint re-validation feasible:
- understand which of the many OCL expressions may have been affected by the change indicated by an EMF change notification and don’t re-evaluate all the others,
- take advantage of the information in the EMF change notification to either prove that an expression hasn’t changed at all, or at least compute a vastly-reduced set of model elements for which the expression value may have changed at all.
The first idea leads to the derivation of smart change notification filters for each OCL expression to track. The second idea implies the use of partial OCL expression evaluation as well as a “traceback” function tracing the change indicated by the notification back to those model elements on which the expression may have changed its value. The notification filters lead to the follow-up challenge of efficient, scalable notification handling which we’ve also addressed. With this, we achieve major performance gains and improvements in OCL scalability. For details, see the presentation slides.
The summit was instrumental to getting the implementation closer to a contribution to the Eclipse release. We got signs by Ed Merks that the scalable notification handling mechanism may soon appear in the EMF core component (see also https://bugs.eclipse.org/bugs/show_bug.cgi?id=329336). At the same time, we are working together with Ed Willink to publish the OCL Impact Analyzer in the MDT/OCL project, first in the examples section (see also https://bugs.eclipse.org/bugs/show_bug.cgi?id=323223).
Everyone interested can already get a sneak preview using the following anonymous GIT access: http://email@example.com/furcas.git branch emf. Both, the impact analyzer and the scalable notification management component can be found in the top-level folder EMFEnhancements. Any feedback is of course very welcome.
Thanks to all who made this Eclipse Summit such a successful event!