-
Key: OCL25-118
-
Legacy Issue Number: 18254
-
Status: open
-
Source: Model Driven Solutions ( Dr. Edward Willink)
-
Summary:
OCL 12.10 awaits alignment with the UML 2.0 metamodel.
Consequently, the relationship between a result-valued OCL bodyExpression and a Boolean-valued UML bodyCondition is unspecified. A common pragmatic resolution has been to equate the two and ignore the Boolean-valued requirement of a UML Constraint.
In order to accommodate prevailing practice and also support UML's multiple out/inouts, suggest:
Reinterpret the grammar
prePostOrBodyDeclCS ::= ‘body’ (simpleNameCS)? ‘:’ OclExpressionCS
such that
the simpleNameCS is the name of the return parameter with 'result' as the anonymous default
OclExpressionCS is a result-valued bodyExpression if OclExpressionCS does not reference the simpleNameCS or its defgault.
OclExpressionCS is a Boolean-valued bodyCondition if the return parameter is referenced.[Allow multiple body declarations.]
Thus
"body: ..." is a shortform of "body result: ..." which is a shortform for "body result: result = ..."
and
body: ...
body A: ...
body B: ...could be the specification of a UML operation
f(out a : A, inout b : B, in c : C) : Z
-
Reported: OCL 2.3.1 — Fri, 9 Nov 2012 05:00 GMT
-
Updated: Thu, 8 Oct 2015 14:12 GMT
OCL25 — Align OCL bodyExpression and UML bodyCondition
- Key: OCL25-118
- OMG Task Force: Object Constraint Language 2.5 RTF