SysML 1.7 RTF Avatar
  1. OMG Issue

SYSML17 — Introduction to 9.1.3 Proxy Ports and Full Ports might be interpreted as SysML only permitting Full and Proxy Ports (not standard ports)

  • Key: SYSML17-293
  • Status: open  
  • Source: Webel IT Australia ( Dr. Darren Kelly)
  • Summary:

    The following sentence under 9.1.3 Proxy Ports and Full Ports can cause confusion:

    SysML identifies two usage patterns for ports, one where ports act as proxies for their owning blocks or its internal parts (proxy ports), and another where ports specify separate elements of the system (full ports).

    It may be read as SysML only permitting Proxy Port and Full Port.

    I suggest it could be improved by adding the one word 'additional':

    SysML identifies two additional usage patterns for ports, one where ports act as proxies for their owning blocks or its internal parts (proxy ports), and another where ports specify separate elements of the system (full ports).

    Or more verbosely, something like:

    Apart from standard UML port usage, SysML identifies two additional usage patterns for ports, one where ports act as proxies for their owning blocks or its internal parts (proxy ports), and another where ports specify separate elements of the system (full ports).

    My experience is that some new SysML users (in part because of the way some tool menus work) get the impression that one somehow should not being standard ports at all in SysML, which is completely wrong.

    Some tools seem to assume (incorrectly) that just because SysML introduces Proxy and Full Port that one is always supposed to use one of them instead of a standard port, and they hide standard ports from some menus.

    I absolutely advocate the use (where appropriate) of standard ports still, especially early on during modelling. External clients of a port are not supposed to care ("know") anyway, it's ultimately an implementation detail.

    The SysML spec itself (as of SysML 1.6) is currently very clear on this:

    • 'Ports that are not specified as proxy or full are simply called "ports."'
    • 'Proxy and full ports support the capabilities of ports in general, but these capabilities are also available on ports that are not declared as proxy or full.'
    • 'Modelers can choose between proxy or full ports at any time in the development lifecycle, or not at all, depending on their methodology.'
    • 'Modelers have the option of applying stereotypes for proxy and full ports to indicate whether ports are specifying features of their owners and internal parts (proxy), or for themselves separately (full).'
    • 'Using existing blocks with ports only requires knowing the port types ...'
    • 'Modelers can apply stereotypes for proxy and full ports at any stage of model development, or not all if the stereotype constraints are not needed.'
    • 'Figure 9-7 happens to use unstereotyped ports on a general block distributed to users, and stereotyped ports on its specializations for implementation, but the modelers might have not used stereotypes at all ...'
    • 'Unstereotyped ports do not commit to whether they are proxy or full, and do not prevent or dictate future application of the stereotypes'

    etc.

    (There are also considerations when using Ports from readonly libraries.)

  • Reported: SysML 1.6 — Sat, 15 Feb 2020 01:10 GMT
  • Updated: Mon, 24 Feb 2020 03:17 GMT