SysML 2.1b1 RTF Avatar
  1. OMG Issue

SYSML21 — Substates may potentially inherit "this" twice

  • Key: SYSML21-311
  • Status: open  
  • Source: Model Driven Solutions ( Mr. Ed Seidewitz)
  • Summary:

    Due to the problem identified in KERML11-72, a state usage that is a substate may end up inheriting two different redefinitions of Occurrence::Occurrence::this, but both with the name this, resulting in a violation of the constraint validateNamespaceDistinguishibility.

    1. The library usage Actions::Action::subactions specializes all of Actions::Action, Actions::actions and Performance::Performance::subperformances.
    2. subactions has a nested redefinition of this, which is resolved as a reference to Occurrences::Occurrence::this that is inheritable from Action.
    3. subperformances also redefines Occurrences::Occurrence::this and the redefined feature Performances::Performance::subperformances::this is also inheritable by subactions. However, it is not actually inherited because it is overridden by the direct redefinition of Occurrences::Occurrence::this in subactions.
    4. The library usage States::StateAction::subactions redefines Actions::Action::subactions. It does not have a nested redefinition of this.
    5. Among other things, StateAction::subactions also has an implied specialization of subperformances. However, since subaction is already a subtype of subperformances, this implied specialization can be considered redundant and not included. But, according to KerML specification subclause 8.4.2 (Semantic Constraints and Implied Relationships), a tool is not required to exclude such an implied specialization, so the specialization of subperformances could be included.
    6. If the implied specialization of subperformances is included, then subperformances::this will be inherited by StateAction::subactions in addition to Action::subactions::this.
    7. The usage StateAction::substates specializes StateAction::subactions, and every state usage that is a substate is required to specialize StateActions::substates. As a result, if StateAction::subactions gets two this features, these will be inherited by every substate.
  • Reported: SysML 2.0b2 — Tue, 8 Jul 2025 22:44 GMT
  • Updated: Sat, 20 Sep 2025 06:51 GMT