Modeling Guidelines for SysML Internal Block Diagram
An internal block diagram is based on the UML composite structure diagram, with restrictions and extensions as defined
The Internal Block Diagram in SysML captures the internal structure of a block in terms of properties and connectors between properties. OMG Systems Modeling Language (OMG SysML™) Version 1.6
The following guidelines apply:
- Compatibility If ports are connected via Connector, both port types must be compatible and the connector ends need to be defined.
- Red Connector Lines
- When red connector lines are shown in the published model you can right click on the “x” and select “Update Connector Ends” from the menu.
- Connection errors may also exist in Rhapsody prior to publish. Ensure the Connectors have defined Ends prior to publish.
- The SysML interpretation by Rhapsody of the two end point association, results in the secondary tag not being connected by the target tool.
- MagicDraw provides a Warning when the GraphEdge is not in the same direction as the Semantic Connector
- The following ownership rules apply in the target tool:
- An IBD must be owned by a block. The source tool allows definition of an Internal Block Definition (IBD) diagram to be owned by a Use case. The diagrams publish empty because there is no "context" for which block owns the internal definition.
- The parts have to be owned by a Block
- The constraint properties in the diagram have to be owned by the same Block
- The properties in the diagram have to be owned by the Block
- The BindingConnectors in the diagram have to be owned by the Block
- Ports have the following rules defined by the target tool:
- Proxy Ports: A Proxy Port is a port that specifies features of owning Blocks or Part Properties that are available to external blocks through external Connectors to the ports. It can only be typed by Interface Block. You cannot have a connector connecting two proxy ports with in the same block. Proxy ports define external interfaces for blocks.
- Full Ports: A Full Port is a port which is considered as a separated element of owning Blocks. It may have internal parts or behaviors that support interactions with owning Blocks.
- Flow Port: Flow Port is deprecated in accordance with SysML specification and is defined for backward compatibility. The functionality of non-atomic Flow Ports is supported with Proxy Ports typed by Interface Blocks owning Flow Properties. Flow Properties are not deprecated. The specification of what can flow is achieved by typing the Flow Port with a specification of things that flow. This can include typing an atomic Flow Port with a single type (Block, Value Type, or Signal) representing the items that flow in or out, or typing a non-atomic Flow Port with a Flow Specification which lists multiple items that can flow. In general, Flow Ports are intended to be used for asynchronous, broadcast, or send-and-forget interactions. Note that only non-atomic Flow Ports can be conjugated. Once conjugated, all the directions of the typing Flow Specification's items are negated.
- Part Property and value properties are not a SysML Stereotype but a Classification. Hence here are the rules applied:
- A Part typed by a Block in Rhapsody, is transformed to a Property stereotyped PartProperty in MagicDraw
- A Part typed by an InterfaceBlock in Rhapsody, is transformed to a Property stereotyped PartProperty in MagicDraw
- A ValueProperty typed by a ValueType in Rhapsody is transformed to a Property stereotyped ValueProperty in MagicDraw
- A Part typed by a Class in Rhapsody, in transformed to a Property in MagicDraw. This Property is NOT stereotyped PartProperty