Corrections to Ballot #5 resolutions
-
Key: KERML_-224
-
Status: open
-
Source: Model Driven Solutions ( Mr. Ed Seidewitz)
-
Summary:
Further implementation work has identified problems with certain resolutions in Ballot #5 that urgently need to be corrected.
KERML_-57Time and space life/slice/portion modeling patterns are missing- validateSubsettingConstantConformance – This constraint requires the subsettingFeature to be constant if the subsettedFeature is. However, a feature can only be constant if it is variable. But this makes invalid the reference subsettings of the ends of, e.g., a succession between constant features, because the ends of a succession cannot be variable (since a succession is not a kind of class).
- validateSubsettingPortionConformance – This constraint requires the subsettingFeature to be a portion if the subsettedFeature is. But this makes invalid the reference subsettings of the ends of any connector between portion features, because end features cannot be portions.
- validateRedefinitionDirectionConformance – For the purposes of this constraint, the direction of the redefinedFeature is considered relative to the featuringType of the redefiningFeature. However, this does not work if the redefiningFeature is a variable feature with an implied featuringType. (The OCL for the constraint is also wrong: featuringType should be redefiningFeature.featuringType.)
- validateRedefinitionFeaturingType – This constraint checks that the redefiningFeature has a different featuringType than the redefinedFeature. However, for variable features with implied featuringTypes, this constraint will always be met, even for features with the same owningType, because the constructed featuringTypes will not be equal (even if semantically equivalent).
KERML_-58checkFeatureParameterRedefinition fails for named-argument invocations- checkFeatureParameterRedefinition – The proposed OCL update fixes the problem stated in the issue, but then this breaks positional-argument notation, because there is no semantic constraint requiring implied redefinitions from the invocation parameters to the parameters of the invoked function. (Also, the OCL replacement snippet should have "implies" at the end.)
KERML_-59OCL for checkFeatureParameterRedefinition is wrong- checkFeatureParameterRedefinition – In the proposed OCL, the expression for let i : Integer is syntactically incorrect, and, even if corrected by adding a closing parenthesis, would not return an integer, as required.
KERML_-132Constructor invocation expressions are semantically inconsistent- ConstructorExpression::modelLevelEvaluable – This operation is redefined to make constructor expressions always not model-level evaluable. However, construction using the previous invocation-expression notation could be model-level evaluable, and this can be useful, e.g., for instantiating RiskMetadata::RiskLevel in a metadata usage.
- validateInvocationExpressionOwnedFeatures – This constraint requires that all ownedFeatures of an InvocationExpression have direction in. However, in the textual notation grammar, certain classification and metaclassification expressions are parsed to OperatorExpressions (a kind of InvocationExpression with type references that become ownedFeatures without any indicated direction.
-
Reported: KerML 1.0b2 — Thu, 13 Mar 2025 21:41 GMT
-
Updated: Tue, 25 Mar 2025 05:15 GMT