KerML 1.0b4 FTF Avatar
  1. OMG Issue

KERML_ — Type::inheritedMemberships OCL is missing

  • Key: KERML_-39
  • Status: closed  
  • Source: NIST ( Mr. Conrad Bock)
  • Summary:

    Subclause 8.3.3.1.10 (Type), includes inheritedMemberships as an operation with a text description, but no OCL.

  • Reported: KerML 1.0a1 — Sun, 30 Jul 2023 14:08 GMT
  • Disposition: Resolved — KerML 1.0b4
  • Disposition Summary:

    Complete the OCL for inheritedMemberships and related operations

    This resolution adds the OCL for Type::inheritedMemberships, and updates other related operations as necessary. The basic algorithm for computing inherited memberships of a type is as follows:

    1. Collect the set of inheritable memberships, which are all non-private (i.e., public and protected) memberships of all direct supertypes of a type (see Type:: inheritableMembers). (This includes memberships inherited into those supertypes.)
    2. Remove any inheritable memberships that are hidden due to redefinitions of their member elements (see Type::removeRedefinedFeatures).

    In the second step, inheritable memberships are removed under either of two conditions:

    1. The member element of the membership is one of the directly or indirectly redefined features of a member element of another inheritable membership.
    2. The member element is a feature, one of whose directly or indirectly redefined features is directly redefined by an owned feature of the inheriting type.

    The resolution also clarifies that the supertypes of a type include (see Type::supertypes):

    • If the type is conjugated, then the original type from the conjugation.
    • If the type is not conjugated, then the general types of all owned specializations.
    • If the type is a feature with chaining features, then also the last feature in the chain (see Feature::supertypes).

    This resolution also resolves the following issues:

    • KERML_-84 Type::directionOf does not handle inheritence from feature chains
    • KERML_-120 Recursive import with includeAll = true should recurse through private packages
  • Updated: Sat, 19 Jul 2025 18:58 GMT