Issue 18705: SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are (sysml-rtf) Source: NASA (Dr. Nicolas F. Rouquette, nicolas.f.rouquette(at)jpl.nasa.gov) Nature: Uncategorized Issue Severity: 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. Resolution: Defer Postponed to the next RTF Revised Text: Actions taken: May 9, 2013: received issue January 3, 2017: Deferred April 6, 2017: closed issue Discussion: End of Annotations:===== m: "Rouquette, Nicolas F (313K)" To: "issues@omg.org (issues@omg.org)" CC: "sysml-rtf@omg.org" Subject: SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are Thread-Topic: SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are Thread-Index: Ac5M4QrdvPAev4y5TBOmkLdF1jY/7Q== Date: Thu, 9 May 2013 18:22:48 +0000 Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [128.149.137.26] X-Source-Sender: nicolas.f.rouquette@jpl.nasa.gov X-AUTH: Authorized X-Virus-Scanned: amavisd-new at omg.org X-Brightmail-Tracker: AAAAAh15Gpodelmo X-Brightmail-Tracker: AAAAAA== 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. - Nicolas. From: "BERNARD, Yves" To: "Rouquette, Nicolas F (313K)" , "issues@omg.org (issues@omg.org)" CC: "sysml-rtf@omg.org" Date: Mon, 13 May 2013 09:52:44 +0200 Subject: RE: SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are Thread-Topic: SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are Thread-Index: Ac5M4QrdvPAev4y5TBOmkLdF1jY/7QCxn+QA Accept-Language: fr-FR, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: fr-FR, en-US X-Virus-Scanned: amavisd-new at omg.org X-Brightmail-Tracker: AAAAAgr+n5EdeRqa X-Brightmail-Tracker: AAAAAA== Nicolas, Let first recall that the semantics of UML ports is not clear. I quoted below an answer from Bran while we discussed about port.s properties: .The model of ports in UML was driven by two contrasting paradigms: UML-RT and SDL. In UML-RT, a Port is an attribute of its owning class and is realized by a special kind of passive object. It is special in the sense that it can relay messages back and forth, but it is the same as any other passive class object in that it can features such as operations and, possibly, attributes of its own. (In UML-RT, one of the operations of a port is a SEND operation for signals.) In SDL, on the other hand, a port is merely routing data, with no object involved. This schizoid model is the reason why there is some fuzziness about what is the meaning of the type of a port. The answer to your question depends on which of the two paradigms you choose. I would recommend against adding anything more to the UML 2 spec, except clarifications where necessary. However, the issue is likely to be addressed in greater detail in the upcoming structured classifier semantics submissions.. Our main purpose in the P&F workgroup for SysML 1.3 was to try clarifying ports semantics by reifying two distinct paradigms: full ports and proxy ports. The constraints we added for each of them consistent, intend to make their semantics consistent. See below. Yves From: Rouquette, Nicolas F (313K) [mailto:nicolas.f.rouquette@jpl.nasa.gov] Sent: jeudi 9 mai 2013 20:23 To: issues@omg.org (issues@omg.org) Cc: sysml-rtf@omg.org Subject: SysML 1.3 is incorrect that full ports cannot be behavioral and is inconsistent about what behavioral ports are 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. [BERNARD, Yves] SysML::FullPort is defined as a specialization of UML::Port. This specialization implies the restriction that it cannot be a behavior port. Linking additional constraints to a stereotype is perfectly legal, so there is nothing incorrect here. Since a SysML::FullPort is defined as dealing .by its own. with incoming requests, they are not handled by the behavior of the full port owner. This implies that a full port cannot be a .behavior port., as defined by the UML section you quoted above. 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. [BERNARD, Yves] I don.t see anything inconsistent here. This sentence is about flow properties in the case of behavioral ports (i.e. not applicable to full ports). Nothing in UML implies that all ports have their isBehavior property set to true. 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. [BERNARD, Yves]This is a claim not an argument. This has been extensively discussed in the P&F workgroup you participated in and we came to another conclusion. This is discussed again within the semantics for composite structure workgroup you.re part of as well. I suggest we wait for its result before raising any new issue on this topic. It would require that a behavioral port to be typed by its owning block or internal part. [BERNARD, Yves] This is not true. Behavioral ports have nothing to do with internal parts (cf. UML section you quoted above) and nothing implies a behavioral port to have the same type of its owner but only that its type specifies features which are a subset of its owner.s features. It would be impossible for a block A to have a behavioral port typed by B for example. [BERNARD, Yves] You cannot say that, it depends on what are the features defined by A and B. - Nicolas. The information in this e-mail is confidential. The contents may not be disclosed or used by anyone other than the addressee. Access to this e-mail by anyone else is unauthorised. If you are not the intended recipient, please notify Airbus immediately and delete this e-mail. Airbus cannot accept any responsibility for the accuracy or completeness of this e-mail as it has been sent over public networks. If you have any concerns over the content of this message or its Accuracy or Integrity, please contact Airbus immediately. All outgoing e-mails from Airbus are checked using regularly updated virus scanning software but you should take whatever measures you deem to be appropriate to ensure that this message and any attachments are virus free.