-
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:
- 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.)
- 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:
- The member element of the membership is one of the directly or indirectly redefined features of a member element of another inheritable membership.
- 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_-84Type::directionOf does not handle inheritence from feature chainsKERML_-120Recursive import with includeAll = true should recurse through private packages
-
Updated: Sat, 19 Jul 2025 18:58 GMT
KERML_ — Type::inheritedMemberships OCL is missing
- Key: KERML_-39
- OMG Task Force: Kernel Modeling Language (KerML) 1.0 FTF 2