-
Key: UML22-374
-
Legacy Issue Number: 12250
-
Status: closed
-
Source: OFFIS e.V. ( Christian Mrugalla)
-
Summary:
The three formal definitions of 'isCompatibleWith' start with: 'isCompatibleWith = p->oclIsKindOf(self.oclType) and [...]'. This is wrong, p and self have to be swapped, that is: 'isCompatibleWith = self.oclIsKindOf(p.oclType) and [...]'. Rationale: As defined in the OCL-specification formal/06-05-01, the function 'oclIsKindOf(t)' determines if t is either the direct type or one of the supertypes of the object, on which this function is called. That is, if the function returns true, the type t is a generalization or equal to the type of the current object. The corresponding has to be valid for 'isCompatibleWith(p)': If the function returns true, the type of p has to be the same or a generalization of the type of the object, on which this function is called (otherwise, the constraints [1] of 17.5.4 and 17.5.5 would make no sense).
-
Reported: UML 2.1.2 — Thu, 28 Feb 2008 05:00 GMT
-
Disposition: Resolved — UML 2.2
-
Disposition Summary:
Agreed. (The operations in question are ParameterableElement::isCompatibleWith, ValueSpecification::
isCompatibleWith and Property::isCompatibleWith.)
This also resolves Issue 17870. -
Updated: Fri, 6 Mar 2015 20:58 GMT
UML22 — formal definitions of 'isCompatibleWith' (pages 622, 647, 649)
- Key: UML22-374
- OMG Task Force: UML 2.2 RTF