-
Key: KERML-82
-
Status: closed
-
Source: Model Driven Solutions ( Mr. Ed Seidewitz)
-
Summary:
The OCL for the checkConnectorTypeFeaturing constraint (see 8.3.4.5.3) uses the Feature::isFeatureWithin operation (see 8.3.3.3.3) to check that each relatedFeature of a Connector is "within" a featuringType of the Connector. Unfortunately, isFeatureWithin is currently specified to allow "downward nesting" of a Feature. For example, in the following:
classifier A { feature x; feature y { feature z; } connector c from x to y::z; }
the Feature z is considered to be indirectly "featured within" the Classifier A. But this means that the Connector c is then considered to be valid, which it shouldn't be – a feature chain y.z should be required to be used instead of the qualified name y::z.
-
Reported: KerML 1.0a1 — Sat, 13 May 2023 23:11 GMT
-
Disposition: Resolved — KerML 1.0b2
-
Disposition Summary:
Correct checkConnectorTypeFeaturing constraint
The problem is actually worse than indicated in the issue. The OCL for Feature::isFeaturedWithin currently references feature.featuringType. This was probably intended to be self.featuringType (in which case it would operate as indicated in the issue description). However, as it is, the operation actually does not check the featuringType of a Feature, it checks the featuringTypes of the nested features of a Feature, which doesn't even really make sense.
In addition, since the semantics of type featuring is that the domain of a Feature is the intersection of its featuringTypes, the quantification over featuringTypes should use forAll rather than exists.
-
Updated: Tue, 1 Jul 2025 15:02 GMT
KERML — checkConnectorTypeFeaturing is not correct
- Key: KERML-82
- OMG Task Force: Kernel Modeling Language (KerML) 1.0 FTF