A Big Small Change in SysML – Ports
t_mckemy 270004HRJG Visits (2167)
As a technical consultant with 321 Gang , I have the opportunity to visit many customers trying to adopt Model Based Systems Engineering ( MBSE ). SysML is the preferred language for systems models, and the Port concept is key to effective and rapid model reconfiguration. As you probably know, the Object Management Group ( OMG ) recently released the specification to v1.3 of the System Modeling Language, or SysML. I downloaded the ‘change bar’ version of the spec to see what’s new in 1.3, and found that a small change with large impact has occurred in this version.
The change is all about ports. SysML 1.2 had Flow Ports and Standard Ports, SysML 1.3 has Proxy Ports and Full Ports. Here are some more details.
First off, Flow Ports and Flow Specifications are gone (well, deprecated) from SysML 1.3. Flow Ports showed transfer of some entity, like power, fluid, data, etc. They had no behavior associated with them, but the direction of the flow could be selected. SysML 1.3 provides a way to show flows, just not with Flow Ports. That capability has been included in both types of 1.3 Port (Full and Proxy). A single Port now can have flow features, non-flow features, and/or behavior features. (An example of a non-flow feature would be an attribute.)
While I’m on the subject of Flows, note that Flow Specifications have also been deprecated. Flow Properties and Item Flows remain and are used to type flow features in Ports, along with flow direction. A Flow Property is the kind of thing flowing (liquid, for example). An Item Flow is what IS flowing. A Flow Property of ‘liquid’ might have Item Flows of water, gasoline, or liquid nitrogen.
Let’s get back to Ports. As I mentioned, there are two kinds of Ports in SysML 1.3: Proxy and Full. Proxy ports are similar to SysML 1.2 ports with the addition of flows, as noted above. Proxy Ports expose the owning block’s internal parts to the outside world. Therefore, any feature in a Proxy Port (flow, non-flow, or behavior) is provided or used by something within the owning block. Proxy ports are not separate system parts – they are a window into the owning block and simply expose the block’s features. A Proxy Port is typed by an Interface Block.
Full ports provide flow, non-flow, and/or behavioral features without exposing any other of the owning block’s internal parts or features. Full ports represent a separate system element – a part on the boundary of the owning block. They cannot be connected directly to other block internals: they must connect through Proxy Ports or by behavior invoked on them by other blocks. A Full Port is typed by another block.
These changes were made to allow a mechanism for defining physical connections to a system. It is much easier to model a USB connector and socket, for example, because you can now show the physical as well as the behavioral aspects of the port.
When do you use one over the other? Basically, if the connection you are modeling is a physical part of the system (a.k.a.: on a Bill of Materials), model it as a Full Port. If not, model it as a Proxy Port. For example, the wheel hub on your car is a Full Port. It is a physical part of the overall automobile system that provides mechanical connection and flow of Torque to the wheels. It provides the mechanical connection directly via the lug bolts and connection to the drive shaft. The torque that flows out of the wheel hub Full Port is obtained from a Proxy Port connected to the automobile’s driveline system.
I hope this note helps clarify both what’s new in SysML 1.3 and the difference between the new Full and Proxy ports. There are a couple of other changes to SysML in this release – I encourage you to download the spec from the OMG and explore for yourself.
321 Gang is a five-time IBM Rational Business Partner Award winner and the industry’s #1 Rational training provider as well as an Authorized IBM Rational Software Reseller. Rational is all we do. 321 Gang has deep expertise with IBM Rational solutions for complex systems and software including: