Legacy Issue Number: 10597
Source: Model Driven Solutions ( Ed Seidewitz)
Title: Non-behavior ports cannot forward requests to behavioral features of the owning classifier
Specification: Unified Modeling Language Superstructure v2.1 (ptc/06-04-02)
Section: 9.3.11 Port
Currently, the semantics of ports may be summarized as follows:
1. If the port not a behavior port, but it has a connector to an internal part of the owning classifier, then a request directed to the port via a provided interface is forwarded along that connector. If it is not connected to an internal part, "any requests that arrive at this port will terminate at this port."
2. If the port is a behavior port, then a request directed to the port via a provided interface is forwarded to the classifier behavior for the owning classifier. (This is what it means to be a behavior port – requests are forwarded to the classifier behavior.) If the owning classifier does not have a classifier behavior, then "any communication arriving at a behavior port is lost."
Since the intent of a port is to "provide a means through which requests can be made to invoke behavioral features of a classifier", it would seem natural to have a way for a request through port to be directly forwarded to a behavioral feature of the owning classifier. Currently, however, this can only be done via a behavior port and an explicit classifier behavior that dispatches requests appropriately. A request to a non-behavior port that does not have an internal connection is not handled by the instance of the owning classifier, but rather "terminates" at the port.
Note also that the text currently states that "the owning classifier must offer the features owned by the provided interfaces" of a port, but there is no formal constraint to this effect.
1. Add a constraint that an encapsulated classifier must realize all the provided interfaces of all its ports.
2. Keep the semantics of a behavior port to be that requests are forwarded to the classifier behavior.
3. For a non-behavior port with connectors no connectors to any internal parts, any request arriving at the port is forwarded to the method of the corresponding behavioral feature of the owning classifier (if there is such a method).
4. In other cases, specify that the semantics is not defined, rather than that requests are "terminated" or "lost". Such cases include behavior ports when there is no classifier behavior and non-behavior ports for behavioral features with no corresponding method.
Reported: UML 2.5 — Thu, 18 Jan 2007 05:00 GMT
Updated: Fri, 20 Apr 2018 14:30 GMT