Conference paper

Non-deterministic Constructs in OCL -- What does any() Mean

The Object Constraint Language (OCL) offers so-called non-deterministic constructs which are often only poorly understood even by OCL experts. They are widely ignored in the OCL literature, their semantics given in the official language description of OCL is ill-defined, and none of today's OCL tools support them in a consistent way. The source of the poor understanding and ill-defined semantics is, as identified in this paper, OCL's attempt to adopt the concept of non-determinism from other specification languages with fundamentally different semantical foundations. While this insight helps to improve the understanding of non-deterministic constructs it also shows that there are some formidable obstacles for their integration into OCL. However, in some cases, non-deterministic constructs can be read as abbreviations for more complex deterministic constructs and can help to formulate a specification in a more understandable way. Thus, we suggest to integrate non-deterministic constructs in other specification languages such as Z, JML, Eiffel whose semantical foundations are similar to those of OCL.

Related material