Hello anybody,
hello Johan,
since SysML 1.3 in 2012, the concept of ports have changed. There are now only two kind of ports available: Full Ports (stereotyped with «full») and Proxy Ports (stereotyped with «proxy»). The Standard Port which SysML inherited from UML and that are typically used for IT interfaces, and which are apparently used for the ports in Johan's example, has been marked as deprecated and should no longer be used.
The main difference between a Full Port and a Proxy Port is that a Full Port is nothing else than a building block of the System Of Interest. Hence, it is also an entry on the system's so-called bill of material (BOM), a list of all parts needed to manufacture the system respectively product. Ports are typed elements. The type of a Full Port is usually a standard SysML Block («block»). That means that everything that is valid for a usual Block (e.g. having structure and behavior) is also valid for a Full Port.
In contrast, Proxy Ports are not parts of the system, hence they will also not appear on the BOM. Proxy ports are always typed by interface blocks (stereotype «interfaceBlock»), a specialized kind of block that serves only as an interface definition and has no behaviors or internal parts.
The main problem with Full Ports is that they are more or less nothing else than usual parts. They play a somewhat odd "double role": on the one hand, they serve as an interaction point of their owners with the environment, but on the other hand they are just parts like all the other parts too.
Thus, we at oose strongly recommend to not use Full Ports at all! You can get along without this type of port. Instead of using Full Ports, you should solely use Proxy Ports. The great advantage of this approach is that all parts of the system are modeled in the same way. There is no kind of "exceptional case" where a part is also a port. And you can create nested ports also with Proxy Ports, if needed.
So, my recommendation is to convert your Full Port named "part2" into a real part of the system (it "moves" inside the ibd), and to introduce a Proxy Port instead that is connected with "part2". I've attached an bdd and ibd to show the result.
Hope that helps!
With best regards,
Stephan Roth
Trainer, Consultant, and Coach
oose Innovative Informatik eG, Germany