Abstract (taken from the paper) -- In the academic literature, many uses of the Object Constraint Language (OCL) have been proposed. By contrast, the utilization of OCL in contemporary modelling tools lags behind, suggesting that leverage of OCL remains limited in practice. We consider this undeserved, and present a scheme for partially evaluating OCL expressions that allows one to capitalize on given OCL specifications for a wide array of purposes using a single implementation: a partial evaluator of OCL.

In this context, our artifact delivers the following contributions:

it presents a Java-based partial evaluator for OCL invariants. The partial evaluator evaluates OCL subexpressions where their value is fix and translates them to a constraint on variables where they are not (the genrated constraints can be solved by a constraint solver to find value assignments satisfying the invariants, thus repairing or completing a model instance; refer to section II for more details).

The artifact comprises a text-based user interface to illustrate the constraint generation based on a user-specified set of dynamic and fix properties.

The same interface can be used to reproduce the results of the implementation evaluation (please refer to section IX of our paper for further details).

Our artifact also publishes the models and OCL invariants that were used for the evaluation.

The artifact consists consists of three parts:

The metamodel for Java/JPA programs and 14 instances, constructed from Open Source projects, as well as the 77 OCL expressions reflecting JPA's rules of well-formedness.
(Paper65_Models.zip)

A Java SE-based setup of our Java-based OCL partial evaluator. This application can be used to reproduce evaluation results presented in our paper and to get an impression of the complexity reduction achieved by partially evaluating OCL expressions.
(Paper65_PartEval.zip)

A virtual machine, comprising a preconfigured Eclipse workspace to inspect the implementation of our partial evaluator for OCL. (Depending on your system configuration, you may want to ensure that the VM is set up to run an "Ubuntu (64 bit)" operating system.)
(URL: https://figshare.com/s/0d0ec7567d12ac45c253)

All three parts contain own README files with further details on their usage.

Terms of use
In case you use parts of this artifact for your own research, please cite our publication in your work.