Legacy Issue Number: 14570
Source: Model Driven Solutions ( Ed Seidewitz)
Specification: UML Superstructure (formal/09-02-02)
Subclause: 11.3.49 TestIdentityAction
Constraint  for TestIdentityAction is:
 The type of the result is Boolean.
While the English statement expresses the correct intent, the OCL is wrong. As written, the OCL requires that the type of the object referenced by the type property of the OutputPin be Boolean. But this is, of course, impossible, since the type of OutputPin::type is the metaclass Type, and any value for this property must be for an instance of a concrete subclass of type, such as Classifier or PrimitiveType. Boolean, on the other hand, is represented as an instance of the metaclass PrimitiveType. That is, the OCL for this constraint is confusing metalevels.
The OCL should really be something like:
self.result.type = PrimitiveType instance representing Boolean
However, unless some sort of standard way to reference the M1 instance representing Boolean within the UML metamodel, it is unclear how to formally write “PrimitiveType instance representing Boolean”.
Reported: UML 2.3 — Fri, 16 Oct 2009 04:00 GMT
Disposition: Resolved — UML 2.4
Updated: Fri, 6 Mar 2015 20:58 GMT