Structural Diagrams: Internal Block Diagrams
SysML Structural Diagram Types
Structural Related
Block Definition Diagrams (bdd)
System elements
Internal Block Diagrams (ibd)
Interactions between parts
Package Diagrams (pkg)
structure of the model not the system
Parametric Diagram (par)
mathematical constraints
Definitions of an Internal Block Diagram (ibd)
What is a SysML Internal Block Diagram? Several Different Definitions from the Experts
Definition 1:
"The internal block diagram or ibd resembles a traditional system block diagram and shows the connections between parts of a block.. The frame of the internal block diagram always corresponds to a block, so the model element kind is often elided in the diagram header."
(A Practical Guide to SysML, Friedenthal pg 116-117)
Definition 2:
Internal Block Diagram (ibd): An Internal Block Diagram is a static structural diagram owned by a particular Block that shows its encapsulated structural contents: Parts, Properties, Connectors, Ports, and Interfaces. Stated otherwise, an IBD is a "white-box" perspective of an encapsuated ("black-box") Block.
Blocks can be recursively decomposed ("nested") into Parts by alternating between Block Definition Diagram (BDD) definitions and Internal Block Diagram (IBD) usages (See Usage Notes below.)
Behaviors can either be encapsulated by Blocks (e.g., Operations, Signals, and State Machines) or Allocated (via «allocate» Dependency) to Blocks (e.g., Activities/Actions) directly or indirectly (via Interfaces).
Blocks can be mathematically constrained via Constraint Blocks to produce mathematically simulatable Parametric diagrams.
compare and contrast: UML 2 Class and Component diagrams; SA/SD System Context & Structure Chart diagrams; IDEF IDEF1X diagrams.
Definition 3:
The Internal Block diagram provides a way of viewing the composition of a block using part properties connected together using ports and connectors. The diagram is useful for showing a Block's (represented by the diagram frame) composition and the flow of inputs and outputs between the various parts that make up the block, when required the direction of flow can be indicated on the connectors.
Internal Block Diagram (ibd) Example
In this example, we see the part properties (the yellow rectangles) and the interconnections between parts within a specific context. These diagrams resemble electrical schematics. In this situation, the context is "Network", which is shown in the diagram frame. The green squares are proxy ports. Proxy ports can resemble conceptual, logical, or physical interfaces between parts. Proxy ports, like blocks, can be typed. The connectors in this diagram are coming from one proxy port to another.
Remember that you will not see a block on an internal block diagram because it is an element of definition. You will only see part properties because they are elements of usage.
You can also add item flows onto the connectors between proxy ports. This is not shown in the example above but is shown as a black triangle play button icon.
When to use the ibd
Definition 1:
The Internal Block diagram is used to model the internal structure of a block including its parts and the relationship between those parts.
Definition 2:
Internal Block Diagram (ibd) answer the question "How do the parts of the system interface with each other? "
Internal block diagrams are used to define the internal structure of a block in terms of interconnections. Internal block diagrams complement block definition diagrams by using connectors and item flows to show interrelationships.
Note you can nest ibds within part properties on ibds.
As analysis proceeds to define lower-level functions within higher-level requirements, the internal structure of the system is defined. Define the interfaces between the system components and between the system components and other systems or subsystems. Support traceability between components and their functional origin.
What is the Purpose of an ibd?
The purpose of Internal Block Diagrams (IBDs) is to show the encapsulated structural contents (Parts, Properties, Connectors, Ports, Interfaces) of Blocks so that they can be recursively decomposed and "wired" using Interface Based Design techniques. When used correctly BDDs + IBDs are recursively scalable and mathematically (parametrically) simulatable (See Executable Semantics below.)
Cameo ibd Toolbar
Elements Within an Internal Block Diagram
Item Flow:
Signal that is assigned to a port via interface block.
Port:
Represents an interface to allow interaction from one block/part to another. Ports are points at which entities can connect to and interact with a block. They have properties with a type that specifies features available to the external entities via connectors to the ports. A block may have many ports that specify different access points. Ports can be shown on bdds or ibds but only connected on ibds.
Full Ports: typed by a block. Representation of a physical interface for a given block.
Proxy Ports: typed by an interface block. Proxy ports do not represent behavior or physical attributes.
Part Property:
Usage of a block in a context. Parts are the foundational pieces to internal block diagrams, Parts are the usage of its owning block. Parts are created via composition relationship.
Connector:
A relationship between to ports, enables interaction between tow blocks/ports. Depicted with a solid line.
Interface Blocks:
A specialized type of block that allows flow properties (item flow) to be defined for the port.
Flow properties:
Flow properties include name, signal type, and direction. Flow properties allow you to assign a signal to a port with directionality (in, out, inout)
Signals:
Signals can be defined to include user defined attributes to further specify the interface.
Referenced Entities:
Internal block diagrams can show aggregation properties (not owned but referenced or shared). Aggregations are displayed as Associations on the internal block diagram and denoted by a dashed border.
Elements Within an Internal Block Diagram
Item Flow:
Signal that is assigned to a connector line. It is denoted with the solid black sideways triangle.
Port:
Represents an interface to allow interaction from one block/part to another. Ports are points at which entities can connect to and interact with a block. They have properties with a type that specifies features available to the external entities via connectors to the ports. A block may have many ports that specify different access points. Ports can be shown on bdds or ibds but only connected on ibds.
Full Ports: typed by a block. Representation of a physical interface for a given block.
Proxy Ports: typed by an interface block. Proxy ports do not represent behavior or physical attributes.
Part Property:
Usage of a block in a context. Parts are the foundational pieces to internal block diagrams, Parts are the usage of its owning block. Parts are created via composition relationship.
Connector:
A relationship between to ports, enables interaction between tow blocks/ports. Depicted with a solid line.
Interface Blocks:
A specialized type of block that allows flow properties (item flow) to be defined for the port.
Flow properties:
Flow properties include name, signal type, and direction. Flow properties allow you to assign a signal to a port with directionality (in, out, inout)
Signals:
Signals can be defined to include user defined attributes to further specify the interface.
Referenced Entities:
Internal block diagrams can show aggregation properties (not owned but referenced or shared). Aggregations are displayed as Associations on the internal block diagram and denoted by a dashed border.