UML 2.2 RTF Avatar
  1. OMG Issue

UML22 — formal definitions of 'isCompatibleWith' (pages 622, 647, 649)

  • 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