Nested Ports in SysML 1.3

This statement is derived from the SysML 1.3 Specification:

"Ports nest other ports in the same way that blocks nest other blocks. The type of the port is a block (or one of its specializations) that also has ports. For example, the ports supporting torque flows in the transmission example might have nested ports for physical links to the engine or the driveshaft."

In Enterprise Architect, Ports belonging to a specified type can be exposed on other Ports using that type as nested Ports, as defined in the specification. That is, the nested Port element is exposed by the type of the nesting Port element. This is simply achieved using the 'Structural Elements' dialog.

For example, a complex number is made up of two members (of type Real) - the real value and the imaginary value. This is represented by the Class ComplexNumber with two Ports, Real and Imaginary. An Equation Class has a Port that takes a ComplexNumber, but we might want to connect the real and imaginary portions of that variable to different sources. Therefore we have to show them, on the Equation Port, in order to connect them up.

To create a representation of this example

  1. Create a SysML Block named 'Equation' with a Port named 'Equation'.
  2. Create a SysML Block named 'ComplexNumber' with Ports named 'Real' and 'Imaginary'.
  3. Double-click on Port 'Equation', select the 'Property' page and set the 'Type' field to 'ComplexNumber'.
  4. Right-click on Port 'Equation' and select the 'Structural Elements' option. The 'Structural Elements' dialog displays.
  5. Select the 'Show Owned/Inherited' checkbox. Ports 'Real' and 'Imaginary' are shown in the list panel.
  6. Select the checkboxes against 'Real' and 'Imaginary', and click on the Close button. The two Ports are now nested in Port 'Equation'.