KerML 1.1b1 RTF Avatar
  1. OMG Issue

KERML11 — includes(oclIsKindOf(X)) compares types with a Boolean

  • Key: KERML11-215
  • Status: open  
  • Source: Diversitas Systems Engineering Ltd ( Geoffrey Tullener)
  • Summary:
    Feature::checkFeaturePortionSpecialization: includes(oclIsKindOf(X)) compares types with a Boolean
    
    Where:          KerML 1.0 (formal/2026-03-01), ยง8.3.3.3.4 Feature, PDF p.194 (printed 168)
    Published OCL:  isPortion and ownedTyping.type->includes(oclIsKindOf(Class)) and owningType <> null and (owningType.oclIsKindOf(Class) or owningType.oclIsKindOf(Feature) and owningType.oclAsType(Feature).type->exists(oclIsKindOf(Class))) implies specializesFromLibrary('Occurrence::Occurrence::portions')
    Correction:     isPortion and ownedTyping.type->exists(oclIsKindOf(Class)) and owningType <> null and (owningType.oclIsKindOf(Class) or owningType.oclIsKindOf(Feature) and owningType.oclAsType(Feature).type->exists(oclIsKindOf(Class))) implies specializesFromLibrary('Occurrences::Occurrence::portions')
    Proof of fault: includes tests a collection of Types for a Boolean value, which it can never contain.
    Likely cause:   Original error, replicated across a family. Three rules share includes(oclIsKindOf(X)) (portion, suboccurrence, subobject).
    Nearest rule:   Feature::checkFeatureSuboccurrenceSpecialization (KerML 1.0 PDF p.194 (printed 168)): isComposite and ownedTyping.type->includes(oclIsKindOf(Class)) and owningType <> null and (owningType.oclIsKindOf(Class) or owningType.oclIsKindOf(Feature) and owningType.oclAsType(Feature).type->exists(oclIsKindOf(Class))) implies specializesFromLibrary('Occurrence::Occurrence::suboccurrences')
    Same defect in: Feature::checkFeaturePortionSpecialization, Feature::checkFeatureSuboccurrenceSpecialization, Feature::checkFeatureSubobjectSpecialization
    Basis of fix:   The same body uses the intended form two lines later; counts match OMG's reference export.
    Note:           The library path 'Occurrence::Occurrence::portions' (for Occurrences::) is already reported in KERML11-205/206; this issue is the includes/exists condition only.
    

    Provenance: found by deterministic checks of the OCL against the metamodel and OMG's reference implementation; the argument was reviewed and challenged by the reporter before filing. Further information on these methods is available on request.

    Not blocking: we are proceeding with the correction above in our own implementation.

  • Reported: KerML 1.0 — Tue, 27 Oct 2026 18:48 GMT
  • Updated: Thu, 29 Oct 2026 23:10 GMT