Skip to content

ST6RI-974 Validation missing for connection and flow definitions having ends that are usages - #808

Open
seidewitz wants to merge 3 commits into
masterfrom
ST6RI-974
Open

seidewitz wants to merge 3 commits into
masterfrom
ST6RI-974

Conversation

@seidewitz

@seidewitz seidewitz commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

This PR adds validation checks that the end features of connection definitions and flow definitions are usages. It also proactively resolves the issue

SYSML21-681 Problems with the resolution to SYSML21-324

Background

In the SysML abstract syntax, ConnectionDefinition::connectionEnd and FlowDefinition::flowEnd both have type Usage and redefine Association::associationEnd. This means that all end features (owned and inherited) of connection definitions and flow definitions must be usages.

EMF does not automatically handle this kind of meta-property redefinition. Instead, they need to be separately implemented as validations. Previously, these validations were missing from the implementation.

However, implementing this validation for flowEnd resulted in a validation error on the library base definition Messages::Message. The end features of Message and messages were removed as part of PR #682 , in order to resolve issue SYSML21-324, even though doing this was not actually stated as part of the resolution to this issue. But, without owned end features, Message inherits end features from the KerML library type Transfer that are not usages, violating the abstract syntax.

Changes

  1. Added Xpect tests to check the invalidation of connector and flow definitions with ends that aren't usages.
  2. Implemented the missing validation checks for connector and flow definition ends in org.omg.sysml.xtext.validation.SysMLValidation.xtend.
  3. Restored the end features of Message and message (consistent with the Beta 2 specification). But also change messages from being a flow usage to be an action usage (flows are kinds of actions), which proactively resolves SYSML21-681. (Previously, the problem identified in this issue was prevented when Message and messages had no end features.) Also updated the Flows library model in the SysML Xpect systems library.

Test succeeds when validation detects invalid ends with appropriate
error message.

- New tests fail.
- Check for flow def fails on library base flow def Flows::Message.
- Xpect tests pass.
@seidewitz seidewitz added this to the 2026-09 milestone Sep 28, 2026
@seidewitz seidewitz self-assigned this Sep 28, 2026
@seidewitz seidewitz added the bug Something isn't working label Sep 28, 2026
Actually resolves the problem from issue SYSML21-324.

- Also Updated "Flows::Message" and "messages" to have usages as owned
ends.
@seidewitz
seidewitz removed the request for review from geneShreve October 2, 2026 04:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant