Tags and keywords
Until tool support for ~InterfaceBlock comes you have to make a decision: (1) Bake your own «~InterfaceBlock» then deal with clashes when tool support comes; (2) stick with the DEPRECATED UML conjugation (not nested-port friendly) and await migration.Webel recommends this HACK (which also explains exactly how to get the MagicDraw Customization right so you get a nice «~interfaceBlock» keyword and so the tool treats it like a new element):
HOWTO easily "hack" the SysML-1.6 ~InterfaceBlock conjugation and «~interfaceBlock» keywords in MagicDraw/Cameo (until it is supported)It may mean you have to do a bit of sorting out when the SysML-1.6 compliant tool version of «~interfaceBlock» arrives, but at least your model will be correct. And:
MagicDraw/Cameo: You can easily find all elements a Stereotype has been applied to via the Stereotype's specification dialog.This is better than sticking with the now-deprecated UML Port conjugation:
In SysML the NOW DEPRECATED direct UML Port conjugation does not work consistently with SysML DirectedFeature and SysML FlowProperty on nested ports!
MagicDraw/Cameo 19SP3 still supports the DEPRECATED UML Port conjugation (but it is recommended here that you DO NOT use it, even though there might be future migration for such directly conjugated Ports).Model integrity beats convenience!
Don't worry if you have not encountered DirectedFeature or FlowProperty yet, they'll be covered later in this trail in detail. For now, just note that:
- A FlowProperty on the Type of a Port can be 'in', 'out', or 'inout' (both).
- A DirectedFeature on the Type of a Port can be 'provided', 'required', or 'providedrequired' (both).
This is a nice trick:
Place your SysML-1.6 ~InterfaceBlock conjugation under the 'original' InterfaceBlock (i.e. make the original the containment owner).It is not in fact recommended that you mix flow properties, operations, and directed features in one port Type, it's just done here for convenience to show the ~InterfaceBlock inversion principle working for any Feature kind:
Webel Best Practice: Avoid mixing flow properties on the Type of a Port with directed features (operations and values); One distinguishes between "ports with flows" and "contract ports".BTW: The example happens to show proxy ports, but they could be any old ports:
SysML: Typing a Port by an InterfaceBlock or ~InterfaceBlock does NOT imply that the Port is a ProxyPort (but ProxyPort must be typed by an InterfaceBlock or ~InterfaceBlock)So what if you are not using InterfaceBlock? Not a big problem: