SysML 1.6 RTF Avatar
  1. OMG Issue

SYSML16 — SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are

  • Key: SYSML16-122
  • Legacy Issue Number: 18705
  • Status: closed  
  • Source: NASA ( Dr. Nicolas F. Rouquette)
  • Summary:

    SysML 1.3 section 9.1.3 Proxy Ports and Full Ports states:

    Full ports cannot be behavioral in the UML sense of standing in for the owning object, because they handle features themselves, rather than exposing features of their owners, or internal parts of their owners.

    This is incorrect; see UML 2.5, section 11.3.3 Structured Classifier Semantics:

    A Port has the ability, by setting the property isBehavior to true, to specify that any requests arriving at this Port are handled by the Behavior of the instance of the owning EncapsulatedClassifier, rather than being forwarded to any contained instances, if any. Such a Port is called a behavior Port. If there is no Behavior defined for this EncapsulatedClassifier, any communication arriving at a behavior Port is lost.

    Based on the UML 2.5 semantics of behavioral ports, there is no legitimate reason to exclude a SysML 1.3 FullPort to be behavioral in the UML sense.

    This is inconsistent with SysML 1.3, section 9.3.2.7 FlowProperty:

    Items going to or from behavioral ports (UML isBehavior = true) are actually going to or from the owning block. (See “Block” on page 66 for definition of owning block of proxy ports in this case.)

    The above is consistent with the UML 2.5 semantics but it is inconsistent with the SysML 1.3 semantics of FullPort above.

    Finally, SysML 1.3 section 9.3.2.8 FullPort states:

    They cannot be behavioral ports, or linked to internal parts by binding connectors, because these constructs imply identity with the owning block or internal parts.

    The notion that a behavioral port implies identity with the owning block or internal parts is incorrect and does not make sense.

    It would require that a behavioral port to be typed by its owning block or internal part.

    It would be impossible for a block A to have a behavioral port typed by B for example.

  • Reported: SysML 1.4 — Thu, 9 May 2013 04:00 GMT
  • Disposition: Closed; No Change — SysML 1.6
  • Disposition Summary:

    SysML restriction for behavior port is semantically consistent

    The semantic specialization that SysML provides with full and proxy ports is consistent with the restriction regarding the value of the "isBehavior" property of UML::Port and does not violate the UML specification at all.

    UML states that some ports can be behavior port and some other not. SysML introduces the concept of "full port", specifies that this specialization of UML::Port cannot be used for behavior port and explain why. Such a restriction in perfectly legal according to the semantics of UML::Stereotype that SysML uses for that purpose and the justification of the this restriction is semantically consistent.

  • Updated: Mon, 1 Apr 2019 18:17 GMT