The following validation constraints are implied by textual descriptions in the specification, but are missing in the abstract syntax. They should be added, along with appropriate OCL.
8.3.16.5 AssignmentActionUsage
validateAssignmentActionUsageArguments – An AssignmentActionUsage must have two argument Expressions.
validateAssignmentActionUsageReferent – An AssignmentActionUsage must have an ownedMembership that is not an OwningMembership whose memberElement is a Feature.
8.3.16.9 ForLoopActionUsage
validateForLoopActionUsageLoopVariable – The first ownedFeature of a ForLoopActionUsage must be a ReferenceUsage.
validateForLoopActionUsageParameters – A ForLoopActionUsage must have two owned input parameters.
8.3.16.10 IfActionUsage
validateIfActionUsageParameters – An IfActionUsage must have at least two owned input parameters.
8.3.16.16 TriggerInvocationExpression
validateTriggerInvocationExpressionAfterArgument – If a TriggerInvocationExpression has kind = after, then it must have an argument Expression with a result that conforms to the type ISQ::DurationValue.
validateTriggerInvocationExpressionAtArgument – If a TriggerInvocationExpression has kind = at, then it must have an argument Expression with a result that conforms to the type Time::TimeInstantValue.
validateTriggerInvocationExpressionWhenArgument – If a TriggerInvocationExpression has kind = when, then it must have an argument Expression with a result that conforms to the type ScalarValues::Boolean.
8.3.16.18 WhileLoopActionUsage
validateWhileLoopActionUsageParameters – A WhileLoopActionUsage must have at least two owned input parameters.
8.3.17.2 ExhibitStateUsage
validateExhibitStateUsageReference – If an ExhibitStateUsage has an ownedReferenceSubsetting, then its referencedFeature must be a StateUsage.
8.3.19.2 AssertConstraintUsage
validateAssertConstraintUsageReference – If an AssertConstraintUsage has an ownedReferenceSubsetting, then its referencedFeature must be a ConstraintUsage.
8.3.20.10 SatisfyRequirementUsage
validateSatisfyRequirementUsageReference – If a SatisfyRequirementUsage has an ownedReferenceSubsetting, then its referencedFeature must be a RequirementUsage.
8.3.24.2 IncludeUseCaseUsage
validateIncludeUseCaseUsageReference – If an IncludeUseCaseUsage has an ownedReferenceSubsetting, then its referencedFeature must be a UseCaseUsage.